
코드 품질 개선 기법 1편: 한 번 엎지른 <error>는 다시 주워 담지 못한다
에러 표현 방식은 복구 가능성과 호출자 처리 범위에 맞춰 선택해야 한다고 설명했습니다. 예시 코드에서는 입력 오류와 구현 실수를 다른 방식으로 분리해 개선했습니다.

에러 표현 방식은 복구 가능성과 호출자 처리 범위에 맞춰 선택해야 한다고 설명했습니다. 예시 코드에서는 입력 오류와 구현 실수를 다른 방식으로 분리해 개선했습니다.


정산 데이터를 프로세스별로 가공해 적재하던 구조를 원천 데이터 기반 정산 구조로 개편했습니다.\n보정 작업이 사라지고 마감과 운영 효율이 크게 개선되었습니다.


캐치테이블 글로벌은 번역 마이크로서비스와 검수 어드민을 도입해 다국어 레이어를 구축했습니다. 또한 AWS DMS CDC와 Kafka를 활용해 기존 도메인 변경을 중앙에서 번역 요청하도록 설계했습니다.


Spring Kafka의 seek 기능으로 컨슈머를 멈추지 않고 오프셋을 이동하는 방법을 정리했습니다. 분산 환경에서는 HTTP API와 Redis Pub/Sub로 요청을 전파해 그룹 단위 재처리를 구현했습니다.


비동기 메시지 규칙이 제각각이던 레거시 시스템을 통합 이벤트·커맨드·태스크로 분류해 표준화했습니다. Kafka와 Bullmq로 cloud agnostic 인프라를 구성해 CSAP 대응 마이그레이션을 완료했습니다.


토니모리 공식몰 API의 응답 시간을 개선한 사례를 다뤘습니다. COUNT(*)를 EXISTS로 바꾸고 인덱스를 추가해 조회 성능을 높였습니다.
![[SpringBatch 연재 10] 스프링배치 플로우 컨트롤 하기](https://devocean.sk.com/thumnail/2024/11/29/20eb6934476f3b2a7a750153647d9f049eb9df33462a0b597ee5acfb5d95cf82.png)

Spring Batch의 Flow Controller로 Step 실행 순서와 분기 방법을 설명했습니다. next, on, from, stop을 이용해 조건별 배치 흐름을 구성하는 방법을 정리했습니다.

올리브영 선물하기관은 DB 의존과 배치 지연으로 성능과 신뢰성 문제가 있었습니다. 전시 전략 통합과 AOP·리플렉션 기반 개선으로 빠르고 정확한 서비스로 개편했습니다.


커뮤니티 업로드 병목을 해결하기 위해 S3 Presigned URL로 직접 업로드 구조를 도입했습니다. 백엔드 부하를 줄이고 속도와 운영 효율을 함께 개선했습니다.


광고 업체 유효성 검사 시스템을 직접 API 호출에서 캐시와 Kafka 기반 실시간 처리로 개선한 과정을 정리했습니다. gRPC와 표준화된 필드로 성능, 확장성, 유지보수성을 높였습니다.


광고 업체 유효성 검사 시스템을 API 중심 구조에서 배치와 Kafka 실시간 처리 구조로 단계적으로 개선한 사례입니다. MySQL, Redis, gRPC를 함께 활용해 확장성과 운영 효율을 높였습니다.


YARN 환경의 Trino 리소스를 재조정해 장비 증설 없이 가용 메모리를 늘리는 과정을 정리했습니다. AM Container와 RESERVED Resource를 고려해 Worker 중심으로 설정을 최적화했습니다.