장바구니 담기 close

장바구니에 상품을 담았습니다.

실전 카프카 개발부터 운영까지

실전 카프카 개발부터 운영까지

  • 고승범
  • |
  • 책만
  • |
  • 2021-10-29 출간
  • |
  • 512페이지
  • |
  • 180 X 235 X 25 mm
  • |
  • ISBN 9791189909345
판매가

33,000원

즉시할인가

29,700

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
29,700

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




| 이 책에서 다루는 내용 |
- 풍부한 그림으로 알기 쉽게 설명한 카프카 내부 구조와 동작 원리
- 자바와 파이썬을 이용한 카프카 클라이언트 예제 코드
- AWS와 온프레미스 환경에서의 카프카 구축과 운영
- 고통을 최소화하는 카프카 업그레이드와 유지보수 방안
- 아파치 카프카 기반 보안 구축 방법
- 스키마 레지스트리와 카프카 커넥트의 다양한 활용
- 카프카를 제대로 사용하기 위한 프로듀서/컨슈머의 내부 동작과 리밸런싱 동작 방식
- 엔터프라이즈 환경에서의 카프카 아키텍처 구성 사례
- 현업 전문가의 경험과 팁을 정리한 Q&A

| 이 책의 대상 독자 |
- 카프카를 배우고자 하는 초보자
- 카프카를 현업에 적용하고 싶은 운영자
- 카프카를 최대한 활용하기 위해 내부 동작 방식을 알고 싶은 개발자
- 카프카와 카프카 에코시스템을 이해하고 활용하고자 하는 개발자
- 데이터 표준화와 실시간 처리에 대해 고민하는 아키텍트
- 효율적으로 데이터를 수집, 처리, 분석하기를 원하는 아키텍트

| 이 책의 구성 |
1장 ‘카프카 개요’에서는 잘란도와 트위터의 카프카 도입 사례를 통해 우수 기업에서의 고민들과 카프카의 특장점을 알아보고, 국내외 카프카 현황 등을 알아봅니다. 나날이 발전하고 있는 카프카의 성장 과정을 살펴보고 사용 사례도 알아봅니다.
2장 ‘카프카 환경 구성’은 이 책의 전반적인 실습 환경을 구성하기 위한 내용으로, AWS 환경과 온프레미스 환경에서 구성하는 방법을 처음 AWS를 접하는 분들도 쉽게 따라 할 수 있도록 자세하게 설명했습니다. AWS 환경에서 카프카 설치가 완료되면 간단한 맛보기 예제로 카프카에 대해 알아봅니다.
3장 ‘카프카 기본 개념과 구조’에서는 카프카의 기본 지식을 쌓기 위해 카프카 기본 구조, 프로듀서와 컨슈머의 동작과 예제 코드를 살펴봅니다.
4장 ‘카프카의 내부 동작 원리와 구현’에서는 카프카의 주요 핵심 기능을 살펴보며, 리플리케이션과 관련된 내부 상세 동작, 컨트롤러의 역할, 로그 등을 집중적으로 다뤄봅니다.
5장 ‘프로듀서의 내부 동작 원리와 구현’에서는 프로듀서의 핵심 기능을 살펴보며, 파티셔너, 중복 없는 메시지 전송, 정확히 한 번 전송 등 프로듀서에서 안정적인 메시지 전송을 하기 위해 반드시 알아야 할 내용을 다룹니다.
6장 ‘컨슈머의 내부 동작 원리와 구현’에서는 컨슈머의 핵심 기능을 살펴봅니다. 컨슈머의 오프셋관리, 그룹 코디네이터의 동작과 파티션 전략 등 컨슈머를 안정적으로 개발하고 운영하기 위한 핵심 내용을 살펴봅니다.
7장 ‘카프카 운영과 모니터링’에서는 카프카를 안정적으로 운영하기 위한 방법과 노하우 등을 살펴봅니다. 모니터링 시스템을 직접 구축하는 실습을 통해 안정적으로 모니터링하는 방법을 알아봅니다.
8장 ‘카프카 버전 업그레이드와 확장’에서는 카프카 운영 시 필수적인 버전 업그레이드와 스케일아웃 방법을 직접 실습하면서 이해해봅니다.
9장 ‘카프카 보안’에서는 카프카에서 제공하는 보안 관련 내용을 다룹니다. 보안을 적용하는 실습 과정도 진행해봅니다.
10장 ‘스키마 레지스트리’에서는 스키마 레지스트리의 개요와 활용 방법을 알아봅니다. 스키마 레지스트리를 처음 접하는 분들을 위해 에이브로(Avro) 기반의 실습 과정과 예제 코드를 함께 다룹니다.
11장 ‘카프카 커넥트’에서는 카프카 커넥트의 기본 개념과 동작 등을 살펴봅니다. 최근 공개된 미러 메이커 2.0에 대한 간략한 소개와 함께 미러링 방법을 배워봅니다.
12장 ‘엔터프라이즈 카프카 아키텍처 구성 사례’에서는 지금까지 책에서 다룬 내용을 기반으로 엔터프라이즈 환경과 유사하게 미러 메이커는 물론이고 엘라스틱서치 및 모니터링 등을 통합 구성해 실습해봅니다.
13장 ‘카프카의 발전과 미래’에서는 최근 가장 큰 이슈인 주키퍼의 의존성을 없애려는 배경과 현재 진행 상황 그리고 앞으로의 방향에 대해 살펴봅니다.
4개 부록에서는 각각 MSK, 컨플루언트 클라우드(Confluent Cloud)에서 카프카를 구성하는 방법과 장단점을 비교했으며, 앤서블(Ansible)의 특징과 실습 환경 구성, 도커(Docker)를 이용한 카프카 설치 등 별도로 기초 과정을 추가해 처음 접하는 분들도 쉽게 이해할 수 있도록 설명했습니다. 또한 사용자들이 평소 궁금해 하는 질문들을 간단히 살펴볼 수 있도록 요약 정리했습니다.

