일단 해보고, 아니면 뭐

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

무한한 개발세계 여행기

Programing 21

Rest 통신 기반의 CRUD Transaction 처리 해보기 (AOP, Generic)

이번에 개발하게 된 Rest 통신 기반의 CRUD Transaction 처리 AOP 를 정리하려고 오랜만에 블로그를 켜보았다. 이게 무슨 처리냐 하면, 기본적인 데이터베이스들은 굉장히 좋은 라이브러리들이 많이 있기 때문에 메소드 레벨에 기능을 담당하는 Annotation 하나만 달면 개발자가 따로 신경쓰지 않아도 Transaction 처리가 아주 잘 된다. 하지만 현재 프로젝트는 Keycloak 이라는 오픈소스를 사용 중이고, 내가 개발중인 서비스에서 keycloak 서비스에 각종 데이터들을 CRUD 할때 Keycloak Rest API 기반 통신 라이브러리를 사용하여 호출하고 있다. 그럼 Keycloak 서비스에서는 본인이 사용하는 데이터베이스에 데이터 CRUD 처리를 한다. 이때 내서비스와 Keycl..

Programing/Spring 2022.05.23

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

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

Programing/Spring 2022.05.14

WAS (Spring Boot) - DB 성능 개선과 최적화 (1) - JDBC

요즘 회사에서 API Server 성능 최적화 작업을 진행하느라 정신이 없는 하루하루를 보내고 있다. 그래도 정신 차리고 하루 날 잡아서 업무 하며 알게 된 내용들을 정리를 해보고자 한다. 성능 최적화 작업을 시작하게 되고 제일 먼저 진행한 업무는 WAS와 DB 간 통신 관련의 개선이었는데 우리는 API Server로 Spring Boot + JPA 를 사용하고 있고 DB는 저장되는 데이터 특성에 맞춰서 1. Postgresql 2. Elastic Search 3. Cortex 4. Redis 이렇게 총 네 가지를 사용하고 있다. 이 중에 오늘은 Postgresql 쪽을 정리해보고자 한다. JDBC 라는 단어를 들어보신 적이 있다. Java를 기반으로 웹서비스를 개발하시는 분이라면 무조건 들어봤을 단어인..

Programing/Spring 2022.05.14