개발자 / 데이터ㆍ분석

“세상의 변화를 실시간 반영한다” 아파치 플링크 활용사례 3가지

Jean-Sebastien Brunner | InfoWorld 2024.02.29
우리가 사는 실제 세상은 끊임없이 움직이는 사람과 사물로 이뤄지므로 개발자가 만드는 애플리케이션도 이 현실을 반영해야 한다. 매일 수많은 항공기와 승객이 오가는 공항을 생각해 보자. 항공편이 지연되거나 기타 변경이 발생할 경우 최대한 신속하게 승객에게 알려야 한다. 매분 수백만 건 거래를 처리하는 결제 네트워크도 있다. 이런 이벤트를 대규모로, 실시간으로 기록하고 처리할 수 있다면 효율성을 개선하거나 더 좋은 사용자 경험을 제공하는 애플리케이션을 만들 수 있다.
 
ⓒ Getty Image Bank

이를 가능케하는 기술이 바로 스트림 처리다. 스트림 처리는 지속적으로 생성 또는 수신되는 데이터 스트림을 수집, 저장, 관리하는 데 사용하는 데이터 처리 기술이다. 이벤트 처리는 이벤트 스트리밍, 또는 복합 이벤트 처리(CEP)라고도 하며, 데이터 아키텍처를 간소화하고 실시간 인사이트 및 분석을 제공하고, 시간에 민감한 이벤트에 바로 대응할 수 있다. 이런 강력한 장점 때문에 최근 몇 년 동안 급격히 성장했다. 

아파치 플링크(Apache Flink)는 스트림 처리 애플리케이션을 위한 사실상의 표준이다. 아파치 카프카(Kafka)와 함께 사용되는 경우가 많지만 별개로 배포가 가능한 독립실행형 스트림 처리 엔진이다. 이 기술은 내결함성, 정확한 1회 전달, 높은 처리량, 낮은 지연과 같은 분산 스트림 처리와 관련된 많은 어려운 문제를 해결한다. 그래서 우버, 넷플릭스와 같은 기업이 가장 까다로운 실시간 데이터 요건을 구현하는 데 이 플링크를 사용한다. 

스트림 처리 사용 사례는 이벤트 주도 애플리케이션, 실시간 분석, 스트리밍 데이터 파이프라인, 3가지 범주로 분류할 수 있는데 하나씩 자세히 살펴보자.
 

이벤트 주도 애플리케이션 

이벤트 주도 애플리케이션은 데이터 스트림을 관찰 또는 분석해 특정 이벤트나 패턴이 나타나면 즉시 알림을 트리거한다. 가장 일반적인 시나리오는 사기 탐지로, 스트림 처리를 통해 트랜잭션 데이터를 분석하면서 의심스러운 활동을 탐지하면 알림을 보낸다. 그러나 그 외에도 많은 부분에서 활용이 가능하다. 

예를 들어 온라인 판매가 계속 증가하는 소매 분야에서 많은 쇼핑객이 주문하기 전에 재고가 있는지, 배송에 시간이 얼마나 걸리는지 확인하고 싶어한다. 재고 정보를 확인할 수 없거나 배송에 너무 오래 걸리면 많은 쇼핑객이 더 좋은 조건을 찾아 경쟁 사이트로 이동한다. 판매 시스템과 재고 표시가 동기화되지 않은 탓에 재고가 없는 상품을 있다고 표시해 쇼핑객이 주문하고 몇시간 또는 며칠 뒤 주문을 취소하는 경우도 쇼핑객에게 매우 좋지 않은 경험이 된다. 따라서 소매업체는 모든 지역의 재고를 실시간 파악해 새 주문이 접수될 때 가까운 창고로 배송 경로를 수정해야 하는지, 얼마나 시간이 소요되는지 신속하게 파악할 수 있어야 한다.

이런 이벤트 주도 애플리케이션에서는 시간이 핵심적인 구성요소다. 플링크는 개발자가 처리를 위한 데이터 그룹화와 시간 소요를 세부적으로 제어할 수 있는 고급 창(windowing) 기능을 제공하므로 이런 상황에 이상적인 솔루션이다. 
 

실시간 분석

