Develop/[Spring] (96) 썸네일형 리스트형 [Spring] ObjectProvider에 대해서. 흔히 DL 관련, 사용으로 ObjectProvider를 많이 쓴다. 어떻게 구현되어있고, 어떤식으로 동작하는지 한번 알아보자 Spring 4.3에 추가가 되었다고 한다. 대부분 프로토타입빈과, 싱글톤 빈을 둘다 쓰고 싶을때 사용한다고 보면 된다. 싱글톤 빈에서, 프로토타입 빈을 사용하고자 한다고 가정해보자 프로토타입 빈은 빈을 요청할때마다 신규로 생성이 되는 타입이다. 싱글톤은 미리 생성해둔, 한개의 빈이 리턴되는 형태이다. 그런데, 싱글톤 내에서 프로토 타입빈을 호출하게 된다면? 프로토 타입빈은 변경되지 않고, 계속 같은 빈을 호출하게 된다. 이는 프로토 타입 빈이 알맞게 동작하지 않게 되는 것이다. 이를 극복하기 위해, ObjectProvider,ObjectFactory를 사용한다. @Configur.. [Spring] 멀티모듈의 개념 멀티모듈, 단일 프로젝트로하면 어떤 장점이 있을까? 왜 굳이 멀티 모듈을 두는것일까? 시스템적으로 보장이되고, 빠른 개발 사이클을 가질 수 있다. 멀티모듈과 MSA가 어떤 연관이 있을까? MSA에서는 분리와 병합이 자주된다. 시스템의 분리,통합을 유연하게 만들어줄 수 있는 좋은 아키텍처를 만들 수 있다. 클린 아키텍처라는 책에서는 모놀리틱과 msa적인 변경이 자유로운 아키텍처가 좋은 아키텍처라고 얘기한다. 대부분 공통화된 코드를 분류해서 뽑아내려고하면 공통화된코드를 Common으로 모은다. 그러면, common이 계속 커지면서 개발하기 힘들어진다. 1. 스파게티 소스가 된다. Common이 커지면서 영향범위가 점점 커지기 마련이다. 즉 스파게티 소스가 되고 분리가 어려워진다. 쉽게 말하면 뭐가 뭔지 모르.. [Spring] Fegin 잘 쓰기 오늘은 Fegin에 대해서 잘 쓰는 법을 알아보자 우선 Fegin이 뭘까? Fegin -Netfilx에서 개발하나, Http client binder이다. -Fegin을 사용하면, 웹 서비스 클라이언트를 (외부 호출하는 앱을) 쉽게 작성할 수 있다. -인터페이스, 어노테이션만 하면 끝이다. 1) Gradle implementation 'org.springframework.cloud:spring-cloud-starter-openfeign' 2) Main class 추가 @SpringBootApplication @EnableFeignClients public class SmithStudyApplication { public static void main(String[] args) { SpringApplica.. [Spring boot] 스케줄러 배치로 만들기는 오바스럽고, 간단하게 스케줄러가 필요할때, 스케줄러를 구현하면 편하다. 구현할일이 많지는 않아서, 기념적으로 정리한다. 나는 스케줄러로, 결제 처리와 빌링키 조회를 하기 위함이다. 1. 의존성 추가, 대부분 이미 추가한 의존성이라 그냥 사용가능하다고 봐도 무방하긴하다. implementation 'org.springframework.boot:spring-boot-starter-web' 2.메인 클래스 추가 @SpringBootApplication @EnableJpaAuditing @EnableScheduling public class InnabackendApplication { public static void main(String[] args) { SpringApplication.run.. [Spring] httpClient 사용시 설정 HttpClient로 3rd파티로 많이 보낸다. 이때 커넥션 타임아웃이나, 리스폰스 타임아웃에 대한 설정을 추가로 해줘야 시스템이 안정적이다. 설정하는 법은 아래와 같다. 1. RequestConfig를 사용하는 방법 RequestConfig 를 생성하고, custom 하위에 여러개의 설정값들이 있다. connection timeout requestconnection timeout socket timeout 크게 이렇게 3가지를 저장하는데 의미는 이렇다. connection.timeout -> 원격 호스트와 연결을 설정하는 시간 socket timeout-> 원격 호스트한테 데이터를 받는 시간 connection timeout -> 연결 관리자 , 풀에서 대기하는 시간 위에서 두개는 원격호스트에 연결 및.. [Spring] GC log 완전히 분석하고, 튜닝하기! 오늘은 GC log를 보는 법, 그리고 분석 및 모니터링하는 방법에 대해서 공부를 해볼까 한다. 기존 구조는 스프링이고, 해당 스프링 프로젝트에서 GC가 어떻게 동작되는지, 로그를 어떻게 남기는지에 대한 모니터링 및 분석을 진행해볼까한다. 1) 스프링 샘플 프로젝트를 생성한다. 걍 뭐 간단한, 일을 하는 이런 컨트롤러가 달린 녀석을 샘플 프로젝트로 만들어 보자 @RestController public class MyController { @GetMapping(value = "/test") public String test1() { MyDto d1 = new MyDto(); MyDto d2 = new MyDto(); return "test1"; } } 2) GC log 설정 -vmargs -Dosgi.re.. [Spring] bean scope , 싱글톤과 프로토 타입 빈 Spring bean scope Spring bean scope 가 뭔말이지? 싱글 턴 다 똑같은거 아닌가? 스프링에서는 빈을 싱글턴이나 여러개의 방식으로 사용할 수 있도록 설정을 제공해준다. 한번 해보면서 확인해보자 SingleTon Prototype WebScope3-2. session3-4. websocket 3-3. application 3-1. request 이런 계층 형으로 분류가 되어있다. 사실 웹 스코프 위주로 볼 것이다. 싱글 톤이랑 프로토 타입은 많이 써봐서…ㅎ SingleTon 싱글톤 스코프 빈을 조회하면 스프링 컨테이너는 항상 같은 인스턴스의 빈을 반환한다. 2.프로토타입 스코프 프로토 타입 스코프의 빈을 조회하면, 스프링 컨테이너는 항상 새로운 인스턴스를 생성해서 반환한다. 프로토.. [Spring] 간단한 지식... mybatis Camel 변환 Mybatis를 쓰다가, 대부분 모델 ResultMap으로 사용해서 쓰는데 뭔가 간단하고 단순히 매번 모델을 만들어서 ResultMap으로 꾸리기 귀찮다. 예를 들면 바인딩.... 솔직히 매번 모델 만들기 너무 귀찮다.... 그래서 찾아보니.. parameterType="java.util.Map" resultType="kr.co.esjee.icedu.util.CamelListMap" 요 녀석이 있다. 이 녀석이 뭐냐? 디비에서 컬럼을 카멜이름으로 바꿔서 ListMap으로 resutl 해주는것이다. 예를 들어서 RESULT_MAP 이라는 컬럼을 select로 뽑으면, resultMap으로 바꿔서 Map 결과로 바꿔주는 것이다. 은근히... 사용할일이 많고, 편하다 카멜 케이스도 거의 모든 곳에서 표준이니... 이전 1 2 3 4 5 ··· 12 다음