도서상세
장바구니에 상품을 담았습니다.
바로가기
  1. 도서정가제
  2. 소득공제
일시재고부족
33,000원
29,700원
10%
최대 적립 포인트
1,950 원
  • 구매 적립
    적립금 안내
    • 상품 적립금
    • 상품 적립금은 고객님이 웬디북에서 상품을 구매하실 경우 이에 대한 마일리지 개념으로 구매금액의 일부를 적립해 드리는 제도이며 사용은 예치금과 같이 현금처럼 사용가능하십니다.
    • 멤버십 적립금
    • 멤버십 적립금은 고객님의 멤버십(고객)등급에 따라 도서 구매액의 1 ~ 4%에 해당하는 적립금이 추가로 적립되며 적립금은 다음 주문시 현금처럼 사용이 가능합니다.
    • 다만 적립금은 예치금과는 달리, 현금으로 환불하실 수 없고 적립금의 적립일로 부터 12개월 이내에 사용하시지 않으면 자동으로 소멸됩니다.
  • 상품 적립금
    1,650원
  • 리뷰 적립
  • 최대 리뷰 적립금
    300원
29,700원
· 쿠폰 및 적립금은 결제 시 적용해 주세요
바로구매
장바구니 담기
일시재고부족
이 책을 구입하신 분들이 산 책
상세 이미지 더보기
상세 이미지
목차 더보기
목차
옮긴이 머리말 xv
베타리더 후기 xvi
제2판 추천사 xviii
제1판 추천사 xx
시작하며 xxiii

CHAPTER 1 카프카 시작하기 1
1.1 발행/구독 메시지 전달 2
1.2 카프카 입문 4
1.3 왜 카프카인가? 10
1.4 데이터 생태계 12
1.5 카프카의 기원 15
1.6 카프카 시작하기 18

CHAPTER 2 카프카 설치하기 19
2.1 환경 설정 19
2.2 카프카 브로커 설치하기 23
2.3 브로커 설정하기 25
2.4 하드웨어 선택하기 34
2.5 클라우드에서 카프카 사용하기 36
2.6 카프카 클러스터 설정하기 37
2.7 프로덕션 환경에서의 고려 사항 44
2.8 요약 48

CHAPTER 3 카프카 프로듀서: 카프카에 메시지 쓰기 49
3.1 프로듀서 개요 50
3.2 카프카 프로듀서 생성하기 52
3.3 카프카로 메시지 전달하기 54
3.4 프로듀서 설정하기 57
3.5 시리얼라이저 65
3.6 파티션 73
3.7 헤더 76
3.8 인터셉터 77
3.9 쿼터, 스로틀링 79
3.10 요약 81

CHAPTER 4 카프카 컨슈머: 카프카에서 데이터 읽기 83
4.1 카프카 컨슈머: 개념 83
4.2 카프카 컨슈머 생성하기 90
4.3 토픽 구독하기 91
4.4 폴링 루프 92
4.5 컨슈머 설정하기 94
4.6 커밋과 오프셋 102
4.7 리밸런스 리스너 109
4.8 특정 오프셋의 레코드 읽어오기 112
4.9 폴링 루프를 벗어나는 방법 113
4.10 디시리얼라이저 115
4.11 독립 실행 컨슈머: 컨슈머 그룹 없이 컨슈머를 사용해야 하는 이유와 방법 121
4.12 요약 123

CHAPTER 5 프로그램 내에서 코드로 카프카 관리하기 125
5.1 AdminClient 개요 126
5.2 AdminClient 사용법: 생성?? 설정?? 닫기 128
5.3 필수적인 토픽 관리 기능 130
5.4 설정 관리 134
5.5 컨슈머 그룹 관리 136
5.6 클러스터 메타데이터 140
5.7 고급 어드민 작업 141
5.8 테스트하기 145
5.9 요약 147

CHAPTER 6 카프카 내부 메커니즘 149
6.1 클러스터 멤버십 149
6.2 컨트롤러 150
6.3 복제 158
6.4 요청 처리 161
6.5 물리적 저장소 169
6.6 요약 181

CHAPTER 7 신뢰성 있는 데이터 전달 183
7.1 신뢰성 보장 184
7.2 복제 185
7.3 브로커 설정 186
7.4 신뢰성 있는 시스템에서 프로듀서 사용하기 192
7.5 신뢰성 있는 시스템에서 컨슈머 사용하기 195
7.6 시스템 신뢰성 검증하기 200
7.7 요약 204