| 이 책을 활용하기 위한 개발 환경 |
- 아파치 카프카 2.6
- 아파치 주키퍼 3.5.9
- 컨플루언트 카프카 6.1
- 자바 1.8
- 파이썬 3.7.9
- 앤서블(Ansible) 2.9.12
- 운영체제: 온프레미스(CentOS7), AWS(Amazon Linux 2)

이 책을 마무리하는 시점인 2021년 9월 말 기준으로 아파치 카프카 3.0이 릴리스되었습니다. 하지만 아파치 카프카 3.0에서 새로이 도입된, 주키퍼 의존성이 제거된 크래프트(KRaft) 알고리즘 등은 아직 운영 환경에서 사용하는 것이 권장되지 않습니다. 따라서 이 책에서 모든 실습 예제와 설명은 엔터프라이즈 환경에서 안정적으로 사용할 수 있는 아파치 카프카 2.6을 기준으로 전개합니다.

[베타리더 한마디]
MSA, EDA 기반 설계에서 카프카는 핵심 시스템으로 자리 잡았다. 수많은 컨트리뷰터의 노력으로 성숙도가 많이 올라갔고, 다양한 기업에서 활용되며 대용량 메시지 처리에서도 안정성을 입증하고 있다. 저자는 이러한 국내의 카프카 활성화와 다양한 유스 케이스에 많은 기여를 했다. 카프카 한국 사용자 그룹을 운영하고 『카프카, 데이터 플랫폼의 최강자』를 집필해 많은 카프카 입문자에게 기초 이론과 운영 노하우를 알렸다.
이번에 나온 『실전 카프카 개발부터 운영까지』는 새로운 버전의 카프카 전문 서적으로 최신 카프카의 정보를 싣고, 모든 챕터에서 실무에 적용 가능한 예제를 풍부하게 담았다. 또한 알기 쉽게 풀이하여 독자들이 카프카 관련 내용을 온전히 습득할 수 있도록 기술했다. 최근 더욱 높아진 사용자의 눈높이에 맞춰 모니터링, 보안 그리고 스키마 레지스트리, 커넥트 등과 같은 컴포넌트 활용 방법이 구성되어 있으며, 특히 버전 업그레이드, 엔터프라이즈 구성, Q&A 챕터는 저자의 운영 실무 노하우가 담겨 있어 독자의 의문점을 완벽히 해소해줄 것이다.
- 이승하 / 무신사 빌링개발 팀

