Jump to section

스트리밍 데이터란 무엇일까요?

URL 복사

스트리밍 데이터는 실시간 정보의 지속적인 흐름이자 이벤트 기반 아키텍처 소프트웨어 모델의 기반입니다. 현대적인 애플리케이션은 스트리밍 데이터를 사용하여 데이터를 처리, 저장, 분석합니다. 

스트리밍 데이터는 데이터 세트에 발생한 변경 사항이나 이벤트의 실행 로그(대개 매우 빠른 속도로 변경됨)라고 볼 수도 있습니다.

빠르게 이동하는 대규모 데이터 세트로서 스트리밍 데이터의 소스일 수 있는 경우는 금융 거래, 사물인터넷(IoT) 센서 데이터, 물류 운영, 소매 주문 또는 병원 환자 모니터링 등 다양합니다. 차세대 메시징처럼 데이터 스트리밍은 이벤트에 대한 실시간 응답이 필요한 상황에 적합합니다.

스트리밍 데이터의 한 가지 예로 이벤트 기반 아키텍처의 기반을 형성하는 이벤트 데이터를 들 수 있습니다. 이벤트 기반 아키텍처는 탄력적으로 결합된 마이크로서비스를 애자일 개발 과정에서 통합합니다.

애플리케이션 사용자는 실시간 디지털 경험을 기대합니다. 스트리밍 데이터를 사용하고 처리할 수 있는 앱은 성능 수준을 높이고 고객 만족도를 개선합니다.

전통적으로 이벤트에 대한 실시간 응답이 필요한 애플리케이션은 데이터베이스와 메시지 처리 시스템에 의존했습니다. 이러한 시스템은 오늘날 엄청나게 쏟아지는 데이터를 처리하는 데 역부족입니다. 예를 들어, 기존의 요청 기반 시스템은 여러 소스의 빠른 데이터 요청에 신속하게 대응하기 어려울 수 있습니다.

이벤트 스트리밍 모델을 사용하는 이벤트는 데이터베이스에 저장되지 않고 로그에 기록됩니다. 이벤트 사용자는 스트림의 어느 부분에서든 데이터를 읽고, 언제든 스트림에 합류할 수 있습니다.

이벤트 스트림 처리를 통해 스트림에서 의미 있는 패턴을 감지할 수 있습니다. 이벤트 스트림 처리는 데이터 스트리밍 플랫폼을 사용하여 이벤트를 수집하고 이벤트 스트림을 처리하거나 변환합니다.

스트리밍 데이터를 생각할 때는 실시간 애플리케이션을 떠올려 보세요. 일반적인 활용 사례는 다음과 같습니다.

  • 정보를 즉시 활용하는 디지털 환경
  • 애자일 소프트웨어 개발을 지원하는 마이크로서비스 애플리케이션
  • 이전에는 일괄 처리 방식이었던 데이터베이스 기반 애플리케이션을 현대화하는 스트리밍 시나리오
  • 특히 여러 소스에서 데이터를 수집하는 실시간 분석
  • 다양한 이기종 기기와 시스템의 데이터를 통합하는 엣지 컴퓨팅

메시징, 지리적 위치, 주식 거래, 부정 행위 탐지, 인벤토리 관리, 마케팅 분석, IT 시스템 모니터링, 산업용 IoT 데이터를 중심으로 구축된 애플리케이션은 데이터 스트림의 일반적인 활용 사례입니다.

Apache Kafka는 대량의 실시간 스트리밍 데이터를 처리하는 가장 흔한 방법 중 하나로 자리 잡은 오픈소스 분산 메시징 플랫폼입니다.

소프트웨어 개발자들은 Kafka를 사용하여 데이터 파이프라인과 스트리밍 애플리케이션을 구축합니다. 애플리케이션에 Kafka를 사용하면 다음과 같은 작업을 할 수 있습니다.

  • 기록 스트림 게시 및 구독
  • 기록 스트림 저장
  • 기록이 발생하는 즉시 처리