CHAPTER 8 ‘정확히 한 번’ 의미 구조 205
8.1 멱등적 프로듀서 206
8.2 트랜잭션 210
8.3 트랜잭션 성능 225
8.4 요약 225

CHAPTER 9 데이터 파이프라인 구축하기 227
9.1 데이터 파이프라인 구축 시 고려사항 228
9.2 카프카 커넥트 vs?? 프로듀서/컨슈머 235
9.3 카프카 커넥트 235
9.4 카프카 커넥트의 대안 257
9.5 요약 258

CHAPTER 10 클러스터간 데이터 미러링하기 259
10.1 클러스터간 미러링 활용 사례 260
10.2 다중 클러스터 아키텍처 261
10.3 아파치 카프카의 미러메이커 275
10.4 기타 클러스터간 미러링 솔루션 288
10.5 요약 293

CHAPTER 11 보안 295
11.1 보안 설정 적용하기 296
11.2 보안 프로토콜 298
11.3 인증 301
11.4 암호화 324
11.5 인가 326
11.6 감사 333
11.7 주키퍼 보안 335
11.8 플랫폼 보안 338
11.9 요약 340

CHAPTER 12 카프카 운영하기 343
12.1 토픽 작업 343
12.2 컨슈머 그룹 350
12.3 동적 설정 변경 353
12.4 쓰기 작업과 읽기 작업 358
12.5 파티션 관리 364
12.6 기타 툴 374
12.7 안전하지 않은 작업 375
12.8 요약 377

CHAPTER 13 카프카 모니터링하기 379
13.1 지표 기초 379
13.2 서비스 수준 목표 383
13.3 카프카 브로커 지표 386
13.4 클라이언트 모니터링 410
13.5 랙 모니터링 417
13.6 종단 모니터링 418
13.7 요약 419

CHAPTER 14 스트림 처리 421
14.1 스트림 처리란 무엇인가? 423
14.2 스트림 처리 개념 426
14.3 스트림 처리 디자인 패턴 434
14.4 예제로 보는 카프카 스트림즈 443
14.5 카프카 스트림즈: 아키텍처 개요 452
14.6 스트림 처리 활용 사례 459
14.7 스트림 처리 프레임워크 선택하기 460
14.8 요약 462

APPENDEX A 다른 운영체제에 카프카 설치하기 465
A.1 윈도우 시스템에 설치하기 465
A.2 macOS에 설치하기 468

APPENDEX B 추가적으로 사용할 수 있는 툴 471
B.1 통합 플랫폼 471
B.2 클러스터 설치 및 관리 473
B.3 모니터링 및 데이터 탐색 474
B.4 클라이언트 라이브러리 476
B.5 스트림 처리 476

찾아보기 477
저자 소개
저자 : 그웬 샤피라 (Gwen Shapira)
컨플루언트의 제품 담당 책임자이자 아파치 카프카 프로젝트의 PMC 멤버다. 아파치 플룸(Flume)과의 통합에 공헌하였고, 아파치 스쿱(Sqoop)의 커미터이기도 하다. 15년간의 확장 가능한 데이터 아키텍처 구축 경험이 있으며, 이전에는 클라우데라(Cloudera)의 소프트웨어 엔지니어, Pythian의 선임 컨설턴트, 오라클 ACE 이사, NoCOUG의 임원을 역임하였다.

저자 : 토드 팔리노 (Todd Palino)
링크드인의 수석 엔지니어이며, 링크드인에 대규모로 구축된 아파치 카프카와 주키퍼 및 삼자 시스템의 운영 및 유지 관리를 맡고 있다. 또한 모니터링 시스템의 생성을 포함해서 아키텍처, 시스템 운영, 도구 개발 책임도 담당하고 있으며, 오픈 소스 프로젝트 버로우와 카프카 컨슈머 모니터링 도구의 개발자이기도 하다.

저자 : 라지니 시바람 (Rajini Sivaram)
컨플루언트의 수석 엔지니어로, 카프카의 클러스터 간 복제 기능과 컨플루언트 플랫폼, 컨플루언트 클라우드의 보안 기능을 설계하고 개발한다. 아파치 카프카 프로젝트의 커미터이며 PMC 멤버이기도 하다.

저자 : 크리트 페티 (Krit Petty)
링크드인에서 카프카 사이트 신뢰성 엔지니어링 조직을 담당하고 있다. 관리자가 되기 전에는 팀에서 사이트 신뢰성 엔지니어로 일하면서 카프카가 기존의 한계를 넘어 확장될 수 있도록 개선하는 작업을 했다.

