피드로 돌아가기
원문 읽기
LINE Engineering
Backend기획서 없이 내재화하기: 검증 로직으로 동일함을 증명하다
LINE Plus가 사양서 없는 블랙박스 시스템을 Kafka 기반 검증 루프로 기존과 신규 시스템의 동일성 증명
AI 요약
Context
외부 시스템에 의존하던 글로벌 전자상거래 검색 모듈을 내재화하려 했으나, 기획서·사양서·기존 코드 모두 없는 완전한 블랙박스 상황이었습니다. 수천만 건의 카탈로그와 수억 건의 상품을 처리하는 복잡한 로직을 수동으로 검증하는 것은 불가능했으며, 기존 시스템과 신규 시스템이 정확히 동일하게 작동하는지 증명할 방법이 필요했습니다.
Technical Solution
- CDC + Kafka 기반 트리거 구조: 카탈로그 DB 변경을 MySQL 바이너리 로그에서 실시간으로 포착하는 Change Data Capture(CDC)로 검증 시작점 자동화 후 Kafka를 통해 비동기로 검증 모듈에 이벤트 전파
- Map<String, Object> 기반 재귀적 필드 비교: 고정 클래스 매핑 대신 모든 API 응답을 Map 구조로 변환해 필드 구조 복잡도와 무관하게 Key 기준 동일 로직으로 검증 수행
- 2단계 검증 로직(순서 무시 비교): 1차 비교 실패 시 리스트 내용을 문자열 정렬 후 2차 비교해 로직 결함과 단순 사양 차이 구분
- OpenSearch + ksqlDB 기반 분석 파이프라인: 불일치 이벤트를 Kafka 토픽으로 프로듀싱 후 OpenSearch Connector로 자동 적재하고, ksqlDB로 실시간 SQL 집계해 이상 징후 감지 시 Slack 알림 전송
- 검증 전용 관리자 페이지: 카탈로그 비교(필드 검색·필터링·하이라이트), 통계 시뮬레이션(카탈로그 ID 입력 후 계산 로직 확인), 수신 파이프라인 단계별 처리 상태 가시화를 한 화면에 제공
Key Takeaway
기획서와 기존 코드가 없는 상황에서도 입력과 출력을 명확히 정의하고 문제를 작게 쪼개어 접근하면 아무리 복잡한 블랙박스 시스템이라도 동일성을 통계로 증명할 수 있습니다.
실천 포인트
레거시 시스템 내재화나 타사 API 재구현이 필요한 팀에서 사양서 부재 상황에 직면했을 때, CDC와 Kafka를 활용해 실시간 듀얼 호출 검증 루프를 구축하고 OpenSearch + ksqlDB 조합으로 불일치 패턴을 자동 집계해 개발자에게 실시간 피드백을 제공하면 블랙박스 로직 파악에 소요되는 시간을 대폭 단축할 수 있습니다.