ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION483 / 1500
분산 시스템난이도 중하5분 답변 목표 · 보강본

실시간 집계에서 늦게 도착한 이벤트를 어디까지 기다릴까요? event time·processing time·watermark는 무엇이 다른가요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

event time은 사건에 부여된 발생 시각이고 processing time은 시스템이 처리한 시각입니다. watermark는 특정 시점 이전 이벤트가 더 올 가능성을 다루는 진행 추정·계약이며 모든 늦은 이벤트가 물리적으로 사라졌다는 증명은 아닙니다.

동작 원리와 전제

네트워크 지연·재시도·시계 오차 때문에 도착 순서는 발생 순서와 다를 수 있습니다. 윈도를 언제 확정하고 허용 지연 뒤 데이터를 버릴지 정정할지 별도 결과로 보낼지 정합니다. 사용자 timestamp는 검증 없이 권위 시각으로 쓰지 않습니다.

선택과 실패 처리

파티션별 진행 중 가장 느린 쪽이 전체 watermark를 막을 수 있고 유휴 파티션 정책이 필요합니다. 너무 빨리 진행하면 늦은 데이터가 누락되고 너무 보수적이면 결과 지연·상태 메모리가 커집니다.

구체적인 사례와 검증

매출을 1분 단위로 집계하면서 30초 지연을 허용한다면 윈도 종료 직후 값은 잠정이고 허용 창 뒤 결과는 확정판이 될 수 있습니다. 그 뒤 도착한 이벤트를 버릴지 정정판에 넣을지 사용자 계약을 명시합니다. source가 한동안 아무 메시지도 안 보내면 전체 watermark가 멈출 수 있어 idle 처리 정책이 필요하지만, idle로 본 source가 늦은 데이터를 보내면 어떻게 반영할지도 정해야 합니다. watermark가 큰 값이라고 입력 데이터의 시각이 참이라는 뜻은 아닙니다. 미래 timestamp나 시계 오류가 상태를 너무 빨리 닫지 않도록 검증하고 원본 로그와 대조하겠습니다.

역순·지연·유휴·재시작·미래 시각을 시험합니다. 잠정 집계와 확정·정정 버전을 구분해 보상·정산에 적용합니다. watermark는 업무상 마감 정책과 연결해야 하며 브로커 offset과 같은 전역 시간으로 취급하지 않습니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • 핵심 구분: event time은 사건에 부여된 발생 시각이고 processing time은 시스템이 처리한 시각입니다.
  • 선택 조건: 파티션별 진행 중 가장 느린 쪽이 전체 watermark를 막을 수 있고 유휴 파티션 정책이 필요합니다.
  • 검증 기준: 역순·지연·유휴·재시작·미래 시각을 시험합니다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • watermark 이후에는 이전 시각 이벤트가 절대 도착하지 않는다고 한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

  • 늦은 이벤트가 들어와도 확정 보상 대상이 조용히 바뀌지 않게 어떤 버전을 봉인하나요?
  • 표시 시각·로컬 경과 시간·권위 있는 변경 순서는 어떤 시계와 버전으로 나누나요?
  • 입력 로그 위치와 실제 처리 완료 위치를 어떤 단위로 비교·커밋하나요?

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기