
백엔드
당근에서 정보 유실 없이 업체 정보를 모으는 방법
두줄요약
여러 경로로 모은 업체 정보의 중복을 병합으로 정리하고, 변경 이력을 바탕으로 대표 프로필의 값을 고도화했습니다. 필드별 정책을 분리해 더 합리적인 정보를 노출하도록 개선했습니다.
문제 상황
- 사장님 직접 등록, 유저 제안, 외부 수급으로 업체 정보를 모으는 구조
- 여러 경로에서 같은 업체가 중복 생성되어 사용자 혼란과 정보 분산 발생
- 병합된 프로필에 더 좋은 최신 정보가 있어도 대표 프로필에 반영되지 않는 한계
해결 방법
- 중복 프로필을 탐지해 대표 프로필로 병합하고 미노출 프로필은 대표로 연결
- 변경 절차를 Local Profile Mutation으로 통일해 일관된 변경 이력 저장
- 변경 이력을 바탕으로 Composite Snapshot을 구성해 필드별로 더 합리적인 값을 선정
성능/운영 포인트
- 변경 시점, 변경 소스, 변경 값 기반의 스냅샷 후보 정렬과 선택
- Filter와 Evaluator를 분리한 Reduce 추상화로 정책 조합과 확장성 확보
- 멱등성, 신뢰성 낮은 소스 제외, 대표 프로필 우선 같은 운영 정책 반영