배치 처리는 "쌓인 데이터를 나중에 한 번에 처리한다"는 발상이고, 스트리밍 처리는 "데이터가 도착하는 순간 처리한다"는 발상이다. 이 차이는 단순히 빠르고 느림의 문제가 아니다. 배치는 데이터에 경계(파일, 날짜 파티션)가 있다고 가정하지만, 스트림은 끝이 없는 무한 데이터(unbounded data)를 다룬다. 끝이 없는 데이터에서 "오늘 매출 합계" 같은 집계를 하려면, 어딘가에서 인위적으로 경계를 그어야 한다. 그 경계가 바로 **윈도우(window)**다.
AWS에서 이 스트리밍 집계를 책임지는 서비스가 Amazon Managed Service for Apache Flink다. 과거 "Kinesis Data Analytics"라는 이름으로 불렸고, SQL 버전과 Flink 버전이 있었는데, SQL 버전(KDA for SQL)은 2023년 신규 생성이 중단됐고 현재는 Apache Flink 기반이 표준이다. 시험에서 "실시간 스트림 집계, 윈도우 처리, 상태 기반 처리"가 나오면 Managed Flink를 떠올려야 한다.
Flink를 이해하는 핵심은 "시간"을 세 종류로 구분하는 것이다.