패스잇
백엔드 개발 · 중급

Kafka의 로그 컴팩션(Log Compaction)은 무엇이며, 어떤 경우에 유용하게 사용될 수 있는지 구체적인 예시와 함께 설명해 주세요.

힌트 · 로그 컴팩션은 동일한 키를 가진 메시지 중 가장 최신 값만 보존하는 기능입니다. 데이터베이스 변경 로그(CDC)나 사용자 프로필과 같이 최신 상태가 중요한 경우에 유용합니다.

로그 컴팩션키-값 쌍최신 값 유지토픽 설정데이터베이스 변경 이력

모범답안

Kafka의 로그 컴팩션은 특정 키에 대해 가장 최신 메시지만 유지하는 기능입니다. Kafka 토픽은 기본적으로 모든 메시지를 시간 순서대로 저장하지만, 로그 컴팩션을 활성화하면 동일한 키를 가진 이전 메시지는 삭제되고 최신 메시지만 남게 됩니다.

예를 들어, 사용자 프로필 정보를 Kafka 토픽에 저장한다고 가정해 봅시다. 사용자 A의 이름, 주소, 전화번호가 여러 번 변경될 수 있습니다. 로그 컴팩션을 사용하면 사용자 A의 최종 프로필 정보만 유지되므로, 불필요한 데이터 저장 공간을 줄이고 최신 정보만 빠르게 조회할 수 있습니다.

또 다른 예시는 데이터베이스 변경 이력(CDC)입니다. 데이터베이스의 특정 테이블에 대한 변경 사항을 Kafka로 스트리밍할 때, 로그 컴팩션을 사용하면 특정 레코드의 최종 상태만 유지할 수 있습니다. 이는 데이터베이스 복원이나 감사 목적으로 유용하게 사용될 수 있습니다. 로그 컴팩션은 토픽 설정에서 활성화할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 메시지 큐 (Kafka) 면접 질문

← 메시지 큐 (Kafka) 면접 질문 전체 보기