안녕하세요! 지난 3편에서는 끊임없이 흐르는 데이터 속에서 과거의 기억을 잃지 않기 위해, Flink가 상태(State)와 RocksDB를 어떻게 활용하는지 알아보았습니다. 이제 우리 시스템은 데이터를 놓치지도 않고, 과거의 내역도 안전하게 기억할 수 있게 되었습니다.그런데 분석(Analytics)의 관점에서 보면 아주 근본적인 문제가 하나 남아있습니다. 데이터는 "무한히" 들어옵니다. 무한한 데이터에 대고 "매출 합계(sum())를 구해줘!"라고 하면, 컴퓨터는 언제 정답을 내놓아야 할까요? 영원히 합계만 구하다가 끝날 것입니다.집계(Aggregation)를 하려면 반드시 '끝'이 있어야 합니다. 그래서 우리는 무한한 스트림을 특정 기준에 따라 유한한 조각으로 잘라내야 합니다. 이 자르는 기술이 바로 ..