카프카에 대해 공부해보고 싶은 학생, 카프카를 이용해 애플리케이션을 만들려는 개발자, 또는 카프카 클러스터를 운영하는 엔지니어 등 이 책을 손에 쥔 독자층은 매우 다양할 것입니다. 이 책은 여기에 나열된 누구에게나 유익한 책입니다. 학생분들은 카프카가 해결하려는 문제의 본질을 배울 수 있으며, 개발자분들은 프로듀서/컨슈머를 개발하면서 그간 알고 싶었던 궁금증을 해결할 실마리를 찾을 수 있을 테고, 관리자분들은 카프카를 안정적으로 운영하기 위해 필요한 지식을 얻어갈 것이라 확신합니다.
이 책이 더욱 특별했던 점은 저자의 풍부한 카프카 운영 경험에 기반한 정보가 많다는 점입니다. 저자는 실무에서 맞닥뜨릴 법한 상황들을 가정해서 그에 맞는 정보를 과하지도 부족하지도 않게 풀어내는 식으로 내용을 전개합니다. 평소에 그와 같은 문제에 대해 고민해봤던 분들에게는 단비 같은 내용일 것입니다. 제가 그랬듯, 독자 여러분들도 이런 꿀팁을 많이 얻어가시길 바랍니다.
- 남지열 / DPG미디어 머신러닝 엔지니어

실제로 카프카를 구성하는 것은 -이론상- 그리 어려운 일이 아니다. 공식 문서를 따라 주키퍼와 브로커를 구성하고, 인터넷에 떠다니는 예제를 참고해서 컨슈머/프로듀서 애플리케이션을 띄우고 나면 나름의 메시지 파이프라인을 완성할 수 있기 때문이다. 하지만 우리의 카프카를 사용하는 개발자는 여러 요구사항을 쏟아낸다. 가령 "이 메시지는 절대 유실되면 안 돼요!"부터, "메시지를 S3에 넣고 싶은데, 저희가 직접 클라이언트를 개발/운영해야 하나요?"나 "자꾸 이상한 메시지가 유입되어서 클라이언트가 죽어요!"까지! 게다가 잘 동작하던 카프카 클러스터도 때때로 말썽을 피운다. 이처럼 카프카는 이론과 실전의 차이가 하늘과 땅만큼, 어쩌면 그 이상일 수도 있다.
이 책에는 단단한 이론 사이에 자리한 저자의 실전 운영 경험이 분명하게 녹아 있다. 그렇기에 이 책을 통해 카프카를 시작하는 사람은 카프카 생태계의 지식과 운영에 대한 실마리를 얻을 수 있고, 이미 운영하고 있는 사람에겐 더욱 안정적이고 고도화된 카프카 운영을 위한 발판을 마련해줄 것이다.
- 김대호 / 우아한형제들 클라우드 플랫폼 개발 팀

카프카의 설치부터 운영까지의 모든 과정을 담고 있어서 카프카를 처음 접하는 사람이어도 하나씩 실습을 따라해보면 손쉬운 구축과 운영이 가능합입니다. 특히 클라우드 환경에서 실습을 제공하여 패러다임 변화에 맞게 빠르게 실무에 적용해볼 수 있다는 점이 좋았습니다. 카프카를 다루는 데 필요한 기본 개념부터, 실무에서 사용하는 다양한 운영 환경 구축까지 많은 실습을 통해 저자 자신이 쌓아온 풍부한 운영 경험과 핵심 기술적 노하우를 독자들과 나누고자 하는 목표가 눈에 띕니다. 카프카를 처음 시작하는 분이거나 전문가가 되고 싶어 하는 분들에게 많은 도움이 될 것입니다.
- 이상진 / 카카오 하둡 엔지니어링 파트


목차