역자 : 이동진
네이버에서 사내 카프카 서비스를 개발하고 있으며, 관련 프로젝트의 사내 배포판 작업 역시 담당하고 있다. 오랫동안 빅데이터 관련 작업을 해오면서 그만큼 많은 관련 프로젝트에 다양한 기여를 해 왔다. 아파치 카프카에서는 압축 관련 기능, 아파치 스파크와의 레코드 헤더 연동 기능 등을 개발했다.
저자 소개 더보기
출판사 서평 더보기
출판사 서평
카프카를 창시한 사람들이 쓰고, 카프카 개발에 참여한 한국인 개발자가 옮긴 핵심 실무서

모든 엔터프라이즈 애플리케이션은 로그 메시지, 지표, 사용자 행동 혹은 외부로 발신되는 메시지에 이르는 다양한 데이터를 생성하며, 이 데이터를 이동시키는 방법은 데이터 그 자체만큼이나 중요하다. 애플리케이션 아키텍트, 개발자에서부터 카프카 스트리밍 플랫폼이 처음인 프로덕션 엔지니어에 이르기까지, 업데이트된 이 개정증보판(카프카의 AdminClient API, 트랜잭션, 새로 추가된 보안 기능 그리고 툴 관련 변경점을 다루는 장들이 새로 추가됨)을 통해 이동하는 데이터를 다루는 방법에 대해 배울 수 있다.

카프카의 개발을 담당했던 컨플루언트와 링크드인의 개발자들이 카프카 클러스터를 프로덕션 환경에 설치하는 방법, 신뢰성 있는 이벤트 주도 마이크로서비스를 개발하는 방법, 그리고 카프카를 플랫폼으로 사용해서 규모 가변적인 스트림 처리 애플리케이션을 개발하는 방법을 설명한다. 상세한 예제를 통해 카프카의 설계 원칙, 신뢰성 보장, 핵심 API 그리고 복제 프로토콜, 컨트롤러, 저장 레이어에 이르는 아키텍처의 상세한 부분까지 배울 수 있다.

카프카 설정, 설치에 관한 모범 사례
메시지를 쓰고 읽기 위해 카프카 프로듀서와 컨슈머를 사용하는 방법
신뢰성 있게 데이터를 전달하기 위한 패턴과 활용 사례 요구 사항
카프카를 사용해서 데이터 파이프라인과 애플리케이션을 개발하는 모범 방법론
카프카를 프로덕션 환경에서 운영할 때 모니터링하고, 튜닝하고, 유지 관리하는 방법
카프카를 운영하는 데 있어서 가장 중요한 성능 지표들
스트림 처리 시스템에 있어 카프카에서 사용 가능한 전달 보장

책 속에서

카프카는 스트림 처리(14장에서 다룹니다)에 등장하는 ‘이벤트 스트림’의 개념을 닮았습니다. 스트림 처리 애플리케이션이 ‘이벤트 스트림’의 ‘현재 상태’를 조망하기 위해 ‘상태 저장소’를 필요로 하듯이, 카프카와 같은 시스템을 이해하기 위해서는 우선 ‘현재 상태’를 명료하게 정리해줄 수 있는 무엇인가가 필수적입니다. 이 책은 오랫동안 카프카를 개발해온 분들이 직접 쓴 카프카에 대한 안내서입니다. 지금까지 카프카를 발전시켜온 ‘이벤트 스트림’을 만들어온 사람들이 만든 ‘상태 저장소’라고 할 수 있겠네요. 꽤 긴 시간 동안 카프카 프로젝트에 기여해온 저 역시 이 책이 한국 독자들을 위한 좋은 ‘상태 저장소’ 역할을 할 수 있었으면 좋겠다는 생각을 하면서 이 책을 번역했습니다.
---「옮긴이 머리말」중에서

아파치 카프카는 위에서 설명한 것과 같은 문제를 해결하기 위해 고안된 메시지 발행/구독 시스템이다. ‘분산 커밋 로그’ 혹은 ‘분산 스트리밍 플랫폼’이라고 불리기도 한다. 파일시스템이나 데이터베이스 커밋 로그(commit log)는 모든 트랜잭션 기록을 지속성 있게 보존함으로써 시스템의 상태를 일관성 있게 복구할 수 있도록 고안되었다. 이와 유사하게, 카프카에 저장된 데이터는 순서를 유지한 채로 지속성 있게 보관되며 결정적(deterministic)으로 읽을 수 있다. 또한, 확장시 성능을 향상시키고 실패가 발생하더라도 데이터 사용에는 문제가 없도록 시스템 안에서 데이터를 분산시켜 저장할 수 있다.
--- p.4

