일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Git
- php
- tool
- Gradle
- Design Patterns
- redis
- jsp
- linux
- devops
- ReactJS
- elasticsearch
- db
- IntelliJ
- MySQL
- Spring Boot
- jenkins
- Web Server
- 요리
- ubuntu
- laravel
- AWS
- Oracle
- Spring
- java
- javascript
- springboot
- Spring Batch
- JVM
- 맛집
- it
- Today
- Total
목록Java & Kotlin (250)
아무거나
어댑터 패턴(Adapter Pattern) 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 어댑터 패턴은 이름대로 어댑터처럼 사용되는 패턴이다. 220V 를 사용하는 한국에서 쓰던 기기들을, 어댑터를 사용하면 110V 를 쓰는곳에 가서도 그대로 쓸 수 있다. 이처럼, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해주는 패턴이 어댑터 패턴이라고 할 수 있겠다. 이를 위해 어댑터 역할을 하는 클래스를 새로 만들어야 한다. 기존에 있는 시스템에 새로운 써드파티 라이브러리가 추가된다던지, 레거시 인터페이스를 새로운 인터페이스로 교체하는 경우에 코드의 재사..
Strategy Pattern 개념 Strategy Pattern이란 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다. Strategy를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 즉, 동적으로 알고리즘을 교체할 수 있는 구조를 말한다. 먼저 Duck이라는 슈퍼클래스와 각각의 오리별 클래스인 MallardDuck, RedheadDuck를 구현해보자. 위의 구조를 설명하자면 Duck 클래스에선 모든 오리들이 소리를 내고 헤엄을 칠 수 있어 quack(), swim() 메소드를 구현했고 오리들의 모양이 각각 다르기 때문에 display() 메소드는 추상 메소드이다. 그 외에도 다른 유형의 오리들이 Duck 클래스로부터 상속을 받는다. 여기서 만..
아래와 같이 vuejs + springboot + gradle 프로젝트가 존재할 경우 vuejs(=client) 의 파일들을 빌드할 때 gradle 스크립트를 통하여 gradle명령 하나로 한번에 빌드하는 기능을 만들었다. 아래는 프로젝트의 구조이다. spring-boot-vuejs ├─┬ server → backend module with Spring Boot code │ └── src │ ├── main │ └── resources │ └── application.yml ├─┬ client → frontend module with Vue.js code │ ├── src │ ├── config │ └── index.js → build path ( move: resources/templates/* ) └..
[springboot] elasticsearch 5.x 사용(transportClient) elasticsearch는 자바로 개발되었다. 그래서 9300 포트는 자바 네이티브로 API개발이 가능하다. 자바 관점에서 API 분류 - 자바 네이티브 API - TransportClient, NodeClient - HTTP Rest API - restTemplate/Apache HttpClient와 같은 툴로 직접 연결, Jest **** 해당 내용은 NodeClient와 TransportClient로 개발이 쉽게 가능하다는 장점이 있다. 그러나 공식적으로 쓰지 않기를 권고 하고 있다. 기능이 추가되어 버전이 올라갈 때 모델이 바뀌고 있다는 점을 현재 강조하고 있으며, 9200포트를 이용하여 REST API로 ..
[JPQL 사용] Query annotation : Repository의 조회 메소드에 직접 실행될 쿼리를 작성 1. Controller.java List productLogs = productLogService.getProductLog(productLog, limit); 2. Service.java List getProductLog(ProductLog productLog, Integer limit); 3. ServiceImpl.java @Override public List getProductLog(ProductLog productLog, Integer limit) { return repository.sqlFindWmpVendorIdAndDataProviderProcessType(productLog.g..
spring boot 프로젝트에서 oracle을 연동하려고 하는 도중에 ojdbc를 디펜던시하지 못하는 문제가 생겨서 아래 코드를 입력하였던 해결되었다. [해결코드] repositories { mavenCentral() maven { url "https://code.lds.org/nexus/content/groups/main-repo"} // 추가하기 } dependencies { // oracle compile 'com.oracle:ojdbc7:12.1.0.2' }
[build.gradle 간략 설명] 1. build.gradle 에 spring-boot plugin 사용을 위한 buildscript 설정을추가한다. buildscript { ext { springBootVersion = '1.5.9.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") classpath "io.spring.gradle:dependency-management-plugin:1.0.4.RELEASE" } } // buildscript 는 gradle 로 task 를 수행할 때에 사용되는 설..
[gradle dependency추가해도 계속 안받아지는경우, 캐시 삭제] PC의 $Home(사용자폴더)/.gradle/caches 폴더 안에 해당 라이브러리 관련 파일 및 폴더를 찾아 모두 지운다. (ex - C:\Users\윈도우유저명\.gradle\caches\modules-2\files-2.1) 그리고 터미널에서 다음 명령어 입력 gradlew --refresh-dependencies 터미널에서 위 명령어를 입력해주면, 기존에 받아놓은 dependencies 안의 라이브러리들을 최신 파일로 모두 교체한다. ** 새로 받은 dependency 라이브러리 못 불러오면 툴을 껐다가 다시 키면 된다.
[iterator vs foreach] 자바 1.5부터 지원하고 있는 향상된 for문 (일명 for-each문)은 일반 배열과 Collections 객체에 대해 이용할 수 있다. Collections를 향상된 for문으로 돌리면 컴파일러가 Iterator를 이용하는 방법으로 바꿔서 컴파일한다. (즉, 명시적으로 Iterator를 이용하는 것과 동일하다.) 일반 배열의 경우에는 성능차이가 많이 날 수 있다.
[JAVA 네트워크] JAVA는 다른 언어에 비해 네트워크 기능이 뛰어난다. 그 외에도 다양한 API가 많은 고수준의 언어이다. 1. InetAddress -> 호스트의 IP주소를 비롯한 네트워크상의 정보를 얻어오는 클래스 입니다. ex) [MainClass.java] public class MainClass { public static void main(String[] args) { new InetAdressEx(); } } [InetAdressEx.java] import java.net.InetAddress; import java.util.Scanner; public class InetAdressEx { Scanner scanner; public InetAdressEx() { System.out.pr..