Oh My Algorithm
Concept Guide키별 최신값 · 스냅샷

로그 컴팩션 (Log Compaction)

보존 기간이 지나면 오래된 것부터 지우는 것이 기본이지만, 어떤 토픽은 '지금 상태'가 필요합니다. 로그 컴팩션은 같은 키의 오래된 레코드를 지우고 마지막 값만 남겨, 로그가 곧 최신 스냅샷이 되게 합니다. 처음부터 읽으면 모든 키의 현재 값을 복원할 수 있습니다.

01 개념 한눈에 보기

Interactive Step-by-Step
로그 컴팩션 · 키마다 마지막 값만
← 먼저 쓴 값 · 나중에 쓴 값 →
프로필 토픽
📍서울user-42
01234
키 = 사용자, 값 = 그 시점의 주소

사용자 프로필을 카프카에 보관합니다. 주소가 바뀔 때마다 새 줄로 덧붙입니다 — 고치는 게 아니라 쌓는 것입니다.

Logic Node1 / 9

02 쉽게 이해하기

For Everyone
🔑비유

주소록을 이사할 때마다 새 줄로 적어 두다가, 정리할 때 사람마다 마지막 주소만 남기고 이전 줄을 지우는 것과 같습니다. 기록은 짧아지지만 '지금 주소'는 그대로 알 수 있습니다.

💡쉽게 말하면

컴팩션은 키를 기준으로 동작합니다.

같은 키가 여러 번 쓰였으면 가장 나중 것만 남기고 앞의 것들을 지웁니다.

값이 null 인 레코드(툼스톤)는 '이 키를 삭제하라'는 표시로 쓰이고, 일정 시간 뒤 함께 사라집니다.

덕분에 로그 전체를 처음부터 읽으면 현재 상태가 그대로 재구성되어, 캐시·설정·프로필 같은 상태 저장에 쓰입니다.

📍어디에 쓰나
  • 키-값 상태를 카프카로 보관(CDC·설정·프로필)
  • 서비스 재시작 시 상태 복원
  • 무한히 커지는 토픽의 용량 관리

03 자주 묻는 질문

FAQ
로그 컴팩션 (Log Compaction)란 무엇인가요?+

보존 기간이 지나면 오래된 것부터 지우는 것이 기본이지만, 어떤 토픽은 '지금 상태'가 필요합니다. 로그 컴팩션은 같은 키의 오래된 레코드를 지우고 마지막 값만 남겨, 로그가 곧 최신 스냅샷이 되게 합니다. 처음부터 읽으면 모든 키의 현재 값을 복원할 수 있습니다.

로그 컴팩션 (Log Compaction)은(는) 어디에 사용하나요?+

키-값 상태를 카프카로 보관(CDC·설정·프로필), 서비스 재시작 시 상태 복원, 무한히 커지는 토픽의 용량 관리

로그 컴팩션 (Log Compaction)를 쉽게 비유하면?+

주소록을 이사할 때마다 새 줄로 적어 두다가, 정리할 때 사람마다 마지막 주소만 남기고 이전 줄을 지우는 것과 같습니다. 기록은 짧아지지만 '지금 주소'는 그대로 알 수 있습니다.

Guide Progress0%