목록 보기
Feed-Entity: 당근 피드의 심장
아키텍처

Feed-Entity: 당근 피드의 심장

당근마켓
당근마켓
2025년 4월 3일

두줄요약

당근은 피드 콘텐츠를 Feed-Entity로 표준화해 여러 서비스의 데이터를 한 구조로 관리했습니다. 수집·변환·검증·서빙을 모듈화하고 지역별 캐시로 읽기 성능과 확장성을 높였습니다.

문제 상황

  • 당근의 여러 서비스가 각자 다른 저장소와 데이터 구조로 피드에 콘텐츠를 공급하는 분산형 운영 구조
  • 서비스가 늘어날수록 통합 작업과 데이터 일관성 관리 부담이 커지는 문제

구조와 흐름

  • 피드에서 노출 가능한 가장 작은 콘텐츠 단위를 Feed-Entity로 정의하고 SSOT로 활용
  • 수집, 변환, 검증/DLQ, 메시지 큐 연동으로 이어지는 모듈화된 데이터 파이프라인 구성
  • DB 저장, 지역별 Redis 캐시, 인덱스 기반 조회로 읽기 트래픽 중심의 서빙 최적화

선택 이유

  • 서비스별 상이한 구조를 표준화해 개발 복잡도와 통합 비용을 낮추기 위한 선택
  • 새로운 콘텐츠 타입 추가 시 전체 수정 없이 변환 모듈만 확장할 수 있는 유연성 확보
  • 지역성 높은 피드 특성에 맞춰 캐싱과 인덱싱을 분리해 성능과 확장성을 함께 고려

성능/운영 포인트

  • 멱등성 보장과 DLQ 처리로 중복 수집과 변환 실패를 안전하게 관리
  • 백필로 콜드 스타트를 완화하고 초기 데이터 부족 문제를 보완
  • 지역별 캐시 분리와 인덱스 기반 조회로 p99 평균 20ms 이하의 저지연 서빙 지향

다음 읽기

#Redis 주제를 이어서 읽기

추천 시스템의 심장, Feature Store 이야기 (1)

추천 시스템 고도화를 위해 인하우스 Feature Store를 설계하고 구축한 과정을 소개했습니다. 실시간 수집, 동적 조회, 확장 가능한 저장 구조를 통해 추천 로직과 피처 관리를 분리했습니다.

당근마켓
당근마켓
아키텍처

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...