← AI 용어집

AI 용어집 · 기초 · 데이터 엔지니어링

스트림 처리 Stream Processing

스트림 처리(Stream Processing)는 데이터가 생겨나는 순간마다 끊임없이 받아서 곧바로 계산하고 결과를 내는 처리 방식이다. 데이터를 모아 두었다가 나중에 한꺼번에 처리하는 배치 처리와 대비된다.

쉽게 말하면 회전초밥 가게에서 접시가 레일을 타고 올 때마다 바로 집어 먹는 것과 같다. 반면 배치 처리는 음식을 한꺼번에 받아 상을 차린 뒤 먹는 방식이다.

어떻게 작동하나

클릭, 결제, 센서 값, 로그 같은 이벤트가 생기면 메시지 브로커(이벤트를 줄 세워 전달하는 시스템)로 들어간다. 스트림 처리 엔진은 이 흐름을 계속 읽으면서 걸러 내기, 변환, 합계·평균 같은 계산을 바로 수행한다. 끝이 없는 흐름을 계산하기 위해 '최근 몇 분' 같은 시간 구간(윈도)을 정해 그 안에서 집계하는 방식을 많이 쓴다. 계산 결과는 대시보드, 알림, 데이터베이스, 다른 서비스로 곧장 보내진다.

스트림 처리의 기본 구성이벤트 발생 → 메시지 브로커; 메시지 브로커 → 스트림 처리 엔진; 스트림 처리 엔진 → 윈도 집계; 윈도 집계 → 대시보드; 윈도 집계 → 알림; 윈도 집계 → 데이터베이스이벤트 발생클릭·결제·센서메시지 브로커이벤트를 줄 세워 전달스트림 처리 엔진걸러 내기·변환윈도 집계최근 몇 분 단위 계산대시보드알림데이터베이스
스트림 처리의 기본 구성 이벤트가 브로커를 거쳐 엔진으로 흘러가고, 엔진은 시간 구간(윈도)별로 계산해 결과를 곧바로 내보낸다.

왜 중요한가

사기 거래 탐지, 실시간 추천, 장비 이상 탐지처럼 몇 초 늦으면 의미가 줄어드는 일에 꼭 필요하다. AI 서비스에서도 사용자의 최신 행동을 바로 피처로 만들어 모델에 넣거나, LLM 응답 로그를 실시간으로 모니터링하는 데 쓰인다. CDC로 흘러나온 데이터베이스 변경 이벤트를 받아 다른 시스템을 즉시 갱신하는 것도 스트림 처리의 대표적 쓰임이다. 데이터를 '쌓아 둔 뒤 보는 것'에서 '흐르는 동안 보는 것'으로 바꿔 준다는 점이 핵심이다.

알아 둘 점

이벤트가 네트워크 지연 등으로 늦게 도착하거나 순서가 뒤바뀌는 일이 흔해서, 늦은 데이터를 어떻게 처리할지 미리 정해야 한다. 장애가 나도 같은 이벤트를 두 번 세거나 빠뜨리지 않도록 상태를 저장하고 복구하는 설계가 필요하다. 시스템이 항상 켜져 있어야 하므로 배치 처리보다 운영 부담과 비용이 큰 편이다. 그래서 실시간성이 꼭 필요한 부분만 스트림으로, 나머지는 배치로 처리하는 혼합 구조를 많이 쓴다.

얼마나 빨리 처리하나

← 모아서 한꺼번에생기는 즉시 →
123
  1. 야간 배치
  2. 짧은 주기 배치
  3. 스트림 처리
처리 주기의 정도 차이를 한 축에 놓은 것이다. 실시간성이 꼭 필요한 일만 오른쪽 끝을 고른다.

예시

카드사는 결제가 일어날 때마다 이벤트를 스트림 처리 엔진으로 보내, 최근 짧은 시간 동안 같은 카드로 낯선 지역에서 결제가 몰리는지 바로 계산한다. 이상 패턴이 보이면 이상 탐지 모델의 점수와 함께 결제를 보류하고 고객에게 알림을 보낸다. 같은 데이터는 따로 쌓아 두었다가 밤에 배치 처리로 월간 리포트를 만드는 데도 쓰인다.

함께 보면 좋은 용어