아키텍처
User segmentation 시스템 개발기
두줄요약
MSA 환경에서 유저 세그멘테이션을 위해 구체화된 뷰와 이벤트 드리븐 구조를 도입했습니다. 캐시와 동기화를 결합해 빠른 조회 성능과 장애 전파 차단을 확보했습니다.
문제 상황
- 디스플레이 영역에서 유저 관심 콘텐츠를 빠르게 보여줄 세그멘테이션 요구
- MSA 전환과 서비스 분리로 단순 조인 쿼리 방식의 조회 지연, 메인 DB 부하, 장애 전파 우려
원인 분석
- 여러 마이크로서비스 데이터를 한 번에 조회해야 하는 구조적 제약
- 캐시만으로는 최초 요청 지연과 동기화 복잡성 해소 한계
- 세그먼트 조건 계산에 필요한 활동 데이터의 지속적 반영 필요
해결 방법
- Marketing 서비스에 구체화된 뷰를 두고 이벤트 기반으로 사용자 활동 데이터 동기화
- Kafka 이벤트 발행과 수신으로 증분 업데이트, 정적 import로 초기 적재
- 세그먼트 조회는 캐시 우선, 미스 시 뷰 조회 후 분류 결과 저장
성능/운영 포인트
- 조회 성능 향상과 시스템 간 장애 전파 차단 효과
- 이벤트 처리 멱등성, 동시성, 재처리 대응이 핵심 운영 요소
- 데이터 필드 추가 시 재동기화와 비동기 반영에 따른 실시간성 한계 존재
적용해볼 점
- 조회 중심 기능에서 read model 분리와 이벤트 드리븐 구조 검토
- 성능, 장애 내성, 동기화 복잡성 간 트레이드오프를 함께 평가
