백엔드 개발 · 기초
카프카에서 '오프셋(Offset)'은 무엇이며, 컨슈머(Consumer)가 메시지를 처리하는 데 있어 어떤 의미를 가지나요?
힌트 · 오프셋은 파티션 내에서 각 메시지의 고유한 순서 번호입니다. 컨슈머는 이 오프셋을 통해 어디까지 메시지를 읽었는지 추적하고 다음 메시지를 가져옵니다.
파티션메시지 순서컨슈머 그룹커밋중복 처리 방지
모범답안
카프카에서 오프셋은 특정 파티션 내에서 메시지의 순서를 나타내는 고유한 ID입니다. 각 메시지는 파티션에 추가될 때마다 순차적으로 증가하는 오프셋 값을 할당받습니다.
컨슈머 입장에서 오프셋은 매우 중요합니다. 컨슈머는 특정 오프셋까지 메시지를 처리했다는 정보를 카프카에 '커밋'합니다. 이렇게 커밋된 오프셋은 컨슈머 그룹 내에서 해당 컨슈머가 어디까지 읽었는지 기록하는 역할을 합니다. 만약 컨슈머가 재시작되거나 다른 컨슈머가 해당 파티션을 할당받게 되면, 커밋된 오프셋부터 메시지를 다시 읽기 시작하여 메시지 처리의 연속성을 보장하고 중복 처리를 방지할 수 있습니다. 즉, 오프셋은 컨슈머가 메시지를 정확히 한 번만 처리하도록 돕는 핵심적인 요소입니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 메시지 큐 (Kafka) 면접 질문
- 카프카(Kafka)는 어떤 용도로 사용되는 분산 스트리밍 플랫폼인가요? 그 주요 특징을 간략히 설명해주세요.
- 카프카에서 '토픽(Topic)'은 무엇이며, 데이터를 분류하고 관리하는 데 있어 어떤 역할을 하는지 설명해주세요.
- 카프카 토픽의 '파티션(Partition)' 개념과 그 역할에 대해 설명해주세요. 왜 파티션이 필요한가요?
- 카프카의 '프로듀서(Producer)'와 '컨슈머(Consumer)'의 역할은 각각 무엇인지 설명해주세요.
- 카프카의 '브로커(Broker)'는 무엇이며, 카프카 클러스터 내에서 어떤 기능을 담당하나요?
- Kafka에서 토픽을 여러 파티션으로 나누는 주된 이유와 이로 인해 얻을 수 있는 이점을 설명해 주세요.