끊임없이 진화하는 디지털 환경에서 Momspresso와 같은 콘텐츠 플랫폼은 사용자에게 개인화된 경험을 제공하기 위해 강력한 데이터 인프라가 필요합니다. 오늘은 Momspresso를 위해 구축한 확장 가능한 데이터 파이프라인에 대한 통찰을 공유하고자 합니다. 이 파이프라인은 그들의 분석과 추천 시스템을 지원합니다.
과제#
Momspresso는 다음과 같은 기능을 갖춘 시스템이 필요했습니다:
- 실시간으로 사용자 이벤트 캡처
- 대용량 데이터를 효율적으로 처리하고 저장
- 사용자 행동에 대한 빠른 분석과 시각화 가능
- 개인화된 콘텐츠 제공을 위한 추천 엔진 지원
우리의 해결책: 종합적인 데이터 파이프라인#
이러한 요구사항을 해결하기 위해 다음과 같은 다중 구성요소 데이터 파이프라인을 설계했습니다:
1. Python 이벤트 SDK#
Momspresso의 코드베이스 전반에 통합될 수 있는 간단한 Python 클래스를 개발했습니다. 이 SDK를 통해 개발자들은 기본 코드를 작성하지 않고도 쉽게 사용자 상호작용을 추적할 수 있습니다.
2. 이벤트 웹 서비스#
이 서비스는 SDK로부터 이벤트를 받아 간단한 유효성 검사 후 Kafka로 전송합니다. 모든 사용자 상호작용 데이터의 진입점 역할을 합니다.
3. Apache Kafka#
높은 처리량과 내결함성 설계로 인해 Kafka를 메시지 브로커 및 발행-구독 시스템으로 선택했습니다. 현재는 단일 머신에서 실행되지만 Momspresso의 성장에 따라 확장할 준비가 되어 있습니다.
4. 데이터 캡처 시스템#
이 구성요소는 Kafka의 모든 이벤트를 수신하여 PostgreSQL 데이터베이스에 삽입합니다. Postgres의 JSON 기능을 활용하여 유연하고 쿼리 가능한 데이터셋을 만들었습니다.
5. PostgreSQL 이벤트 저장소#
모든 이벤트를 위한 주요 데이터 저장소입니다. 저장 공간을 효율적으로 관리하기 위해 월별 아카이브 시스템을 구현했습니다.
6. 실시간 분석을 위한 Grafana#
이벤트 저장소에 연결된 Grafana를 통해 Momspresso는 실시간 쿼리를 그래프로 표현하고, 기능 사용을 추적하며, 전환 성능을 모니터링하고, 이상을 감지할 수 있습니다.
7. 데이터 뷰 시스템#
이 구성요소는 일련의 휴리스틱과 모델을 실행하여 사용자 속성을 정의하고 별도의 사용자 뷰 데이터베이스를 업데이트합니다.
8. PostgreSQL 데이터 뷰 데이터베이스#
처리된 사용자 뷰를 저장하는 이 데이터베이스는 파생된 사용자 데이터에 빠르게 접근할 수 있게 합니다.
9. 대시보드를 위한 Metabase#
데이터 뷰 데이터베이스를 사용하여 Metabase는 Momspresso가 SQL 쿼리를 통해 맞춤형 대시보드와 보고서를 생성할 수 있게 합니다.
10. 고유 사용자 지문 웹 서비스#
각 사용자에게 쿠키로 고유한 서명을 할당하는 1x1 픽셀 서비스로, 세션 간 사용자를 추적할 수 있게 합니다.
이 파이프라인의 힘#
이 데이터 파이프라인은 Momspresso에 다음과 같은 이점을 제공합니다:
- 실시간 인사이트: Momspresso는 이제 실시간으로 사용자 행동과 콘텐츠 성과를 추적할 수 있습니다.
- 개인화: 구조화된 사용자 데이터를 통해 정교한 콘텐츠 추천 알고리즘이 가능해집니다.
- 유연한 분석: 쿼리 가능한 형식으로 데이터가 저장되어 Momspresso는 쉽게 임시 분석을 수행할 수 있습니다.
- 확장성: 모듈식 설계로 필요에 따라 개별 구성요소를 확장하거나 교체할 수 있습니다.
앞으로의 전망#
Momspresso가 계속 성장함에 따라 이 데이터 파이프라인은 사용자 행동을 이해하고 개인화된 경험을 제공하는 데 중요한 역할을 할 것입니다. Momspresso가 이 인프라를 활용하여 플랫폼을 개선하고 커뮤니티를 더욱 효과적으로 참여시키는 방법을 보게 되어 기대됩니다.
다음 포스트에서는 이 데이터 파이프라인을 기반으로 구축된 추천 시스템에 대해 자세히 살펴보겠습니다!