시스템 설계 접근
광고 클릭·노출 이벤트를 실시간 집계하려면 이벤트 수집, 스트림 처리, 저장 세 단계를 각각 설계해야 합니다. 이벤트가 초당 수천 건 발생할 수 있기 때문에 Kafka 같은 메시지 큐로 버퍼를 두고 소비자가 처리하는 구조가 기본입니다. 스트림 처리는 Flink나 Spark Streaming으로 윈도우 기반 집계를 하고, 결과는 저지연 조회가 가능한 Redis나 ClickHouse에 씁니다. 데이터 엔지니어링 수업에서 이 아키텍처를 다이어그램으로 설계하면서, 중복 이벤트 처리가 가장 까다로운 문제라는 걸 배웠습니다. 멱등성 있는 집계 로직과 이벤트 ID 기반 중복 제거를 함께 고려해야 정확한 카운트가 가능합니다. 이 설계 경험으로 대용량 스트리밍 시스템의 핵심은 정확성과 지연 사이의 균형이라는 걸 배웠습니다.
집계 정확도를 유지하면서 레이턴시를 낮추는 것이 실무 설계의 핵심 과제입니다.