여러분이 신용카드로 결제하는 순간, 그 거래가 사기인지 아닌지를 1초 안에 판단해야 합니다. 하루치 거래 내역을 모아서 밤에 분석하면 이미 늦습니다. 이것이 바로 실시간 데이터 분석이 필요한 이유입니다.
배치 처리 vs 스트리밍 처리 — 무엇이 다른가요?
이 두 가지 방식을 물류 센터에 비유해서 생각해보세요.
배치 처리는 하루치 택배를 창고에 모아두었다가, 저녁 6시에 한꺼번에 분류하는 방식입니다. 매우 효율적이고 처리 비용이 낮습니다. 하지만 오전 10시에 도착한 택배는 저녁까지 기다려야 합니다. 즉각적인 대응이 불가능합니다.
스트리밍 처리는 택배가 벨트에 올라오는 즉시 실시간으로 분류하는 방식입니다. 도착하자마자 어디로 가야 하는지 결정됩니다. 더 복잡하고 비용이 높지만, 즉각적인 대응이 가능합니다.
| 항목 | 배치 처리 | 스트리밍 처리 | |------|----------|------------| | 처리 시기 | 정해진 시간에 (예: 매일 자정) | 데이터가 도착하는 즉시 | | 지연 시간 | 분 ~ 시간 | 초 ~ 밀리초 | | 데이터 크기 | 대량 (한꺼번에) | 연속적인 소량 | | 비용 효율 | 높음 | 배치보다 높은 비용 | | 예시 | 월말 정산, 야간 보고서 | 사기 탐지, 실시간 대시보드, IoT 모니터링 |
왜 실시간이 중요할까요? 사기 거래 탐지는 결제 후 1초 내에 이루어져야 합니다. 생산 라인의 온도 센서가 임계값을 넘으면 즉시 경보가 울려야 합니다. 라이브 대시보드는 지금 이 순간의 데이터를 보여줘야 합니다. 배치 처리로는 이런 요구사항을 충족할 수 없습니다.
Azure Event Hubs — 수백만 개의 이벤트를 받아내는 거대한 깔때기
콘서트장 입구를 상상해보세요. 공연 시작 직전, 수천 명의 관객이 동시에 몰려듭니다. 입구가 하나뿐이라면 모두가 기다려야 합니다. Event Hubs는 이 문제를 해결하는 거대한 멀티레인 입구입니다.
Azure Event Hubs는 초당 수백만 개의 이벤트를 수집할 수 있는 데이터 수집 서비스입니다.
어떤 데이터를 받을 수 있나요? IoT 디바이스에서 오는 센서 데이터 웹 앱의 사용자 클릭 로그 모바일 앱의 행동 데이터 트랜잭션 로그
Event Hubs의 핵심 특징: 파티션: 데이터를 여러 병렬 레인으로 나누어 처리 속도를 높입니다 소비자 그룹: 같은 데이터를 여러 서비스가 동시에 읽을 수 있습니다 (예: 분석 서비스 + 저장 서비스가 동시에) 보존 기간: 기본 1일, 최대 7일 동안 데이터를 보관합니다
Event Hubs는 단방향입니다. 데이터를 받기만 하고, 디바이스로 명령을 보내지는 않습니다.
Azure IoT Hub — IoT 디바이스와의 양방향 무전기
Event Hubs가 공연장 입구라면, IoT Hub는 두 방향으로 통신하는 무전기입니다. 디바이스에서 데이터를 받을 뿐만 아니라, 디바이스로 명령을 보낼 수도 있습니다.
스마트 공장을 예로 들어볼까요? 공장의 온도 센서가 IoT Hub로 온도 데이터를 보냅니다. 온도가 너무 높아지면, IoT Hub가 냉각 장치에 "가동 시작" 명령을 보냅니다. 이 양방향 통신이 IoT Hub의 핵심입니다.
IoT Hub가 제공하는 추가 기능: 디바이스 등록 및 인증: 허가된 디바이스만 연결할 수 있습니다 디바이스 트윈: 디바이스의 현재 상태를 클라우드에서 추적합니다 직접 메서드 호출: 디바이스에 특정 동작을 명령합니다 펌웨어 업데이트: 디바이스 소프트웨어를 원격으로 업데이트합니다
Event Hubs vs IoT Hub — 언제 무엇을 쓸까요?
| 비교 항목 | Event Hubs | IoT Hub | |----------|-----------|---------| | 통신 방향 | 단방향 (디바이스 → 클라우드) | 양방향 (디바이스 ↔ 클라우드) | | 디바이스 관리 | 없음 | 있음 (등록, 인증, 트윈) | | 적합한 용도 | 대규모 이벤트/로그 수집 | IoT 디바이스 연결 및 관리 | | 예시 | 앱 클릭 로그, 결제 이벤트 | 스마트 공장 센서, 스마트 홈 기기 |
핵심 차이: 데이터만 수집하면 Event Hubs, 디바이스를 관리해야 하면 IoT Hub.
!Event Hubs vs IoT Hub
Azure Stream Analytics — 흐르는 데이터를 실시간으로 거르는 SQL 필터
Stream Analytics는 흐르는 강물에서 특정 물고기만 잡아내는 그물과 같습니다. 데이터가 계속 흘러들어오고, Stream Analytics는 그 중에서 조건에 맞는 데이터만 즉시 찾아냅니다.
여러분이 SQL을 조금이라도 안다면 Stream Analytics는 매우 친숙할 것입니다. 실시간 데이터에 SQL과 유사한 쿼리를 적용합니다.
입력 소스: Azure Event Hubs Azure IoT Hub Azure Blob Storage
출력 목적지: Power BI (실시간 대시보드) Azure SQL Database Azure Blob Storage Azure Event Hubs (다른 시스템으로 전달)
윈도우 함수 — 실시간 데이터를 구간별로 분석하기
스트리밍 데이터는 끊임없이 흘러오기 때문에, "지난 5분 동안의 평균은?"처럼 구간을 정해서 분석해야 합니다. 이것이 윈도우 함수입니다.
엘리베이터 비유로 이해해보세요.
텀블링 윈도우(Tumbling Window)는 엘리베이터가 정확히 5층마다 서는 것입니다. 1~5층 구간, 6~10층 구간처럼 겹치지 않는 고정 구간으로 데이터를 분석합니다. 예: "매 5분마다 주문 건수를 집계하라"
슬라이딩 윈도우(Sliding Window)는 엘리베이터가 항상 움직이는 것입니다. 지금 이 순간을 기준으로 "최근 5분"이 계속 이동합니다. 데이터가 들어올 때마다 분석이 업데이트됩니다. 예: "어느 시점이든 최근 5분간 오류가 10개를 초과하면 경보"
홉핑 윈도우(Hopping Window)는 텀블링과 슬라이딩의 중간입니다. 구간의 크기(10분)와 이동 간격(5분)을 따로 정합니다. 예: "5분마다 최근 10분 데이터를 집계하라" — 구간이 겹칠 수 있습니다.
| 윈도우 유형 | 구간 크기 | 이동 간격 | 겹침 여부 | |------------|----------|----------|----------| | 텀블링 | 고정 | = 구간 크기 | 없음 | | 슬라이딩 | 고정 | 이벤트 기반 | 있음 | | 홉핑 | 고정 | < 구간 크기 | 있음 |
시험 핵심 정리
"초당 수백만 이벤트 수집, 단방향" -- Azure Event Hubs "IoT 디바이스 양방향 통신 + 디바이스 관리" -- Azure IoT Hub "실시간 데이터를 SQL로 분석, 입력→처리→출력" -- Azure Stream Analytics "데이터 도착 즉시 처리, 초~밀리초 지연" -- 스트리밍 처리 "정해진 시간에 대량 처리, 분~시간 지연" -- 배치 처리 "겹치지 않는 고정 구간" -- 텀블링 윈도우 "이벤트마다 업데이트되는 이동 구간" -- 슬라이딩 윈도우 "구간 크기와 이동 간격이 다른 겹치는 구간" -- 홉핑 윈도우 Event Hubs = 데이터 수집만 | IoT Hub = 디바이스 관리까지 Stream Analytics = Event Hubs/IoT Hub → 실시간 분석 → Power BI/SQL