1️⃣ 카프카
Apache Kafka
Kafka는 대용량의 데이터를 빠르게 처리하고 분산 시스템 환경에서 안정적으로 메시지를 전달하는 분산 스트리밍 플랫폼입니다. 메시지 큐(Message Queue) 시스템의 일종으로, 다양한 데이터 소스를 실시간으로 처리할 때 많이 사용됩니다.

프로젝트에서의 Kafka 활용
- 실시간 이벤트 처리: 관제 시스템에서 발생하는 이벤트를 실시간으로 전달
- 대규모 데이터 처리: 여러 시스템이 데이터를 공유할 때 병목 없이 빠르게 전달
- 비동기 처리: 서비스가 독립적으로 실행되도록 메시지를 중간에서 전달
Kafka의 핵심 개념
- Producer (생산자): 데이터를 Kafka에 보내는 역할
- Topic (토픽): 데이터를 구분하는 단위 (메일함과 유사)
- Partition (파티션): 토픽을 여러 개의 부분으로 나누어 데이터 분산 저장
- Broker (브로커): Kafka 서버 인스턴스로, 데이터를 저장하고 관리
- Consumer (소비자): 데이터를 가져가서 처리하는 역할
장점과 단점
장점
✅ 빠르고 대용량 데이터를 처리할 수 있음
✅ 분산 시스템이라 안정적이고 확장 가능
✅ 여러 소비자가 같은 데이터를 공유 가능
✅ 데이터 유실 방지를 위한 로그 저장 기능
단점
❌ 설정 및 운영이 복잡함
❌ 장애 발생 시 복구 과정이 필요
❌ 실시간 처리를 위한 소비자 어플리케이션 개발 필요