Kafka는 스트리밍 데이터를 관리하기 위해 설계되었으며 빠르고, 수평적으로 확장 가능하며, 내결함성을 갖추고 있습니다. Kafka는 특정 애플리케이션에서 데이터 공유를 위한 포인트 투 포인트(point-to-point) 통합의 필요성을 최소화하므로 대기 시간을 밀리초 단위로 줄일 수 있습니다. 결과적으로 사용자는 더 신속하게 데이터를 이용할 수 있기 때문에, IT 운영과 전자상거래 등 실시간 데이터 가용성이 필요한 사례에 유용할 수 있습니다.

Apache Kafka는 초당 수백만 개의 데이터 포인트를 처리할 수 있으므로 빅데이터 문제를 해결하는 데 매우 적합합니다. IoT와 소셜 미디어 등 대부분의 데이터 처리 활용 사례에서 데이터는 기하급수적으로 증가하며, 기존의 데이터 볼륨을 기준으로 설계된 애플리케이션에 빠르게 부담을 가중시킬 수 있습니다.

데이터 스트림은 순차 정보의 실시간 제공으로 정의할 수 있습니다. 스트리밍 데이터 애플리케이션은 활동량이 많은 시간에도 일관된 고가용성 스트림에 의존합니다. 이러한 특성에 맞는 데이터 스트림을 제공하거나 사용하기란 어려울 수 있습니다.

스트림의 원시 데이터 양은 급속하게 증가할 수 있습니다. 시장 매도 중 주식 거래로 인해, 대규모 스포츠 행사 기간 중 소셜 미디어 게시물로 인해, 시스템 장애 시 로그 활동으로 인해 새로운 데이터가 급증하는 경우를 생각해 보세요. 데이터 스트림은 설계 단위로 확장할 수 있어야 합니다. 스트림은 활동이 많은 시간에도 적절한 데이터 시퀀싱, 데이터 일관성, 가용성의 우선순위를 정해야 합니다. 또한 스트림은 부분적인 시스템 장애가 발생할 경우에 대비한 내구성도 갖추고 있어야 합니다.

분산형 하이브리드 클라우드 환경에서는 스트리밍 데이터 클러스터에 특별히 주의해야 합니다. 일반적인 스트리밍 데이터 브로커는 스테이트풀(Stateful) 상태이며 재시작 시 보존되어야 합니다. 메시징 서비스가 예상대로 작동하고, 기록이 손실되지 않도록 하려면 스케일링 시 주의 깊게 오케스트레이션해야 합니다.

스트리밍 데이터 서비스를 사용하는 이유

복잡한 고가용성의 실시간 스트리밍 데이터 플랫폼을 제공하려면 상당한 리소스가 사용될 수 있습니다. 사내 IT 조직의 역량을 뛰어넘는 전문 지식과 하드웨어가 필요한 경우가 많습니다.

바로 이러한 이유로 관리형 클라우드 서비스를 선택하는 스트리밍 데이터 사용자가 많습니다. 인프라와 시스템 관리의 부담을 서비스 제공업체에 넘길 수 있기 때문입니다. 조직은 이러한 방식으로 복잡한 스트리밍 데이터 솔루션을 관리하는 일에서 벗어나 핵심 역량에 집중할 수 있습니다.

추가 자료

학습 시리즈

쿠버네티스 기반 Kafka 알아보기

전문가가 Apache Kafka와 OpenShift를 통해 이벤트 기반 아키텍처를 사용하는 방법을 설명합니다.

E-book

쿠버네티스 환경에서 애플리케이션 관리 간소화

조직에 더 많은 가치를 창출할 수 있도록 애플리케이션 라이프사이클 관리 태스크를 자동화하는 방법을 알아보세요.

애널리스트 문서

Red Hat AMQ Streams를 사용한 이벤트 기반 애플리케이션

이벤트 기반 기업이 OpenShift에서 Apache Kafka를 활용하는 데 Red Hat AMQ Streams가 어떤 도움을 주는지 알아보세요.