2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

카프카의 주제(Topic)란 무엇인가요?

_____
자주 묻는 질문(FAQ): 카프카의 주제(Topic)

1. 질문: 카프카에서 ‘주제(Topic)’란 무엇인가요?
답변: 주제는 카프카가 메시지를 분류·저장하고 소비자에게 전달하기 위해 사용하는 논리적 채널입니다. 프로듀서는 특정 주제로 메시지를 전송하고, 컨슈머는 관심 있는 주제를 구독하여 메시지를 읽습니다.

2. 질문: 주제와 파티션(Partition)의 관계는 무엇인가요?
답변:
- 주제는 하나 이상의 파티션으로 구성됩니다.
- 각 파티션은 순서가 있는 메시지 스트림이며, 메시지는 오프셋(Offset)으로 식별됩니다.
- 파티션을 늘리면 처리량과 병렬 처리가 향상되지만 메시지 순서 보장은 파티션 단위로만 유지됩니다.

3. 질문: 오프셋(Offset)이란 무엇이며 왜 중요한가요?
답변:
- 오프셋은 파티션 내 메시지의 인덱스 번호입니다.
- 컨슈머는 마지막으로 처리한 오프셋을 저장하여 재시작 시 그 지점부터 읽기를 계속할 수 있습니다.
- 장애 복구, 재처리 및 순서 보장을 위해 필수적입니다.

4. 질문: 복제(Replication)는 어떻게 동작하나요?
답변:
- 각 파티션은 여러 브로커에 복제본(Replica)으로 저장됩니다.
- 하나의 복제본이 리더(Leader), 나머지는 팔로어(Follower) 역할을 하며, 리더가 클라이언트 요청을 처리합니다.
- 팔로어 복제본은 리더와 동기화되어 고가용성을 제공합니다.

5. 질문: 주제의 데이터 보존(Retention) 정책은 어떻게 설정하나요?
답변:
- 시간 단위(retention.ms) 또는 크기 단위(retention.bytes)로 설정 가능합니다.
- 기본값: 7일간 보관(retention.ms=604800000).
- 설정: 브로커 또는 토픽 레벨에서 개별 조정할 수 있습니다.

6. 질문: 주제 생성 방법은 무엇인가요?
답변:
- 자동 생성(auto.create.topics.enable=true) 또는 수동 생성 도구(kafka-topics.sh --create) 사용.
- 생성 시 지정 항목: 파티션 수(partitions), 복제 팩터(replication-factor), 기타 구성옵션(config).

7. 질문: 주제 구성(Configurable Options) 주요 항목은?
답변:
1) partitions: 병렬 소비·처리를 위한 파티션 수
2) replication-factor: 데이터 안정성을 위한 복제본 수
3) retention.ms/bytes: 보관 기간 및 크기
4) cleanup.policy: delete(기본)/compact(로그 정리 모드)
5) min.insync.replicas: 동기화된 최소 복제본 수(정합성 제어)

8. 질문: 주제 이름 짓기(Best Practices)는 어떻게 해야 하나요?
답변:
- 의미 있는 접두사/서비스명 사용(ex: order.created, user.activity)
- 소문자·숫자·마침표·밑줄만 허용
- 이름 길이 제한(최대 249자) 준수
- 서비스 분리·스키마 변경 관리 용이성 고려

9. 질문: 컨슈머 그룹(Consumer Group)과 주제의 관계는?
답변:
- 하나의 컨슈머 그룹에 속한 여러 인스턴스가 주제 파티션을 분할하여 소비
- 그룹 내 각 파티션은 오직 하나의 컨슈머만 처리(로드 밸런싱)
- 컨슈머 그룹 ID를 달리하면 동일 메시지를 중복 소비할 수 있음

10. 질문: 주제 보안(Security) 설정 방법은?
답변:
- SSL/TLS: 데이터 암호화 및 브로커·클라이언트 인증
- SASL: 사용자 인증(PLAIN, SCRAM, GSSAPI 등)
- ACL(Access Control List): 주제별 Produce/Consume 권한 관리
- 네트워크 레벨 방화벽·VPN과 조합하여 보강

11. 질문: 주제 모니터링 및 메트릭은 어떻게 확인하나요?
답변:
- JMX MBeans: 브로커·토픽·파티션별 지표(ex: BytesInPerSec, LogEndOffset)
- Prometheus+Kafka Exporter: 실시간 시각화 및 알람 설정
- Confluent Control Center, Grafana, Datadog 등 서드파티 툴 활용

