드디어 완독! 카프카 핵심 가이드 (명언 모음)

Broccolism·2025년 2월 16일
5

회고록

목록 보기
15/16

카프카 핵심 가이드 개정증보판, 그웬 샤피라, 토드 팔리노, 라지니 시바람, 크리트 페티 지음, OREILLY, 이동진 옮김, 제이펍

어떻게 읽었나

  • 기간: 2024.08.09 - 2024.12.08 (12주 / 그렇다. 완독 후기를 적고 있는 지금으로부터 읽은지 꽤 된 책이다.)
  • 분량: 총 14장, 약 462페이지.
  • 방식: 1주일에 1장, 1-2장과 7-8장은 1주일에 같이 읽음.
  • 누구와 함께: 회사 기술 탐구 모임(?)
  • 읽으면서 쓴 블로그 글: 2개
    • 그만큼 생각할거리가 많은 알찬 책이었다.

좋았던 점

‘표기 규칙’, ‘요약’, 인덱스

  • 좋은 책 특) 이런거 잘 함.

내가 좋아하는 기술 서적의 특징이기도 하다. 책의 기본적인 구성을 잘 갖춘 책..! 같은 이유 때문에 좋아하는 책으로 동일 출판사에서 나온 ‘데이터 중심 애플리케이션 설계’(후기) 가 있다. 책 첫부분에서 이 책을 어떻게 활용해야 하는지 명확히 알려주고 맨 마지막에 인덱스가 있는 구성을 좋아한다. 각 장의 구성도 알차다. 장별로 도입부에서는 그 장이 중요한 이유와 전반적인 내용 소개 및 목표를 제시하고, 마지막에는 요약으로 마무리한다. 카프카에 대한 알찬 이론과 상세한 설명과 주석이 있는 코드 구경은 당연하다.

역자의 애정이 드러난 책

우선 번역이 아주 매끄럽다. 그냥 한국어책을 읽는 것 같다. 뿐만 아니라 책 곳곳에 옮긴이의 첨언이 등장하는데 이게 내용을 이해하는 데 꽤나 도움이 많이 되었다. 카프카에 정말 애정이 있는 분이구나, 하는 생각이 절로 들었다. 그도 그럴 게, 옮긴 이가 바로 이런 분이기 때문이다: 2023 DEVIEW 에서 네이버 스케일로 카프카 컨슈머 사용하기 를 발표한 이동진님.

책의 오역 및 오탈자도 깃헙 페이지를 통해 제보 받고 있다: https://dongjinleekr.github.io/kafka-the-definitive-guide-v2/errata/

역자가 등장한 부분 중 생각나는 몇 군데만 뽑아봤다. 단순히 짧은 코멘트만 있는게 아니라 내용 이해를 도와주는 내용, 구버전과 신버전 비교, 사내 카프카 시스템을 운영하면서 자주 질문 받는 부분 등 유익한 내용이 많았다.

(굳이 찾아보자면) 아쉬웠던 점

사실 없다...

굳이!! 아쉬운 점을 하나 꼽아보자면 모니터링이나 운영 관련 챕터에서 실제 장애 사례가 소개되었다면 더 재밌지 않았을까 하는 것이다. 그런데 이건 이 책에서 다루는 범위 밖의 이야기다. 카프카 사용처가 워낙 많아서 몇가지를 꼽기도 어려웠을 것이며, 이 책은 사례 모음집이 아니라 가이드이기 떄문이다. 보다 실무에 가까운 내용은 다른 책에서 기대할만한 내용이다.

그리고 사실 이 책이 완전히 실무와 동떨어진 책도 아니다. 오히려 중간중간 이런식으로 실무에 바로 써먹을 수 있는 내용도 많이 나온다: 파티션 수는 어떻게 결정해야 하나요? 에 대한 답변이다.

이번에도 스터디를 했다

모두가 발표하는 스터디

  • 참여 인원: 4명

카프카에 대한 이해도가 비슷한 사람들끼리 스터디를 했다. 인원도 딱 괜찮았다 4명! 그래서 저번부터 쓰던 ‘모두가 발표하는 스터디 방식’을 그대로 써먹었고 이번에도 효과가 좋았다. 사실 사내 스터디를 하면 연차가 워낙 다양해서 눈높이가 살짝씩 다르거나, 매주 한 사람이 전담 발표를 해서 다른 사람들은 조금 심심한(…) 사태가 벌어지곤 했는데 이번 스터디는 사내 스터디 중에서 제일 알차게 참여했던 것 같다.

