백엔드 개발 · 기초
카프카 토픽의 '파티션(Partition)' 개념과 그 역할에 대해 설명해주세요. 왜 파티션이 필요한가요?
힌트 · 파티션은 토픽을 여러 개의 로그로 분할하여 병렬 처리와 데이터 분산을 가능하게 합니다. 이를 통해 처리량을 늘리고 장애 내성을 확보할 수 있습니다.
병렬 처리확장성분산 처리순서 보장오프셋
모범답안
카프카 토픽의 파티션은 토픽을 여러 개의 작은 조각으로 나눈 것이라고 생각하시면 됩니다. 각 파티션은 순서대로 정렬된 메시지들의 로그 역할을 합니다.
파티션이 필요한 이유는 크게 두 가지입니다. 첫째, 병렬 처리 능력을 향상시켜 전체적인 처리량을 늘릴 수 있습니다. 여러 컨슈머가 각 파티션을 병렬적으로 처리할 수 있기 때문입니다. 둘째, 데이터를 분산 저장하여 확장성을 확보하고, 일부 파티션에 장애가 발생하더라도 다른 파티션은 정상적으로 동작하여 장애 내성을 높일 수 있습니다.
다만, 중요한 점은 특정 파티션 내에서는 메시지 순서가 보장되지만, 여러 파티션에 걸쳐서는 순서가 보장되지 않는다는 것입니다. 따라서 순서가 중요한 메시지는 동일한 파티션에 저장되도록 키를 잘 설정해야 합니다. 각 메시지는 파티션 내에서 고유한 오프셋을 가지며, 이 오프셋을 통해 메시지를 식별하고 순서를 관리합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 메시지 큐 (Kafka) 면접 질문
- 메시지 큐(Message Queue)가 무엇인지 설명하고, 시스템 아키텍처에서 어떤 이점을 제공하는지 기본 개념 위주로 설명해주세요.
- 카프카(Kafka)는 어떤 용도로 사용되는 분산 스트리밍 플랫폼인가요? 그 주요 특징을 간략히 설명해주세요.
- 카프카에서 '토픽(Topic)'은 무엇이며, 데이터를 분류하고 관리하는 데 있어 어떤 역할을 하는지 설명해주세요.
- 카프카에서 '오프셋(Offset)'은 무엇이며, 컨슈머(Consumer)가 메시지를 처리하는 데 있어 어떤 의미를 가지나요?
- 카프카의 '프로듀서(Producer)'와 '컨슈머(Consumer)'의 역할은 각각 무엇인지 설명해주세요.
- 카프카의 '브로커(Broker)'는 무엇이며, 카프카 클러스터 내에서 어떤 기능을 담당하나요?