데브허브 | DEVHUB | 🔥 Kafka Streams for Beginners | What & Why Kafka Streams Explained @Javatechie🔥 Kafka Streams for Beginners | What & Why Kafka Streams Explained @Javatechie
- 카프카 스트림즈 시리즈 시작: 실시간 데이터 처리 파이프라인 구축 및 스프링 부트 예제를 통한 카프카 스트림즈의 이해와 활용법을 다루는 새로운 시리즈가 시작됩니다. 🚀
- 기존 카프카의 한계: 카프카는 마이크로서비스 간 데이터 이동에 뛰어나지만, 일반 카프카 컨슈머는 상태를 유지하지 못해 실시간 데이터 집계, 변환, 보강에 어려움이 있습니다. 🚧
- 실시간 대시보드 예시: 음식 배달 앱의 실시간 주문 현황 대시보드(활성, 지연, 배달 완료 건수) 구축 시, 일반 컨슈머로는 이전 이벤트를 기억하지 못해 복잡한 로직과 수동 관리가 필요합니다. 📊
- 일반 컨슈머의 문제점: 상태 없음(stateless), 수동 DB 업데이트, 캐싱, 오프셋 관리, 스레드 안전성, 스케일링 등 실시간 집계 및 보강을 위한 많은 추가 코드와 복잡성을 야기합니다. 🤯
- 카프카 스트림즈의 역할: 프로듀서가 토픽에 이벤트를 보내면, 카프카 스트림즈 애플리케이션이 이를 구독하여 실시간으로 데이터를 처리, 집계, 보강한 후 변환된 데이터를 다시 토픽에 기록합니다. ✨
- 카프카 스트림즈의 단순성: 복잡한 실시간 데이터 보강 로직을 단 세 단계(읽기, 처리/보강, 쓰기)로 간소화하여 처리할 수 있습니다. 🎯
- 내부 구조 (토폴로지): 소스 프로세서(읽기), 스트림 프로세서(처리/보강), 싱크 프로세서(쓰기)로 구성된 토폴로지(Topology)를 통해 데이터 흐름을 정의합니다. 🗺️
- 두 가지 API 제공:
- Stream DSL (고수준 API): 선언적 방식으로 '무엇을 할지' 정의하며, 카프카 스트림즈가 '어떻게 할지'를 처리하여 개발 편의성을 높입니다. (KStream, KTable 등 활용) 🛠️
- Processor API (저수준 API): 더 많은 제어권을 제공하지만, 더 많은 상용구 코드와 수동 설정이 필요합니다. ⚙️
- 향후 학습 계획: 다음 영상에서는 스프링 부트를 활용하여 카프카 스트림즈 애플리케이션을 설정부터 라이브 데이터 변환까지 단계별로 직접 구축하는 실습을 진행할 예정입니다. 🧑💻