ComputerScience

슬라이딩 윈도우와 텀블링 윈도우에 대해 알아보자

겅겅겅 2025. 5. 27. 23:08

실시간 데이터 처리를 공부하다가 윈도우 기법에 대해서 보게되었습니다,

슬라이딩윈도우는 네트워크나 알고리즘을 공부하다 볼 수 있기에, 비교적 익숙했지만 텀블링 윈도우는 잘 몰랐습니다.

스트림 시스템에서 두 기법에 어떤 차이가 있는지 또 어떻게 쓰이는지 한번 정리해보려 합니다!

타임 스큐 (Time skew)

프로그램을 만들고 운영하다 보면 시간을 다루는일이 참 많습니다.

시스템에 진입한 시점을 말하는 스트림 시간(Stream time) 실제 이벤트가 발생한 이벤트 시간(Event time) 크게 두가지로 볼 수 있을 것 같습니다.

 

예를들어 스마트 워치에서 피트니스 데이터를 수집 할 때 스트리밍 시스템으로 데이터가 전송된다고 합시다.

여기서 스트림 시간은 피트니스 데이터가 시스템의 어떤 단계에 들어온 시점이고, 이벤트 시간은 워치의 센서가 데이터를 수집한 시점을 의미합니다.

당연히 이 두 숫자는 다를 수 있습니다!

스트림 시간과 이벤트 시간의 차이를 타임 스큐 (Time skew)라고 합니다.

시간 윈도우(Windows of time)

모든 스트림 데이터는 개념상 무한하기에 메모리에 모두 보관할 수는 없습니다.

그래서 시간단위로 잘라서 사용하는데 이렇게 잘려진, 즉 계산을 수행할 수 있도록 잘려진 데이터를 "윈도우(Window)"라고 합니다.

모든 윈도우 기법에는 트리거 조건(Trigger)과 추출 조건(Eviction policies)라는 공통 속성이 있습니다.

트리거는 "데이터를 내보낼 조건을 정하는 규칙(시간, 카운트, 이벤트 기반)"이고 추출 조건은 "윈도우 내부의 데이터를 어떻게 처리할지"에 대한 조건입니다.

슬라이딩 윈도우(Sliding windows)

슬라이딩 윈도우는 윈도우 길이(Window lenght), 슬라이딩 간격(Sliding interval)이라는 이름으로 시간에 기반한 추출조건과 트리거 조건을 사용합니다.

윈도우 길이는 추출조건이고, 슬라이딩 간격은 트리거 조건입니다.

예를들어 위 그림 처럼 윈도우 길이가 2초고 슬라이딩 간격이 1초라면,

1초마다 2초간 들어온 데이터를 담을 수 있는 윈도우를 만들게 됩니다. (데이터 중복 허용가능)

 

4초간 데이터가 들어왔다면 (0,2), (1,3), (2,4), (3,5)총 4개의 윈도우가 만들어 지고

슬라이딩 간격은 2초이기에 각 윈도우에는 순서대로 (A,B), (B,C), (C,D), (D) 이렇게 데이터가 들어가게 됩니다.

텀블링 윈도우(Tumbling window)

텀블링 윈도우에서 트리거 조건은 윈도우 내부 데이터가 일정 갯수 이상일때, 또는 미리 정해둔 시간(t) 두가지입니다.

그렇기에 텀블링 윈도우는 카운트기반, 시간 기반 2가지가 종류가 있습니다.

추출 조건은 시간일수도 있고 윈도우 갯수일수도 있습니다.

카운트 기반 윈도우

시간(t) 기반 윈도우

 

다음 포스팅에서는 이렇게 모든 데이터들을 취합하고 분석하는 방법에 대해 다루겠습니다!