유독 재밌었던 챕터

사실 책 초반부는 거의 스펙 문서다.

  • 2장: 카프카 설치하기
  • 3장: 카프카 프로듀서와 설정값
  • 4장: 카프카 컨슈머와 설정값
  • 5장: 카프카 어드민 클라이언트 스펙

‘진짜’는 6장부터 시작이다. 재밌었던 장별로 키워드를 적어보자면…

  • 6장: 카프카 내부 메커니즘 - 클러스터 멤버십, KRaft (이걸 읽으면서 [Kafka] KRaft 모드에서 컨트롤러의 정체 파헤치기를 썼다.), 복제, 요청 처리, 물리적 저장소
  • 7장: 신뢰성 있는 데이터 전달 - 신뢰성 보장, 브로커 설정, 인-싱크 레플리카(Min ISR), 재시도와 오프셋 커밋, 신뢰성 검증하기
  • 8장: ‘정확히 한 번’의 의미 구조 - 멱등적 프로듀서, 트랜잭션
  • 10장: 클러스터간 데이터 미러링하기 - 여러가지 다중 클러스터 아키텍처, 미러메이커
  • 12장: 카프카 운영하기 - 컨슈머 그룹, 동적 설정 변경, 파티션 작업
  • 14장: 스트림 처리 - 이벤트 처리 (이걸 읽으면서 데이터 스트림이 무엇이냐는 질문에 제대로 대답해보기를 썼다.), 디자인 패턴, 카프카 스트림즈

헉… 키워드만 봐도 설레지 않는가? 앞 부분이 지루하다고 드랍하기엔 너무나도 아까운 책이다.

명언 모음

책에 은근히 명언이 많이 나온다. 워낙 편안한 분위기에서 스터디를 했어서 가끔 인상깊었던 구절도 남기곤 했는데, 똑같은걸 남긴 적도 있었다. 번역이 잘 된 것도 한 몫 했다고 본다.

  • 우리는 이미 같은 클러스터에 속한 카프카 노드 간의 데이터의 교환을 복제라고 부르고 있으므로, 카프카 클러스터 간의 데이터 복제는 미러링이라고 부를 것이다. (오~ 그러고보니 눈치채지 못한 부분이었다. 현명했다!!)
    • 10장. 클러스터간 데이터 미러링하기
  • 토픽 단위에서 신뢰성 트레이드오프를 제어할 수 있다는 것은 신뢰성이 필요한 토픽과 아닌 토픽을 같은 카프카 클러스터에 저장할 수 있음을 의미한다.
    • 7장. 신뢰성 있는 데이터 전달
  • 시스템 보안은 딱 가장 약한 고리만큼만 강한 법 (4명 만장일치로 ‘명언’으로 꼽힌 구절)
    • 11장. 보안
  • 스트림은 변경을 유발하는 이벤트의 연속이다. 테이블은 여러 상태 변경의 결과물인 현재 상태를 저장한다. 이러한 점에서 볼 때 스트림과 테이블은 같은 동전의 양면임이 명백하다.
    • 14장. 스트림 처리

추천 대상

  • ⭐️강추⭐️: 카프카를 실무에서 쓰고 있지만 내부 동작을 잘 모르거나 아직까지 설정값이 낯설게 느껴지는 분.
    • 내가 딱 여기에 해당되었다. 카프카에 대한 막연한 두려움을 없애보고자 참여한 스터디였고 지금은 그래도 ‘아주 조금은 압니다’라고 말할 수 있을 정도는 되었다. 실무에서 써먹어봤기 때문에 ‘아 그게 이거였구나!!’ 하는 부분이 많아서 읽는 재미가 쏠쏠할 것 같다.
  • 그 외 추천 대상
    • 데이터 스트리밍 처리 프로세스의 실제 사례나 기법이 궁금한 분.
    • 카프카를 이제 막 쓰기 시작한 분. (책의 난이도가 딱 ‘중’으로 표기되어 있는데 맞는 것 같다.)
profile
설계를 좋아합니다. 코드도 적고 그림도 그리고 글도 씁니다. 넓고 얕은 경험을 쌓고 있습니다.

0개의 댓글

관련 채용 정보