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

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 개선까지 거쳐 안정적으로 이관했습니다.
![[SpringBatch 연재 11] Job 및 Step 마다 시작/종료시 특정 작업 수행하기](https://devocean.sk.com/thumnail/2024/12/26/95de41563306b50b08e112611c20b460ffdb998402563c664b36435efb370c61.png)

Spring Batch에서 Job과 Step의 시작/종료 시점에 실행할 작업을 Listener로 연결하는 방법을 설명했습니다. JobExecutionListener와 StepExecutionListener 등록 예시와 실행 로그 흐름을 함께 보여주었습니다.

보험금 청구의 불편함을 줄이기 위해 즉시지급 프로세스를 구축한 사례를 소개합니다. 레거시 분리, 문서 인식 자동화, 워크플로 개선으로 비용과 처리 시간을 크게 줄였습니다.

매월 반복되던 재무 결산을 Spring Batch와 코드 중심 구조에서 Airflow와 dbt 기반 데이터 파이프라인으로 전환했습니다. SQL 수정만으로 결산 대응이 가능해져 유연성과 가시성을 높였습니다.