1장 카프카 개요
1.1 잘란도와 트위터의 카프카 도입 사례
__1.1.1 유럽 최대 온라인 패션몰 잘란도의 도전 사례
__1.1.2 SNS 절대 강자 트위터의 카프카 활용 사례
1.2 국내외 카프카 이용 현황
1.3 카프카의 주요 특징
1.4 카프카의 성장
1.5 다양한 카프카의 사용 사례
1.6 정리

2장 카프카 환경 구성
2.1 이 책의 실습 환경 구성
__2.1.1 AWS 환경에서 실습 환경 구성
__2.1.2 온프레미스 환경에서 실습 환경 구성
2.2 카프카 클러스터 구성
2.3 5분 만에 카프카 맛보기
__2.3.1 카프카의 기본 구성
__2.3.2 메시지 보내고 받기
2.4 정리

3장 카프카 기본 개념과 구조
3.1 카프카 기초 다지기
__3.1.1 리플리케이션
__3.1.2 파티션
__3.1.3 세그먼트
3.2 카프카의 핵심 개념
__3.2.1 분산 시스템
__3.2.2 페이지 캐시
__3.2.3 배치 전송 처리
__3.2.4 압축 전송
__3.2.5 토픽, 파티션, 오프셋
__3.2.6 고가용성 보장
__3.2.7 주키퍼의 의존성
3.3 프로듀서의 기본 동작과 예제 맛보기
__3.3.1 프로듀서 디자인
__3.3.2 프로듀서의 주요 옵션
__3.3.3 프로듀서 예제
3.4 컨슈머의 기본 동작과 예제 맛보기
__3.4.1 컨슈머의 기본 동작
__3.4.2 컨슈머의 주요 옵션
__3.4.3 컨슈머 예제
__3.4.4 컨슈머 그룹의 이해
3.5 정리

4장 카프카의 내부 동작 원리와 구현
4.1 카프카 리플리케이션
__4.1.1 리플리케이션 동작 개요
__4.1.2 리더와 팔로워
__4.1.3 복제 유지와 커밋
__4.1.4 리더와 팔로워의 단계별 리플리케이션 동작
__4.1.5 리더에포크와 복구
4.2 컨트롤러
4.3 로그(로그 세그먼트)
__4.3.1 로그 세그먼트 삭제
__4.3.2 로그 세그먼트 컴팩션
4.4 정리

5장 프로듀서의 내부 동작 원리와 구현
5.1 파티셔너
__5.1.1 라운드 로빈 전략
__5.1.2 스티키 파티셔닝 전략
5.2 프로듀서의 배치
5.3 중복 없는 전송
5.4 정확히 한 번 전송
__5.4.1 디자인
__5.4.2 프로듀서 예제 코드
__5.4.3 단계별 동작
__5.4.4 예제 실습
5.5 정리

6장 컨슈머의 내부 동작 원리와 구현
6.1 컨슈머 오프셋 관리
6.2 그룹 코디네이터
6.3 스태틱 멤버십
6.4 컨슈머 파티션 할당 전략
__6.4.1 레인지 파티션 할당 전략
__6.4.2 라운드 로빈 파티션 할당 전략
__6.4.3 스티키 파티션 할당 전략
__6.4.4 협력적 스티키 파티션 할당 전략
6.5 정확히 한 번 컨슈머 동작
6.6 정리

7장 카프카 운영과 모니터링
7.1 안정적인 운영을 위한 주키퍼와 카프카 구성
__7.1.1 주키퍼 구성
__7.1.2 카프카 구성
7.2 모니터링 시스템 구성
__7.2.1 애플리케이션으로서 카프카의 로그 관리와 분석
__7.2.2 JMX를 이용한 카프카 메트릭 모니터링
__7.2.3 카프카 익스포터
7.3 정리

8장 카프카 버전 업그레이드와 확장
8.1 카프카 버전 업그레이드를 위한 준비
8.2 주키퍼 의존성이 있는 카프카 롤링 업그레이드
__8.2.1 최신 버전의 카프카 다운로드와 설정
__8.2.2 브로커 버전 업그레이드
__8.2.3 브로커 설정 변경
__8.2.4 업그레이드 작업 시 주의사항
8.3 카프카의 확장
__8.3.1 브로커 부하 분산
__8.3.2 분산 배치 작업 시 주의사항
8.4 정리

