

Springboot 구동시 AWS Secret을 조회하여 Datasource 생성
Spring Boot 시작 시 AWS Secrets Manager에서 DB 정보를 조회해 DataSource를 생성하는 방법을 소개했습니다. 자동 설정을 제외하고 Secret JSON을 파싱해 PostgreSQL 연결 정보를 주입하는 예시를 다뤘습니다.


Spring Boot 시작 시 AWS Secrets Manager에서 DB 정보를 조회해 DataSource를 생성하는 방법을 소개했습니다. 자동 설정을 제외하고 Secret JSON을 파싱해 PostgreSQL 연결 정보를 주입하는 예시를 다뤘습니다.


Redis 분산 락과 스프링 AOP로 입하 확정 처리 API의 동시성 이슈를 해결했습니다. 또한 @Transactional과의 실행 순서 문제와 커넥션 사용 이슈를 @Order로 정리했습니다.


JUnit5 Vintage 엔진에 클래스 단위 병렬 실행을 도입한 과정을 설명했습니다. ForkJoinPool 대신 fixed thread pool과 CompletableFuture를 사용해 5.12 버전에 반영했습니다.

Kafka 소비 시 JSON 역직렬화 설정이 왜 기대대로 동작하지 않는지 과정을 따라가며 분석했습니다. 헤더 타입 정보와 타입 매핑, trusted packages, target type 우선순위를 조정해 해결했습니다.

모노리스에서 마이크로서비스를 분리할 때의 세부 절차와 요구사항을 정리했습니다. 코드 구조 리팩토링과 피처 플래그로 충돌과 배포 지연을 줄이는 방법을 소개했습니다.


API 개발 중 발생한 동시성 이슈를 해결하기 위해 Redis 분산 락 애노테이션 구현 사례를 다뤘습니다. 스프링 AOP 활용 방식과 주의점을 함께 정리했습니다.

Spring 기반 멀티모듈 프로젝트의 환경변수 설정 방법을 정리한 글입니다. 프로젝트 구성에 도움이 되는 여러 설정 방식을 소개합니다.


카프카 컨슈머 처리량을 외부 DB 부하에 맞춰 동적으로 조절하는 방법을 다뤘습니다. Thread.sleep()의 한계와 pause()/resume()을 활용한 리밸런싱 회피 방식을 설명했습니다.


Redis와 로컬 캐시를 결합해 조회 성능을 개선한 사례를 공유했습니다. 1만 건 요청 기준 2배 이상 성능 향상을 확인했으며 캐시 동기화 구조와 개선 포인트도 정리했습니다.


폐쇄망 환경에서 Gradle 프로젝트를 인터넷 없이 빌드하는 방법을 정리했습니다. 의존성과 wrapper를 로컬 경로로 모으고 Docker에서 `--offline` 빌드를 검증했습니다.


ES에 의존하던 LTR 구조를 분리해 rerank API와 model API로 재구성했습니다. gRPC, 응답 압축, 2단계 캐싱으로 성능과 운영 리스크를 함께 개선했습니다.


C++로 운영하던 대규모 트래픽 서버를 Java와 Spring Boot로 전환한 과정을 정리했습니다. 성능 검증, Canary 배포, GC 개선까지 거쳐 안정적으로 이관했습니다.