12. 질문: 주제 삭제(Deletion) 시 주의사항은?
답변:
- 브로커 설정(delete.topic.enable)을 허용해야 삭제 가능
- 삭제 요청 후 데이터 완전 삭제까지 시간이 소요될 수 있음
- 의도치 않은 삭제 방지를 위해 운영 환경에서는 권한·절차 강화 권장

13. 질문: 주제 관리 시 권장되는 운영(운영 Best Practices)은 무엇인가요?
답변:
- 파티션 수: 초기 설정 시 충분히 고려, 추후 확장 복잡성 감안
- 세분화된 토픽 설계: 서비스별·데이터 유형별로 분리하여 추적성 확보
- 모니터링·알람: 지연(latency), 오프셋 격차(lag), 디스크 사용률 등 점검
- 백업 전략: 주기적 토픽 스냅샷 또는 MirrorMaker 이용 복제

14. 질문: 주제 버전 관리(스키마 진화)는 어떻게 하나요?
답변:
- Avro/Protobuf/JSON Schema 사용 시 스키마 레지스트리 활용
- 호환성 전략(백워드, 포워드, 풀) 설정으로 무중단 배포 지원
- 주제 이름에 버전 태그를 포함하는 방식도 보조 활용 가능

이상으로 카프카 주제(Topic)에 대한 주요 FAQ를 정리했습니다.
카프카의 주제(Topic)는 아파치 카프카(Apache Kafka)라는 분산 스트리밍 플랫폼에서 데이터의 카테고리 또는 피드를 나타내는 중요한 개념입니다.

카프카는 대량의 데이터를 실시간으로 처리하고 전송하기 위해 설계된 시스템으로, 주제는 이 데이터가 어떻게 조직되고 관리되는지를 결정짓는 핵심 요소입니다.

주제(Topic)의 정의 주제는 카프카에서 메시지를 구분하는 기본 단위로, 특정한 데이터 스트림을 나타냅니다.

예를 들어, "주문", "사용자 활동", "로그"와 같은 주제를 정의할 수 있습니다.

각 주제는 여러 개의 파티션(partition)으로 나뉘어져 있으며, 이는 데이터의 병렬 처리를 가능하게 합니다.

각 파티션은 순서가 보장된 메시지의 로그를 저장하며, 메시지는 파티션 내에서 순차적으로 기록됩니다.

주제의 구조 1. 파티션(Partition) : 각 주제는 하나 이상의 파티션으로 나뉘어 있습니다.

파티션은 메시지를 저장하는 단위로, 각 파티션은 독립적으로 읽고 쓸 수 있습니다.

이 구조는 데이터의 병렬 처리를 가능하게 하여 성능을 향상시킵니다.



2. 오프셋(Offset) : 각 메시지는 파티션 내에서 고유한 오프셋을 가집니다.

오프셋은 메시지가 파티션 내에서의 위치를 나타내며, 소비자는 이 오프셋을 사용하여 특정 메시지를 읽거나 처리할 수 있습니다.



3. 리플리카(Replica) : 카프카는 데이터의 내구성을 보장하기 위해 각 파티션의 복사본을 여러 브로커에 저장합니다.

이를 통해 브로커가 실패하더라도 데이터 손실을 방지할 수 있습니다.

주제의 생성과 관리 주제는 카프카 클러스터에서 동적으로 생성할 수 있으며, 관리자는 주제를 생성할 때 파티션 수와 리플리카 수를 설정할 수 있습니다.

주제를 생성한 후에는 메시지를 생산자(producer)가 주제에 게시하고, 소비자(consumer)가 해당 주제로부터 메시지를 읽을 수 있습니다.

주제의 활용 주제는 다양한 애플리케이션에서 데이터 스트리밍을 구현하는 데 사용됩니다.

예를 들어, 전자상거래 플랫폼에서는 "주문" 주제를 통해 주문 정보를 실시간으로 처리하고, "사용자 활동" 주제를 통해 사용자 행동을 분석할 수 있습니다.

이러한 구조는 데이터의 흐름을 명확하게 하고, 시스템 간의 통신을 효율적으로 만들어 줍니다.

결론 카프카의 주제는 데이터 스트리밍 아키텍처에서 중요한 역할을 하며, 데이터의 조직화, 처리 및 전송을 효율적으로 관리하는 데 필수적입니다.

주제를 통해 카프카는 대량의 데이터를 실시간으로 처리하고, 다양한 애플리케이션 간의 데이터 흐름을 원활하게 할 수 있습니다.

이러한 특성 덕분에 카프카는 현대의 데이터 중심 애플리케이션에서 널리 사용되고 있습니다.

작성자: 박은수 [비회원] | 작성일자: 1년 전 2024-11-22 08:11:45
조회수: 181 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.