9장 카프카 보안
9.1 카프카 보안의 세 가지 요소
__9.1.1 암호화(SSL)
__9.1.2 인증(SASL)
__9.1.3 권한(ACL)
9.2 SSL을 이용한 카프카 암호화
__9.2.1 브로커 키스토어 생성
__9.2.2 CA 인증서 생성
__9.2.3 트러스트스토어 생성
__9.2.4 인증서 서명
__9.2.5 나머지 브로커에 대한 SSL 구성
__9.2.6 브로커 설정에 SSL 추가
__9.2.7 SSL 기반 메시지 전송
9.3 커버로스(SASL)를 이용한 카프카 인증
__9.3.1 커버로스 구성
__9.3.2 키탭을 이용한 인증
__9.3.3 브로커 커버로스 설정
__9.3.4 클라이언트 커버로스 설정
9.4 ACL을 이용한 카프카 권한 설정
__9.4.1 브로커 권한 설정
__9.4.2 유저별 권한 설정
9.5 정리

10장 스키마 레지스트리
10.1 스키마의 개념과 유용성
10.2 카프카와 스키마 레지스트리
__10.2.1 스키마 레지스트리 개요
__10.2.2 스키마 레지스트리의 에이브로 지원
__10.2.3 스키마 레지스트리 설치
10.3 스키마 레지스트리 실습
__10.3.1 스키마 레지스트리와 클라이언트 동작
__10.3.2 파이썬을 이용한 스키마 레지스트리 활용
10.4 스키마 레지스트리 호환성
__10.4.1 BACKWARD 호환성
__10.4.2 FORWARD 호환성
__10.4.3 FULL 호환성
__10.4.4 스키마 레지스트리 호환성 실습
10.5 정리

11장 카프카 커넥트
11.1 카프카 커넥트의 핵심 개념
11.2 카프카 커넥트의 내부 동작
11.3 단독 모드 카프카 커넥트
__11.3.1 파일 소스 커넥터 실행
__11.3.2 파일 싱크 커넥터 실행
11.4 분산 모드 카프카 커넥트
11.5 커넥터 기반의 미러 메이커 2.0
11.6 정리

12장 엔터프라이즈 카프카 아키텍처 구성 사례
12.1 엔터프라이즈용 카프카 아키텍처의 개요
12.2 엔터프라이즈용 카프카의 환경 구성
12.3 엔터프라이즈용 카프카의 운영 실습
__12.3.1 CMAK를 이용한 토픽 생성
__12.3.2 카프카 커넥트 설정
__12.3.3 모니터링 환경 구성
__12.3.4 메시지 전송과 확인
12.4 정리

13장 카프카의 발전과 미래
13.1 주키퍼 없는 카프카의 미래
__13.1.1 주키퍼 사용에 따른 제약사항
__13.1.2 주키퍼 의존성을 제거한 카프카 업그레이드
13.2 새로운 합의 프로토콜
13.3 최적화된 컨트롤러 노드 구성
13.4 카프카의 미래가 담긴 KIP
13.5 정리

부록 A MSK와 컨플루언트 클라우드
__A.1 MSK
__A.2 컨플루언트 클라우드
__A.3 MSK와 컨플루언트 클라우드 비교

부록 B 앤서블 맛보기
__B.1 앤서블의 특징
__B.2 실습 환경 구성
__B.3 앤서블 기능 살펴보기

부록 C 도커를 이용한 카프카 설치
__C.1 도커 기반의 카프카 구성
__C.2 메시지 보내고 받기

부록 D 한눈에 보는 Q&A
__D.1 주키퍼 관련
__D.2 카프카 관련
__D.3 프로듀서 관련
__D.4 컨슈머 관련

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 : 070-4821-5101
교환/반품주소
  • 부산광역시 부산진구 중앙대로 856 303호 / (주)스터디채널 / 전화 : 070-4821-5101
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.