일단 해보고, 아니면 뭐

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

무한한 개발세계 여행기

java 12

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

Spring Security Provider Customizing 하기 (2)

이전 포스팅에 이어서 실제로 내가 어떻게 개발에 적용했는지 정리를 해보자. (이래야 나중에 비슷한 거 개발할 때 복붙하지 ^^) 과연 어떻게 Customizing 했을까? 결론부터 이야기하면 재정의된 부분은 총 네부분 이다. 1. AuthenticationManager 2. AuthenticationProvider 3. UserDetailsServie 4. UserDetails LDAP, AD, Keycloak에 대한 AuthenticationProvider은 라이브러리들은 모두 제공이 되었고 이를 사용하기 위해 라이브러리를 Dependency 했다. org.springframework.ldap spring-ldap-core com.unboundid unboundid-ldapsdk org.springfr..

Programing/Spring 2022.04.01

Spring Security Provider Customizing 하기 (1)

회사에서 새로운 업무를 받았다. 기존에 Spring Security를 사용하여 사용자 인증 (로그인) 처리가 구현되어 있는 서비스를 고도화하는 것이었다. 현재는 사내에서 사용중인 RDBMS 사용자 테이블에 있는 암호화된 비밀번호를 이용하여 DaoAuthenticationProvider를 구성하여 사용 중 구조였고, 나는 이를 단일 Provider가 아닌 사용자가 설정한 인증 방식에 따라서 다이내믹하게 Provider를 적용할 수 있게 하는 것이었다. 기본적으로 Spring Security는 하나의 Provider를 설정해 인증처리를 하는방식이기 때문에 Spring Security의 인증 흐름중 Provider를 적용하는 부분을 적당히 재정의 하는 것이 필요해 보였다. 즉, 어떻게 변경되어야 했냐면 [ 현..

Programing/Spring 2022.04.01