카프카의 이름이 어디에서 유래했는지, 뭔가 특별한 기능을 의미하는지 묻곤 하는 사람들이 있다. 여기에 대해서는 제이 크렙스가 아래와 같이 언급한 적이 있다. 저는 카프카가 쓰기에 최적화된 시스템이기 때문에, 작가의 이름을 사용하는 것이 맞다고 생각했습니다. 저는 대학에서 많은 문학 수업을 들었고 프란츠 카프카(Franz Kafka)의 작품을 좋아했습니다. 게다가 이 이름은 오픈소스 프로젝트 이름으로서 멋지게 들렸거든요. 따라서 카프카의 이름과 기능 사이에는 별 관계가 없다고 할 수 있겠습니다.
--- p.18

2019년부터 아파치 카프카 커뮤니티는 야심찬 프로젝트를 시작했다. 바로 주키퍼 기반 컨트롤러로부터 탈피해서 래프트(raft) 기반 컨트롤러 쿼럼으로 옮겨가는 것이다. ‘KRaft’라 불리는 새로운 컨트롤러의 프리뷰 버전은 아파치 카프카 2.8에 포함되었으며, 3.3부터는 '실험적’이라는 수식어를 떼고 정식으로 프로덕션 환경에서 사용 가능한 기능이 되었다.
--- p.152

데이터 파이프라인에 있어서 카프카가 갖는 주요한 역할은 데이터 파이프라인의 다양한 단계 사이사이에 있어 매우 크고 안정적인 버퍼 역할을 해 줄 수 있다는 점이다. 이것은 실질적으로 데이터 파이프라인의 데이터를 쓰는 쪽과 읽는 쪽을 분리함으로써 하나의 원본에서 가져온 동일한 데이터를 서로 다른 적시성(timeliness)과 가용성 요구 조건을 가진 여러 대상 애플리케이션이나 시스템으로 보낼 수 있게 한다. 이렇게 데이터 파이프라인의 양쪽을 분리할 수 있다는 점은 신뢰성, 보안성, 효율성과 함께 카프카가 대부분의 데이터 파이프라인에 적합한 이유이기도 하다.
--- p.227

버전 3.4.0인 현재, 카프카는 자바 8 이후 버전만을 지원하고 있다. 하지만 보안이 중요시되는 환경이라면, 가능하면 자바 11을 사용할 것을 권한다. 본문에서는 “카프카는 기본적으로 TLSv1.2와 TLSv1.3 이후의 프로토콜만을 지원한다.”라고 되어 있지만, TLSv1.3은 자바 11에서부터 지원되기 때문이다. 카프카 2.6.0부터는 자바 11 이상 버전을 사용할 경우 자동으로 TLSv1.3이 활성화되는 것으로 기본값이 바뀌었다.
--- p.307
리뷰(0)
0 / 5.0
리뷰 작성
•
리뷰를 작성하시면 소정의 적립금을 드립니다.
•
도서의 첫번째 리뷰부터 10번째 리뷰까지는 기본 적립금의 2배를 적립해 드리며, 이후 리뷰부터는 기본 적립금이 적립됩니다.
리뷰 혜택 및 유의사항
배송방법

배송은 CJ대한통운(전화 : 1588-1255)을 이용해서 보내드리고 있습니다.

3만원 이상 구매시 무료배송 가능하며, 3만원 미만의 경우 2500원의 배송비가 발생합니다.

배송기간

15시 이전에 입금확인된 주문까지는 당일날 발송하며, 일반적인 경우 다음날 책을 받아보실 수 있습니다.

주말 또는 공휴일이 있거나 시기적으로 배송이 많은 기간인 경우는 지역에 따라 1~2일이 더 소요될 수 있습니다.

주문 후, 5일이 경과해도 책이 도착하지 않는 경우에는 웬디북 고객센터(전화 : 1800-9785)로 전화를 주시거나 고객센터 > 1:1 문의를 통해 문의글을 남겨주시면 확인 후 신속히 조치하도록 하겠습니다.

묶음배송

묶음배송 원하시는 모든 주문서의 상태가 "입금대기" 또는 "결제완료" 상태일 경우에만 처리가 가능하며, 고객센터 > 1:1 문의에서 신청 할 수 있습니다.

반품안내

변심반품의 경우 도서주문일로부터 15일이내에 반품접수가 가능하며, 반품 배송비는 고객님 부담입니다.

