일단 해보고, 아니면 뭐

실패했어도 배웠으면 실패가 아냐.

무한한 개발세계 여행기

resttemplate 3

RestTemplate로 알아보는 Spring Template Callback Pattern

오늘도 열심히 인프런 강의를 듣고 있었다. 스프링 강의 고급 편을 듣다 보면 여러 가지 디자인 패턴에 대해서 알게 되는데, 오늘은 템플릿 메서드 패턴부터 시작해서 프록시 패턴까지 공부를 하게 되었다. 강의를 듣던 중 템플릿 콜백 패턴이라는 것을 듣게 되었는데 따로 GOF 패턴은 아니고 스프링 내에서 자주 사용되는 패턴이라 스프링 안에서만 이렇게 부른다고 한다. 김영한님 강의에서는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 콜백(callback)이라고 하며 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드이고 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수..

Programing/Spring 2022.07.17

WAS (Spring Boot) - DB 성능 개선과 최적화 (3) - RestClient

다른 부분 정리하느라 좀 늦어졌지만 세 번째로 RestClient에 대해서 정리하려고 한다. 프로젝트 내에서 사용중인 데이터베이스 중에서 Elastic Search 를 위해 사용 중인 라이브러리이다. RestClient는 Elastic Search REST Client 인 High Level REST Client Library에 포함되어 있는 부분으로 Elastic Search 서버에 HTTP 요청을 위한 Client 용 객체이다. 나는 다음과 같이 사용 중이다. RestClient를 생성하는 비즈니스 로직을 분석해보며 많이 놀랐다. public RestClient build() { if (this.failureListener == null) { this.failureListener = new Failu..

Programing/Spring 2022.06.02

WAS (Spring Boot) - DB 성능 개선과 최적화 (2) - RestTemplate

오늘도 이어서 성능 개선과 최적화 포스팅을 진행하려고 한다. JDBC를 정리했던 지난 포스팅에 이어서 오늘은 RestTemplate를 살펴보려고 한다. 사실 RestTemplate는 데이터베이스 자체와 직접적인 관련이 있지는 않지만, 내가 진행하는 프로젝트 데이터베이스 중 Cortex 라는 데이터베이스는 HTTP 통신을 기반으로 쿼리하고 데이터를 응답받기 때문에 내부적으로 RestTemplate를 사용하기에 이렇게 성능 개선 항목에 추가하게 되었다. RestTemplate는 Spring 3.0 버전부터 지원하는 HTTP 통신 라이브러리로 HTTP 서버와의 통신을 손쉽게 구현할 수 있다. 사용방법을 간단히 알아보자. 저는 이런 방식으로 ClientHttpRequestFactory 를 원하는 설정값에 맞춰 ..

Programing/Spring 2022.05.14