업데이트 압축률 67%를 달성한 플레이스 리뷰 태깅 시스템 개선 경험
태깅 로직과 저장소를 분리하고 write buffer를 넣어 업데이트를 67% 줄였다.
리뷰 이미지와 텍스트에서 추출한 분석 결과를 태그로 저장하던 기존 구조는 비즈니스 로직 변경에 약했고, 운영툴 연동도 어려웠으며, DB 업데이트가 너무 자주 발생했다.
핵심 개선은 두 가지였다.
- rawtags에 분석값 원본을 저장해 재분석 비용을 줄이고, 태깅 비즈니스 로직은 별도 모듈로 분리
- 모든 태그를 tags 컬렉션에 모아 운영 조회와 수정을 가능하게 하고,
valueByAdmin으로 운영자 입력값을 분리 - updatabletargets라는 write buffer를 두어 같은 타겟의 업데이트를 모은 뒤 20분마다 bulk update 수행
흐름은 review insert를 감지한 첫 번째 Kafka Consumer가 분석 API를 호출해 rawtag를 저장하고, 두 번째 Consumer가 rawtag 타입별 로직으로 tag를 만든다. 세 번째 Consumer는 업데이트 대상 타겟을 updatabletargets에 기록하고, Airflow 스케줄링으로 모아둔 태그를 한 번에 반영한다.
결과적으로 현재 이미지 태깅 3종인 분위기인식, 이미지점수, Object Detection에 적용했을 때 기존 대비 **업데이트 압축률 66.7%**를 확인했다. 예시 로그에서도 KR 이미지 태깅은 10274건 → 3425건, JP는 948건 → 316건으로 줄었고, 이미지에서 리뷰로의 전파도 KR 47.1%, JP 31.9% 수준으로 압축됐다.
운영 측면에서는 태그를 한곳에 모아 필터링, 조회, 수정이 가능해졌고, 운영자 입력값이 분석값에 덮여 사라질 가능성도 낮아졌다. 또한 수동 수정 데이터를 Place Data Lakehouse로 전송해 ML 재학습 파이프라인까지 연결했다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.