스트리밍 분석이라고도 하는 이 범주에서는 실시간 데이터 스트림을 분석해 운영 또는 전략적 의사 결정에 필요한 정보를 제공하는 비즈니스 인사이트를 생성한다. 실시간 분석을 사용하는 앱은 스트림에서 데이터가 도달하는 대로 이를 분석한 다음 최신 정보를 바탕으로 적시에 의사 결정을 내린다. 예를 들어 온라인 음식 배달 서비스는 그동안 사용량이 폭발적으로 증가했는데, 많은 서비스 앱이 음식점주에게 주문량, 인기 있는 메뉴 항목, 배달 속도 등에 대한 최신 정보를 대시보드로 제공한다. 음식점주는 이 정보를 통해 즉석에서 여러 부분을 조정해 매출을 늘리고 사용자가 제때 주문한 음식을 받도록 할 수 있다.

스트리밍 미디어 서비스는 실시간 분석의 또 다른 인기 있는 사용 사례다. 여러 대형 스트리밍 업체가 어느 프로그램이 인기 있는지, 누가 무엇을 보는지 등에 관한 수십억 개 데이터 포인트를 캡처한다. 이들은 실시간 분석을 통해 개인의 과거 시청 습관과 전체 사용자의 시청 패턴을 기반으로 특정 사용자에게 다음에 어떤 영화를 추천할지 판단한다. 이처럼 실시간으로 조율되는 추천을 통해 사용자는 자기 행동에 따라 거의 즉각적으로 조정되는 피드를 받게 된다. 

플링크는 매우 낮은, 1초 미만의 지연으로 대량의 데이터를 처리하도록 설계되었으므로 이런 실시간 분석에 이상적이다. 인터랙티브 쿼리, 포괄적인 기본 함수 모음, 첨단 패턴 인식 함수 등 지원해 강력한 분석 기능을 실현한다.
 

스트리밍 데이터 파이프라인 

스트리밍 데이터 파이프라인은 애플리케이션과 시스템으로부터 지속적으로 데이터 스트립을 수집한 후 조인, 집계, 변환을 통해 더 가치 있는 새롭고 보강된 데이터 스트림을 생성한다. 다운스트림 시스템에서는 스트림 시작, 스트림 끝 또는 그 사이의 어느 부분에서나 자체적인 용도로 이러한 이벤트를 사용할 수 있다. 

스트리밍 데이터 파이프라인은 전통적인 온프레미스 데이터 웨어하우스와 같은 레거시 시스템에서 이벤트 주도 애플리케이션 및 실시간 분석을 더 잘 지원하는 현대적인 클라우드 기반 플랫폼으로 데이터를 마이그레이션하는 데 유용하다. 레거시 시스템은 가치가 큰 데이터를 갖고 있지만 현대적 애플리케이션 유형을 지원하지 않는 경우가 많다. 스트리밍 데이터 파이프라인은 이런 레거시 소스를 새로운 엔드포인트에 연결하므로 개발자는 현재 운영을 차질없이 유지하면서 현대적인 클라우드 데이터 웨어하우스로 점진적으로 데이터를 마이그레이션할 수 있다. 

스트리밍 처리의 또 다른 중요한 사용 사례는 머신러닝이다. 머신러닝은 기업이 적절히 전략을 조정할 수 있도록 실제 이벤트에 대한 예측을 수행하는 용도로 널리 쓰인다. 머신러닝 파이프라인은 데이터를 준비해 객체 스토리지 서비스에 스트리밍하고, 여기서 머신러닝 모델을 학습한다. 학습된 모델은 실제 세계의 변화를 반영하도록 지속적, 점진적으로 업데이트되면서 실시간으로 추천 내용을 조정한다. 또한 예를 들어 예측 유지보수 또는 사기 탐지를 위해 실시간으로 이런 모델을 호출할 수 있고, 실시간 생성형 AI를 가동하는 데도 사용된다. 여기에 설명된 대로 챗 GPT와 같은 강력한 툴을 사용해 항상 최신 데이터를 활용하는 애플리케이션을 만들 수도 있다.
 

실시간으로 세계에 대응하기

지금까지 살펴본 것처럼 각 사례에서 스트림 처리는 기업이 특정 조치 또는 예측을 통해 더 좋은 비즈니스 성과를 낼 수 있도록 실제 세계의 이벤트를 기록하는 데 사용한다. 클라우드 덕분에 이제 더 많은 시스템이 온라인으로 연결되고 더 많은 데이터가 생성돼 세계와 그 세계 안에서 일어나는 일에 대한 세부적인 정보를 제공한다. 스트림 처리를 이용하면 이 데이터를 활용해 변화하는 이벤트에 실시간으로 대응하는 강력한 애플리케이션을 만들 수 있다.

*Jean-Sebastien Brunner는 Confluent의 제품 관리 이사다.
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.