부분 반품의 경우, 3만원 이상 주문으로 무료배송 받았으나 일부 상품 반품으로 주문금액이 3만원이 안될 경우, 이전 주문의 배송비를 포함한 왕복 배송비를 부담하셔야 합니다.

반품절차는 고객센터의 반품교환신청 페이지에서 신청을 해주시면 웬디북 고객센터에서 지정택배사에 회수요청을 하고, 방문한 택배기사님을 통해 반품도서를 보내주시면 됩니다.

운송 중 책이 손상되지 않도록 포장을 해주신 후, 포장 겉면에 “반품도서”라고 기재해주시기 바랍니다. 회수된 상품은 요청해주신 환불방법에 따라 적립 또는 환불 진행해드립니다.

(특히 팝업북 등은 조그만 충격에도 책이 손상될 수 있으므로 주의해 주시기 바랍니다.)

• 반품이 불가한 경우
  • 1. 고객에게 책임 있는 사유로 상품(띠지 또는 더스트커버 포함)이 멸실 또는 훼손된 경우
  • 2. CD 나 소프트웨어 포함, 포장이 되어 있는 모든 상품의 포장 개봉
  • 3. 만화책 및 단시간 내에 완독이 가능한 잡지
  • 4. 상품과 함께 발송된 추가사은품이 분실되거나 훼손된 경우
  • 5. 고객의 사용 또는 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
  • 6. 명시된 반품가능 기한이 지난 경우
  • 7. 세트상품중 일부 반품
교환안내

파본도서 혹은 오배송으로인한 교환은 도서주문일로부터 15일 이내에 신청하셔야 하며 이 경우 배송비는 웬디북에서 부담합니다.

(단, 팝업북과 CD가 세트인 책은 책의 특성상 7일 이내에 해주셔야 합니다.)

교환절차는 고객센터의 반품교환신청 페이지에서 신청을 해주시면 웬디북에서 새 책을 보내드리고 새 책을 받으실 때 교환도서와 맞교환 하시면 됩니다.

교환은 동일도서에 한하며, 다른 도서로 교환은 불가합니다.

운송도중 책이 손상되지 않도록 포장을 해주신 후, 포장 겉면에 “반품도서”라고 기재해주시기 바랍니다.

(특히 팝업북 등은 조그만 충격에도 책이 손상될 수 있으므로 주의해 주시기 바랍니다.)

• 교환이 불가한 경우
  • 1. 고객에게 책임 있는 사유로 상품이 멸실 또는 훼손된 경우
  • 2. 포장 상품의 포장을 해체한 경우
  • 3. 고객의 사용 또는 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우
  • 4. 물품 수령 후, 15일이 경과한 경우
  • 5. 동일상품으로 교환하신 후, 다시 교환하시고자 할 경우 (이 경우에는 환불처리 해드립니다.)
신고하기
신고사유 선택
도서 입고 알림 신청
입고알림 신청하셨습니다.
입고시 {{tel}}로 문자 발송됩니다

바로 확인 하시겠습니까?
예

휴대폰 번호, 이메일 주소는

마이 페이지 > 회원정보수정에서 확인해 주세요.

관심 시리즈 신간 알림 신청
시리즈명:{{ series_name }}
관심 시리즈 신간 입고 알림 신청하셨습니다.
입고시 {{ tel }}로 문자 발송 또는
앱푸시, 이메일 등으로 알려드리겠습니다.

바로 확인 하시겠습니까?
예

휴대폰 번호, 이메일 주소는

마이 페이지 > 회원정보수정에서 확인해 주세요.

입고 알림 수신 방법 변경은

마이 페이지 > 알림 > 알림 설정에서 확인해 주세요.

푸시 알림이 오지 않을 시,

스마트폰 설정 > 알림 > 웬디북 앱 설정을 확인해 주세요

관심 작가 신간 알림 신청
작가명:{{ series_name }}
관심 작가 신간 입고 알림 신청하셨습니다.
입고시 {{ tel }}로 문자 발송 또는
앱푸시, 이메일 등으로 알려드리겠습니다.

바로 확인 하시겠습니까?
예

휴대폰 번호, 이메일 주소는

마이 페이지 > 회원정보수정에서 확인해 주세요.

입고 알림 수신 방법 변경은

마이 페이지 > 알림 > 알림 설정에서 확인해 주세요.

푸시 알림이 오지 않을 시,

스마트폰 설정 > 알림 > 웬디북 앱 설정을 확인해 주세요

{{title}}
{{content}}
{{title}}
{{content}}