안녕하세요. 위기의 코딩맨입니다.
요즘 너무 많은 일이 있어서 오랜만에 포스팅을 작성해봅니다. ㅎㅎㅎ
오늘은 kafka에 대해서 간단하게 알아보도록 하겠습니다.
[ Apache Kafka란? ]
Apache Kafka는 대용량 실시간 데이터 스트리밍을 처리하기 위한 분산 메시징 플랫폼이라고 합니다.
로그 수집, 이벤트 스트리밍, 실시간 데이터 파이프라인, 마이크로서비스 간 비동기 통신 등에 상용되고 있습니다.
채용공고를 보면, 주로 데이터 기반으로 작업하려고 할때, 많이 사용되는것 같습니다.
[ Kafka가 왜 탄생했나?! ]
- 기존 메시지 큐(RabbitMQ 등)는 대규모 트래픽 처리에 한계
- 로그성 데이터, 이벤트 데이터를 안정적으로 저장·재처리할 필요
- 높은 처리량과 확장성 요구
[ Kafka 핵심 개념 ]
- Broker
- Kafka 서버 인스턴스
- 메시지를 저장하고 Producer와 Consumer를 중계
- Topic
- 메시지가 저장되는 논리적 단위
- 하나의 Topic은 여러 Partition으로 구성 가능
- Partition
- Topic 내부의 분산 단위
- 병렬 처리와 성능 향상의 핵심 요소
- Producer
- 메시지를 Topic에 발행하는 역할
- Consumer
- Topic의 메시지를 읽어가는 역할
- Consumer Group
- 여러 Consumer가 하나의 그룹으로 동작
- Partition 단위로 메시지를 나눠 처리
[ Kafka Install ]
Kafka는 JVM 기반이므로 Java 설치가 필요합니다~!
1. Java 설치
sudo apt update
sudo apt install -y openjdk-11-jdk
2. Kafka 다운로드 및 설치
- user와 path은 경로를 지정해주셔야 합니다~!
cd /opt
sudo wget https://archive.apache.org/dist/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xvzf kafka_2.13-3.7.0.tgz
sudo ln -s kafka_2.13-3.7.0 kafka
sudo chown -R user:staff path/kafka_2.13-3.7.0
3. Zookeeper 실행
- Kafka는 Zookeeper를 기본으로 사용한다고 합니다.
- 터미널로 실행 후, 유지
cd /opt/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
4. Kafka Broker 실행
cd /opt/kafka
bin/kafka-server-start.sh config/server.properties
[ Kafka TEST ]
간단한 통신 테스트를 진행해보도록 하겠습니다.
위에 설치 방법가 실행을 모두 진행하면 2개의 서버가 실행이 되고,

1개의 창으로 producer의 메세지를 설정합니다.
- hi my App Start~!
- hi my App ~!

다른 창으로 consumer로 메세지를 받아보도록 하겠습니다.
접속하게 되면, 해당 producer가 설정한 메시지를 받는 것을 확인할 수 있습니다.

또한, 실시간으로 producer에서 메시지를 뿌리면 실시간으로 consumer에서 받는것을 확인할 수 있습니다.

Kafka에 대해서 간단하게 설치 및 진행을 해보았습니다.
이것을 어떻게 실무적으로 사용하고, 더 딥하게 사용되는지 공부를 해봐야겠습니다.

'기타' 카테고리의 다른 글
| [We-Co] Kafka로 간단한 예제를 풀어봅시다~! - 결제 (1) | 2025.12.24 |
|---|---|
| [We-Co] ChatGPT-5 - 달라진 GPT-5를 알아보자! (6) | 2025.08.08 |
| [We-Co] RAG - LangChain , return_source_documents (0) | 2025.07.16 |
| [We-Co] RAG 검색과 응답 최적화 - Chunking (0) | 2025.07.08 |
| [We-Co] langchain - FewShotPromptTemplate란 무엇일까! (0) | 2025.07.02 |