BeeAI 공모전 교육 영상(04) - 실시간 스트림 데이터 처리하기(76~95p)
BeeAI는 스트림 데이터를 처리함에 있어 일반적인 스트림과 실시간 스트림으로 구분하여 정교한 분석 체계를 제공합니다. 그 대표적인 사례로 지능형 교통 속도 예측 서비스를 들 수 있는데, 이는 특정 도로 링크의 속도가 15분 후에 어떻게 변할지를 예측하는 인공지능 서비스입니다. 이 시스템의 핵심은 초 단위로 유입되는 방대한 택시 속도 센서 데이터를 실시간으로 수집하고 분석하는 데 있습니다. 이를 위해 BeeAI는 다섯 개의 엔진을 유기적으로 결합한 워크플로우를 설계하여 복잡한 도심의 교통 흐름을 효과적으로 파악하고 미래의 변화를 예측할 수 있는 기반을 마련해 줍니다. IoT 디바이스나 센서에서 직접 유입되는 실시간 스트림 데이터는 정제되지 않은 원시 데이터 상태인 경우가 많습니다. 실제 현장에서는 네트워크 상황에 따라 데이터가 늦게 수집되는 지연 현상이 발생하거나, 데이터 자체가 누락되는 결측치 문제가 빈번하게 나타납니다. 또한 센서 측정 과정에서 발생하는 잡음으로 인해 속도값이 비정상적으로 튀는 경우도 존재합니다. 이러한 불완전한 데이터를 예측 모델에 그대로 활용하면 결과의 신뢰도가 크게 낮아지기 때문에, 초 단위 데이터를 1분이나 5분 단위의 평균값으로 환산하여 데이터의 해상도를 조절하고 품질을 높이는 고도의 전처리 과정이 필수적입니다. BeeAI의 예측 시스템은 엔진 A부터 E까지 다섯 개의 단계로 구성되어 실시간 데이터의 가공과 학습을 처리합니다. 먼저 엔진 A와 B는 Spark Structured Streaming 기술을 활용하여 원시 데이터를 정제하고 평균 속도를 산출하는 실시간 처리를 담당합니다. 엔진 D는 정제된 데이터를 바탕으로 학습 모델이 요구하는 시퀀스 형태의 입력 데이터셋을 생성하며, 엔진 E는 이 데이터를 사용해 주기적으로 새로운 모델을 재학습하여 최신 교통 상황을 반영합니다. 마지막 단계인 엔진 C는 갱신된 모델을 로딩하여 실시간 쿼리에 응답하고 15분 후의 예측 결과를 산출해 사용자에게 최종적인 정보를 제공하게 됩니다. 시계열 데이터의 패턴을 인식하기 위해 본 시스템은 인공 신경망의 일종인 LSTM 모델을 활용합니다. 과거의 데이터 흐름을 기반으로 미래를 예측하는 LSTM은 교통 속도 변화와 같은 시나리오에 최적화된 성능을 보여줍니다. 정확한 예측을 위해서는 5분 단위 평균 속도를 8주기 동안 모은 시퀀스 데이터가 필요하며, 이는 강남 지역 170개 도로 링크를 기준으로 총 1,360개의 수치 데이터 패턴을 형성하게 됩니다. 엔진 D는 이러한 대량의 데이터를 가로로 길게 펼치는 피벗 연산을 수행하여 CSV 파일 형태로 공급하며, 이를 통해 인공지능은 도로 상황의 연속적인 변화를 정밀하게 학습할 수 있습니다. 엔진 D는 학습용 데이터 전처리를 전문적으로 수행하는 미니 배치 엔진으로 작동합니다. 스트림 데이터가 끊임없이 유입되는 환경에서 학습 모델이 요구하는 정확한 시간 단위의 데이터를 포착하는 것은 기술적으로 매우 중요합니다. 시스템은 윈도우 크기를 설정하여 특정 구간의 데이터를 가공하고, 그룹 필터 오퍼레이터를 통해 8주기 분량의 데이터가 모두 확보되었는지 엄격하게 검증합니다. 또한 데이터의 스케일을 0과 0.4 사이로 조정하는 Min-Max 스케일링 과정과 링크 ID를 기준으로 정보를 재배치하는 과정을 거치며, 학습 엔진이 즉시 읽어 들여 활용할 수 있는 최적의 데이터셋을 실시간으로 갱신하며 파일로 저장합니다. 실시간 스트림 처리에 특화된 엔진 A와 B는 Spark Structured Streaming 프레임워크를 기반으로 구축되었습니다. 엔진 A는 초 단위 원시 데이터를 받아 1분 단위 평균 속도를 계산하며, 이때 30초의 오버랩을 설정하여 데이터 변화의 연속성을 확보하고 잡음을 제거하는 스무딩 효과를 구현합니다. 이어지는 엔진 B는 1분 단위 정보를 다시 5분 단위 평균으로 집계하여 보다 안정적인 교통 흐름 데이터를 생성합니다. 이 과정에서 Kafka 파이프 리더와 라이터가 사용되며, 실시간으로 쏟아지는 대용량 데이터를 지연 없이 처리함과 동시에 데이터 정렬과 정제 작업을 동시에 수행하여 분석의 정확도를 극대화합니다. 시스템의 지속적인 신뢰성을 확보하기 위해 워터마크와 체크포인트라는 기술적 장치가 도입되었습니다. 워터마크는 이벤트 타임을 기준으로 지연되어 도착하는 데이터를 특정 시간 동안 기다려 줌으로써 데이터 유실을 최소화하고 분석 결과의 정합성을 높여줍니다. 또한 체크포인트 기능은 예기치 못한 시스템 장애나 중단 상황이 발생했을 때, 데이터 처리 시점을 안정적으로 저장해 두었다가 복구 시 해당 지점부터 다시 연산을 재개할 수 있게 돕습니다. 이러한 고급 스트리밍 처리 기법들은 BeeAI가 실시간으로 흐르는 방대한 스트림 데이터를 처리하는 과정에서 서비스의 연속성을 보장하고 안정적인 예측 결과를 도출하는 밑거름이 됩니다.

![BeeAI 활용 교육 영상(05) - [2단계] 스트림 데이터 처리하기실습](https://i.ytimg.com/vi/JuNcjpaZ5EI/mqdefault.jpg)
