DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
KOEN
Read Original

Contents

Continue Reading

  • More from Pinterest
#AI

사용자 시퀀스 데이터를 더 효율적이고 빠르며 사용하기 쉽게 만들기

사용자 시퀀스 데이터를 더 효율적이고 빠르며 사용하기 쉽게 만들기
01

Summary

핀터레스트가 수조 개의 행동 데이터를 요리하는 법: 차세대 ML 데이터 인프라 재설계

비용은 줄이고 속도는 2배로, 파편화된 파이프라인을 하나로 묶는 핀터레스트의 전략

핀터레스트가 추천 성능의 핵심인 사용자 시퀀스 데이터를 최적화하기 위해 데이터 플랫폼을 완전히 재설계한 과정을 담았습니다. 데이터의 신선도, 일관성, 그리고 효율성이라는 세 마리 토끼를 잡기 위해 도입한 'Configuration-as-Code'와 람다 아키텍처의 실무 적용 사례를 깊이 있게 다룹니다. 대규모 데이터 엔지니어링과 ML 인프라를 고민하는 엔지니어에게 명확한 가이드를 제공합니다.

  • 01실시간 서빙과 오프라인 학습 간의 '데이터 불일치(Drift)' 문제를 해결하는 단일 설정 엔진
  • 02Python 기반 설정을 통해 인프라 작업 없이 신규 신호를 즉시 추가하는 개발 환경 구축
  • 03Blob 형태의 무거운 데이터 구조를 컬럼형 저장소로 전환하여 네트워크 대역폭 및 I/O 대폭 최적화
  • 04람다 아키텍처를 활용하여 실시간 이벤트 반영과 과거 데이터 보정의 공존 실현
  • 05신규 시스템 도입 시 리스크를 최소화하기 위한 정교한 섀도우(Shadow) 데이터 비교 검증 전략

+RECOMMENDATION

대규모 트래픽을 처리하며 실시간성과 학습 정합성이 모두 중요한 추천/랭킹 시스템 엔지니어에게 강력히 추천합니다. 특히 파이프라인 파편화로 인해 생산성이 정체된 데이터 플랫폼 팀에게 '설정 기반 인프라'는 필수적인 전환점입니다.

The Problem

사용자 행동 시퀀스 데이터는 추천 및 랭킹 시스템의 핵심이지만, 대규모 환경에서는 비용이 많이 들고 유지보수가 매우 어렵습니다. 특히 실시간 서빙과 오프라인 학습 데이터 간의 일관성을 유지하는 데 한계가 있었으며, 새로운 시그널을 온보딩할 때마다 복잡한 개별 파이프라인을 구축해야 하는 생산성 저하 문제가 존재했습니다.

The Solution

'단일 정의, 다중 런타임' 원칙을 적용하여 Python 기반의 Configuration-as-Code로 시퀀스 로직을 통합 관리하도록 재설계했습니다. 또한 공유 실행 엔진과 플러그형 실행기(Executor), 실시간과 배치를 병행하는 람다 아키텍처, 그리고 I/O 효율성을 극대화하는 컬럼형 시간 파티셔닝 저장소를 도입했습니다.

The Result

인프라 운영 비용이 유의미하게 절감되었고, 신규 시그널 추가를 위한 온보딩 시간이 획기적으로 단축되어 개발 생산성이 향상되었습니다. 기술적 개선은 실제 서비스의 사용자 참여 지표(Engagement Metrics) 상승으로 이어졌으며 데이터 신선도와 정합성을 동시에 확보했습니다.

Trade-off

시스템의 실시간 특성상 기존 레거시 시스템과의 100% 데이터 일치(Match)는 불가능했기 때문에, 약 90% 이상의 근사치를 허용하는 정책을 수립해야 했습니다. 또한 전환 과정에서 시스템 안정성을 보장하기 위해 섀도우(Shadow) 파이프라인을 병렬로 운영하며 추가적인 컴퓨팅 리소스를 소요했습니다.

03

Key Concepts

Concept · 01

사용자 시퀀스 (User Sequence)

사용자가 서비스 내에서 수행한 최근 행동들의 시간 순서 목록에 임베딩 등 강화된 신호를 결합한 데이터 구조입니다.

  • 단순 통계치보다 풍부한 문맥을 포함하여 트랜스포머 등 시퀀스 인식 모델의 성능을 결정함
  • 랭킹, 검색, 이상 탐지 등 다양한 ML 워크로드의 기반 데이터로 활용됨
Concept · 02

Configuration-as-Code

데이터 필터링, 강화, 조합 로직을 코드로 정의하고 관리하여 여러 런타임에서 동일하게 실행되도록 하는 방식입니다.

  • Python으로 정의된 로직을 JSON으로 컴파일하여 실시간/배치 엔진에서 공유함
  • 엔지니어가 파이프라인 수정 없이 설정 변경만으로 새로운 시그널을 배포할 수 있게 함
Concept · 03

람다 아키텍처 (Lambda Architecture)

실시간 데이터 처리를 위한 스피드 레이어와 대규모 과거 데이터 처리를 위한 배치 레이어를 통합한 아키텍처입니다.

  • 스트리밍 경로는 최신성을, 배치 경로는 데이터의 완전성과 정합성을 책임짐
  • 두 경로의 결과를 협력적으로 활용하여 학습과 서빙 간의 데이터 편향을 제거함
Continue reading · same source

PinterestMore from Pinterest

View all posts from Pinterest
  • 핀터레스트 홈 피드를 위한 조건부 학습 검색(CLR) 확장하기

    Recommendation SystemsLearned RetrievalTransformer
    3일 전
  • 피너의 성장: 핀터레스트의 주간 활성 사용자 증가를 이끄는 유스케이스 표현 개선 사례

    Recommendation SystemsClusteringEmbeddings
    1개월 전
  • 대규모 인프라 보안 확보: 핀터레스트의 리소스 프로비저너 파이프라인(RPP) 도입기

    TerraformAWSGitHub Actions
    1개월 전
  • 핀터레스트 파운데이션 모델을 위한 선형에 가까운 학습 확장성 달성

    Distributed TrainingPyTorchNCCL
    2개월 전
  • 핀터레스트의 차세대 DB 인제스션 프레임워크 내 자동화된 스키마 진화

    CDCApache IcebergFlink
    2개월 전

Source

Pinterest
Pinterest
Engineering Blog

Published · May 21, 2026

Topics

User SequenceLambda ArchitectureML InfrastructureColumnar StorageFeature Engineering