
핵심요약
11번가는 전시 딜 데이터를 OracleDB에서 MongoDB 기반의 THOR 플랫폼으로 내재화하여 API 성능을 개선하고 데이터 관리 효율성을 높였습니다. 이 과정에서 데이터 구축, API 적용 및 검증, 그리고 다양한 시행착오를 통해 안정적인 시스템을 구축했습니다.
11번가 전시 딜 내재화 프로젝트: MongoDB 기반 데이터 구축 및 API 개선
프로젝트 배경 및 기존 시스템 문제점
- 딜 내재화는 상품 판매 프로모션 정보를 11번가 시스템에 맞춰 직접 구축하고 관리하는 것을 의미합니다.
- 기존에는 MongoDB 기반 상품 정보와 OracleDB 기반 딜 정보를 조합하는 방식으로, DB 트래픽 낭비와 유지보수 한계 문제가 있었습니다.
- THOR 플랫폼의 일환으로 반정규화 MongoDB로 전환하여 비용 절감, 유연한 스키마, 수평 확장성을 확보하고자 했습니다.
프로젝트 진행 과정 및 기술적 고려사항
- 약 60개 이상의 API에 미치는 넓은 영향 범위로, Facade 패턴과 Factory를 활용하여 구현 부담을 최소화했습니다.
- 딜의 라이프사이클에 따른 데이터 정합성 유지가 중요했으며, 시점별 데이터 비교를 위한 명확한 기준 설정이 필요했습니다.
- 시스템 안정성을 위해 DB 플래그 기반 롤백 장치를 설계하여 긴급 상황 발생 시 AS-IS 모듈로 즉시 전환할 수 있도록 준비했습니다.
데이터 구축, API 적용 및 검증 과정
- 데이터는 SpringBatch로 추출하고 Kafka로 ZeroPayload 메시지를 발행한 후, 멀티스레딩 처리(thread-pool=5, concurrency=3)를 통해 MongoDB에 적재했습니다.
- API 조회 성능을 최적화하기 위해 데이터 구축 단계에서 가공 로직을 집중 처리하고 인덱스를 생성했으며, 기존 OracleDB 조회 로직은 MongoDB 레포지토리 참조로 변경했습니다.
- 검증기는 LogStash와 ELK 스택을 활용하여 MongoDB vs OracleDB 데이터 정합성 및 AS-IS vs TO-BE API 응답 값을 주기적으로 비교 검증했습니다.
- Embedded Document 미갱신, 데이터 급증 (멀티스레딩, 배치 분리 해결), 복잡한 롤백 플랜 등의 시행착오를 통해 시스템을 개선했습니다.
프로젝트 결과 및 향후 개선 계획
- OracleDB 커넥션 제거로 대량 트래픽 시 API 응답 지연이 크게 개선되었고, 딜 갱신 속도가 향상되어 안정적인 서비스 운영이 가능해졌습니다.
- 디버깅 지점이 MongoDB로 단순화되어 이슈 대응이 편리해졌으며, 요구사항에 대한 기민한 대응 능력도 확보했습니다.
- 향후 Casita (Event 기반 CDC Platform) 통합을 통한 딜 수집 리소스 절감 및 상품/딜 정보 로직 분리 리팩토링으로 유지보수성을 더욱 높일 예정입니다.