비동기 요청-응답 패턴으로 풀어낸 발주 서비스 개발기
·2025.07.01 00:00
올리브영은 기존 동기식 발주 시스템의 성능 저하 문제를 해결하기 위해 Kafka 기반의 비동기 요청-응답 아키텍처를 도입했다.
기존 올리브영의 발주 시스템은 동기식 처리 방식으로 인해 대량의 데이터 처리 시 응답 지연과 서버 메모리 점유 문제가 발생했다. 특히 상품 하나당 수십 개의 유효성 검증을 거치는 과정이 전체 프로세스의 병목 지점으로 파악되었다.
이를 해결하기 위해 먼저 요청 DTO 구조를 '단일 레코드'에서 '그룹 기반'으로 개선하여 중복 검증을 최소화했다. 이어 서비스 아키텍처를 Kafka 기반의 비동기 방식으로 전환하여, 요청 즉시 응답을 반환함으로써 사용자의 대기 시간을 획기적으로 줄였다.
Kafka를 선택한 이유는 다음과 같다.
- 메시지 유실 방지: Replication과 Log 기반 저장 방식으로 데이터 내구성 보장
- 재처리 자동화: 오프셋 조정을 통해 장애 발생 시 특정 시점부터 복구 가능
- 분산 처리: 파티션 기반의 수평 확장을 통해 처리 성능 제고
비동기 처리로 인해 발생하는 '결과 전달 문제'를 해결하기 위해 **Enterprise Integration Patterns(EIP)**를 활용한 요청-응답 아키텍처 도입을 검토했다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.