컬리의 입고 시스템이 외부 인입 데이터를 안전하게 동기화하는 방법
외부 채널 입고 정보를 안전하게 동기화하기 위해 아웃박스 패턴과 재시도 토픽을 적용한 사례를 소개했습니다. Spring Kafka와 Namastack Outbox로 원자성, 재시도, 실패 알림을 정리했습니다.


외부 채널 입고 정보를 안전하게 동기화하기 위해 아웃박스 패턴과 재시도 토픽을 적용한 사례를 소개했습니다. Spring Kafka와 Namastack Outbox로 원자성, 재시도, 실패 알림을 정리했습니다.

외부 입고 데이터 동기화에서 DB와 Kafka 간 원자성 문제를 아웃박스 패턴으로 보완했습니다. Spring Kafka 재시도 토픽으로 선행 정보 지연에 따른 실패를 자동 복구하도록 구성했습니다.

재고 정산의 스파이크성 트래픽을 Kafka Streams 텀블링 윈도우로 집계했습니다. 생성 시각 추출과 파티션별 더미 이벤트로 시간 정합성과 윈도우 종료를 해결했습니다.

재고 정산 처리에 Kafka Streams window를 도입한 경험을 다룬 글입니다. 윈도우 적용 과정에서의 이야기를 중심으로 정리했습니다.
nginx 권한 없이 점검 중 화면 접근을 차단하는 AccessBlock을 애플리케이션 레벨에 구축했습니다. Redis 캐싱으로 DB 의존성을 낮췄지만 메타데이터 관리 의존성은 과제로 남았습니다.

서비스 점검 중 공지만으로 작업을 막기 어려워 애플리케이션 레벨 차단 도구를 만들었습니다. 이후 Redis 캐싱으로 RDBMS 의존성을 줄이며 점검 상황에 대응했습니다.

배송 시스템 요구에 맞춰 JPA 컨버터와 봉투암호화 기반의 암호화 모듈을 직접 개발했습니다. 의존성·호환성·엣지 케이스·성능을 함께 검증하며 여러 서비스 적용 기반을 마련했습니다.

배송시스템용 암호화 모듈을 직접 개발하고 자동 암/복호화, 봉투암호화, 종속성 최소화 전략을 정리했습니다. 테스트와 성능 측정으로 엣지케이스와 운영 적합성도 검증했습니다.

Kafka Connect와 JDBC Source Connector로 DB 데이터를 Kafka에 연동하는 구조와 증분 쿼리 모드를 설명했습니다. 쿼리 기반 CDC의 누락 사례와 지연 옵션을 통한 완화 방법을 정리했습니다.

Kafka Connect와 JDBC 소스 커넥터로 DB 데이터를 Kafka에 연동하는 방법을 설명했습니다. 쿼리 기반 CDC의 한계와 데이터 누락을 줄이는 설정도 함께 정리했습니다.

OMS의 목적과 역할을 재정의하며 TAM 통합과 주문 분배 계획 단일화를 이끈 구축기입니다. 수기 업무를 줄이고 CAPA 기반 자동화로 운영 생산성을 높이는 과정을 다뤘습니다.

외부 주소 정제 서비스의 비용과 통제 한계, 배송 오류 사례를 바탕으로 내재화 필요성을 분석했습니다. 도로명 주소·상세주소 특성을 정리하고 행정안전부 API 활용을 검토했습니다.

행안부 API와 축적 주소 데이터를 결합해 외부 주소정제 호출과 비용을 크게 줄였습니다. 다만 API 장애와 데이터 범위 한계로 장기 내재화 전략은 재검토했습니다.

외부 API 장애를 계기로 전국 건물 DB를 구축하고 일 단위 자동 동기화 체계를 마련했습니다. 건물관리번호 기반 캐시로 OMS 배송권역 관리도 단순화했습니다.

건물 DB와 주소 파싱 로직으로 단독건물 주소정제를 내재화하고 외부 API 호출을 약 60% 절감했습니다. 행정구역 변경과 비정형 입력은 명칭 보정, 폴백, 테스트 누적으로 대응했습니다.

복합건물 상세주소의 자유 입력과 건물 DB 불일치를 정확도 레벨로 체계화했습니다. 인접 단지 탐색과 전처리로 동 추출률을 높이고 외부 API 호출을 줄였습니다.

지번 주소와 변경 전 주소를 자체 처리해 외부 주소정제 API 의존성을 제거했습니다. 2개월간 외부 호출 없이 안정성을 검증한 뒤 계약을 종료했습니다.

컬리 OMS 팀이 외부 주소정제 서비스의 비용 부담과 CS 문제를 계기로 내재화를 검토한 배경을 정리했습니다. 도로명주소 구조와 건물관리번호를 바탕으로 주소정제의 목적과 중요성을 설명했습니다.
