본문내용 바로가기
MD의선택 무료배송 소득공제

Kafka Streams in Action 카프카 스트림즈 API로 만드는 실시간 애플리케이션

윌리엄 베젝 지음 | 최중연, 이재익 옮김 | 에이콘출판 | 2019년 07월 12일 출간
  • 정가 : 30,000원
    판매가 : 27,000 [10%↓ 3,000원 할인]
  • 통합포인트 :
    [기본적립] 1,500원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 3만원 이상 구매 시 2~4% 추가적립
  • 추가혜택 : 카드/포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(25일,목) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내
상품상세정보
ISBN 9791161753263(1161753265)
쪽수 360쪽
크기 187 * 235 * 27 mm /843g 판형알림
이 책의 원서/번역서 Kafka Streams in Action/Bejeck, William P., Jr.

책소개

이 책이 속한 분야

스트림 처리를 원하는 모든 개발자를 위한 책이다. 카프카 스트림즈 API로 스트림 처리 프로그램을 빠르고 쉽게 만드는 것부터 시작해서 프로세서 API로 저수준 제어가 가능한 스트림 처리 프로그램도 만들어 본다. 카프카 커넥트를 사용해 기존 데이터소스를 얼마나 쉽게 스트림에 연결할 수 있는지도 살펴본다. 스트림 처리 상태를 저장하는 KTable API를 살펴보고 모니터링, 디버깅 같은 프로덕션 적용 시 고려해야 하는 실질적인 문제도 살펴본다. 마지막으로 프로그래밍 코드를 이해하지 못하는 분석가도 KSQL을 이용해서 실시간 분석을 할 수 있는 방법을 소개한다.

저자소개

저자 : 윌리엄 베젝

카프카 컨트리뷰터이며, 컨플루언트(Confluent)의 카프카 스트림즈 팀에서 근무한다. 소프트웨어 개발 분야에서 15년 이상 근무했으며, 8년간 백엔드, 특히 다운스트림 고객의 데이터 흐름을 향상하기 위해 카프카를 사용하는 데이터 처리 ingestion 팀에서 대용량 데이터 처리에 초점을 맞춰왔다. 『Getting Started with Google Guava』(Packt, 2013)의 저자이며, ‘Random Thoughts on Coding’(http://codingjunkie.net)의 블로거다.

역자 : 최중연

네이버에서 모니터링 서비스를 개발하고 있으며, 메트릭을 저장하고 처리하기 위해 카프카를 사용하고 있다. 실시간 분석과 이상 탐지에 대한 관심으로 카프카 스트림즈를 접했고 번역하게 됐다. 최근에는 쿠버네티스(Kubernetes) 환경에서 카프카 클러스터 서비스를 준비하고 있다.

역자 : 이재익

네이버에서 사내 로그 시스템과 일래스틱서치 클러스터 서비스를 개발 및 운영하고 있다. 최근에는 분산 시스템 디버깅과 머신 러닝을 데브옵스(DevOps) 시스템에 활용하는 방법에 관심이 많다. 여가에는 가족들과 캠핑을 하거나 독서를 즐긴다. 공역서로는 에이콘출판사에서 펴낸 『ElasticSearch in Action』(2016), 『일래스틱서치 모니터링』(2017), 『키바나 5.0 배우기』(2017), 『일래스틱서치 쿡북 3/e』(2019)이 있다.

작가의 말

소프트웨어 개발자로서 일하는 동안 흥미로운 프로젝트에서 현재 소프트웨어로 작업할 수 있었던 것은 행운이었다. 처음에는 클라이언트와 백엔드 작업을 함께 시작했다. 하지만 내가 백엔드 작업을 전적으로 좋아한다는 사실을 깨달은 다음에는 백엔드를 내 홈으로 만들었다. 그리고 시간이 지날수록 하둡(pre-1.0 릴리스)에서 시작해 분산 시스템 작업으로 전환했다. 새로운 프로젝트로 넘어가자 카프카를 사용할 기회가 있었다. 카프카에 대한 첫 인상은 매우 간단하게 작업할 수 있고, 굉장한 파워와 유연성을 갖고 있다는 점이었다. 나는 프로젝트 데이터를 전달하기 위해 카프카를 통합하는 방법을 점점 더 많이 찾아냈다. 프로듀서와 컨슈머 작성은 간단했고, 카프카는 시스템의 품질을 향상했다.
그런 다음 카프카 스트림즈에 대해 배웠다. 카프카에서 데이터를 읽기 위해 다른 처리 클러스터가 필요한 이유는 무엇일까? API를 살펴봤을 때 스트림 처리에 필요한 모든 항목(조인, 값 매핑, 리듀스 및 group-by)을 발견했다. 더 중요한 것은 상태를 추가하는 접근법이 내가 그 시점까지 작업한 모든 것보다 우월하다는 점이다.
나는 사람들에게 개념을 간단하고 이해하기 쉬운 방식으로 설명하는 데 열정이 있다. 카프카 스트림즈에 관해 글을 쓸 기회가 왔을 때, 힘들기는 해도 가치 있는 일이라는 사실을 알았다. 카프카 스트림즈가 스트림 처리를 수행하는 간단하지만 우하하고 강력한 방법임을 보여주기 위해 열심히 노력했다.

목차

1부. 카프카 스트림즈 시작하기

1장. 카프카 스트림즈에 오신 것을 환영합니다
1.1 빅 데이터로의 전환, 그로 인한 프로그래밍 환경의 변화
1.1.1 빅 데이터의 기원
1.1.2 맵리듀스의 중요 개념
1.1.3 배치 처리로는 충분하지 않다
1.2 스트림 처리 소개
1.2.1 스트림 처리를 사용해야 할 경우와 사용하지 말아야 할 경우
1.3 구매 거래 처리
1.3.1 스트림 처리 옵션 따져보기
1.3.2 요구사항을 그래프로 분해
1.4 구매 트랜잭션에 대한 관점 변경
1.4.1 소스 노드
1.4.2 신용카드 마스킹 노드
1.4.3 패턴 노드
1.4.4 보상 노드
1.4.5 스토리지 노드
1.5 처리 노드의 그래프인 카프카 스트림즈
1.6 카프카 스트림즈를 구매 거래 흐름에 적용하기
1.6.1 소스 정의하기
1.6.2 첫 번째 프로세서: 신용카드번호 마스킹
1.6.3 두 번째 프로세서: 구매 패턴
1.6.4 세 번째 프로세서: 고객 보상
1.6.5 네 번째 프로세서: 구매 레코드 기록하기
요약

2장. 빠르게 살펴보는 카프카
2.1 데이터 문제
2.2 카프카를 사용해 데이터 다루기
2.2.1 지마트의 오리지널 데이터 플랫폼
2.2.2 카프카 판매 거래 데이터 허브
2.3 카프카 아키텍처
2.3.1 카프카는 메시지 브로커다
2.3.2 카프카는 로그다
2.3.3 카프카에서 로그가 동작하는 방식
2.3.4 카프카와 파티션
2.3.5 키에 의한 그룹 데이터 분할
2.3.6 사용자 정의 파티셔너 작성하기
2.3.7 사용자 정의 파티셔너 지정하기
2.3.8 정확한 파티션 수 정하기
2.3.9 분산 로그
2.3.10 주키퍼: 리더, 팔로워, 복제
2.3.11 아파치 주키퍼
2.3.12 컨트롤러 선출
2.3.13 복제
2.3.14 컨트롤러의 책임
2.3.15 로그 관리
2.3.16 로그 삭제
2.3.17 로그 압축
2.4 프로듀서로 메시지 보내기
2.4.1 프로듀서 속성
2.4.2 파티션과 타임스탬프 지정
2.4.3 파티션 지정
2.4.4 카프카의 타임스탬프
2.5 컨슈머로 메시지 읽기
2.5.1 오프셋 관리
2.5.2 자동 오프셋 커밋
2.5.3 수동 오프셋 커밋
2.5.4 컨슈머 생성하기
2.5.5 컨슈머와 파티션
2.5.6 리밸런싱
2.5.7 더 세분화된 컨슈머 할당
2.5.8 컨슈머 예제
2.6 카프카 설치 및 실행
2.6.1 카프카 로컬 설정
2.6.2 카프카 실행하기
2.6.3 첫 번째 메시지 보내기
요약

2부. 카프카 스트림즈 개발

3장. 카프카 스트림즈 개발
3.1 스트림 프로세서 API
3.2 카프카 스트림즈를 위한 Hello World
3.2.1 Yelling App의 토폴로지 생성하기
3.2.2 카프카 스트림즈 설정
3.2.3 Serde 생성
3.3 사용자 데이터로 작업하기
3.3.1 토폴로지 구성하기
3.3.2 사용자 정의 Serde 생성하기
3.4 대화형 개발
3.5 다음 단계
3.5.1 새로운 요구사항
3.5.2 카프카 외부에 레코드 기록하기
요약

4장. 스트림과 상태
4.1 이벤트
4.1.1 스트림은 상태가 필요하다
4.2 카프카 스트림즈에 상태를 가진 작업 적용하기
4.2.1 transformValues 프로세서
4.2.2 고객 보상의 상태 유지
4.2.3 값 변환기 초기화
4.2.4 상태를 사용해 Purchase 객체를 RewardAccumulator에 매핑하기
4.2.5 보상 프로세서 업데이트
4.3 조회와 이전에 본 데이터에 상태 저장소 사용하기
4.3.1 데이터 지역성
4.3.2 실패 복구와 내결함성
4.3.3 카프카 스트림즈에서 상태 저장소 사용하기
4.3.4 추가적인 키/값 저장소 공급자
4.3.5 상태 저장소의 내결함성
4.3.6 변경로그 토픽 설정하기
4.4 추가적인 통찰을 위해 스트림 조인하기
4.4.1 데이터 설정
4.4.2 조인을 수행하기 위해 고객 ID를 포함한 키 생성하기
4.4.3 조인 구성하기
4.4.4 그 밖의 조인 옵션
4.5 카프카 스트림즈의 타임스탬프
4.5.1 제공된 TimestampExtractor 구현
4.5.2 WallclockTimestampExtractor
4.5.3 사용자 정의 TimestampExtractor
4.5.4 TimestampExtractor 명시하기
요약

5장. KTable API
5.1 스트림과 테이블의 관계
5.1.1 레코드 스트림
5.1.2 레코드 및 변경로그 업데이트
5.1.3 이벤트 스트림과 업데이트 스트림 비교
5.2 레코드 업데이트와 KTable 구성
5.2.1 캐시 버퍼 크기 설정하기
5.2.2 커밋 주기 설정하기
5.3 집계와 윈도 작업
5.3.1 업계별 거래량 집계
5.3.2 윈도 연산
5.3.3 KStream과 KTable 조인하기
5.3.4 GlobalKTable
5.3.5 쿼리 가능한 상태
요약

6장. 프로세서 API
6.1 더 높은 수준의 추상화와 더 많은 제어 사이의 트레이드 오프
6.2 토폴로지를 만들기 위해 소스, 프로세서, 싱크와 함께 작업하기
6.2.1 소스 노드 추가
6.2.2 프로세서 노드 추가
6.2.3 싱크 노드 추가
6.3 주식 분석 프로세서로 프로세서 API 자세히 살펴보기
6.3.1 주식 성과 프로세서 애플리케이션
6.3.2 process() 메소드
6.3.3 펑추에이터 실행
6.4 코그룹 프로세서
6.4.1 코그룹 프로세서 작성
6.5 프로세서 API와 카프카 스트림즈 API 통합하기
요약

3부. 카프카 스트림즈 관리

7장. 모니터링과 성능
7.1 기본적인 카프카 모니터링
7.1.1 컨슈머와 프로듀서 성능 측정
7.1.2 컨슈머 지연 확인하기
7.1.3 프로듀서와 컨슈머 가로채기
7.2 애플리케이션 메트릭
7.2.1 메트릭 구성
7.2.2 수집한 메트릭 확인 방법
7.2.3 JMX 사용
7.2.4 메트릭 조회
7.3 추가적인 카프카 스트림즈 디버깅 기술
7.3.1 애플리케이션 구조 조회
7.3.2 다양한 애플리케이션 상태 알림 받기
7.3.3 StateListener 사용
7.3.4 상태 리스토어 리스너
7.3.5 uncaught 예외 핸들러
요약

8장. 카프카 스트림즈 애플리케이션 테스트
8.1 토폴로지 테스트
8.1.1 테스트 만들기
8.1.2 토폴로지에서 상태 저장소 테스트
8.1.3 프로세서와 트랜스포머 테스트
8.2 통합 테스트
8.2.1 통합 테스트 구축
요약


4부. 카프카 스트림즈 고급 개념

9장. 카프카 스트림즈 고급 애플리케이션

9.1 카프카와 다른 데이터 소스 통합
9.1.1 카프카 커넥트로 데이터 통합하기
9.1.2 카프카 커넥트 셋업
9.1.3 데이터 변환
9.2 데이터베이스 제약 걷어내기
9.2.1 대화식 쿼리 작동 방법
9.2.2 분산 상태 저장소
9.2.3 분산 상태 저장소 설정 및 검색
9.2.4 대화식 쿼리 작성
9.2.5 쿼리 서버의 내부
9.3 KSQL
9.3.1 KSQL 스트림과 테이블
9.3.2 KSQL 구조
9.3.3 KSQL 설치 및 실행
9.3.4 KSQL 스트림 만들기
9.3.5 KSQL 쿼리 작성
9.3.6 KSQL 테이블 생성
9.3.7 KSQL 설정
요약

부록 A. 추가적인 구성 정보
__시작 시 리밸런싱 수 제한하기
__브로커 중단에 대한 회복력
__역직렬화 오류 처리
__애플리케이션 스케일업
__록스DB 설정
__미리 토픽 리파티셔닝 만들기
__내부 토픽 설정
__카프카 스트리밍 애플리케이션 재설정
__로컬 상태 클린업

부록 B. 정확히 한 번의 시맨틱

출판사 서평

★ 이 책에서 다루는 내용 ★

■KStream API 사용하기
■데이터 필터링, 변환 및 분할
■프로세서 API로 작업
■외부 시스템 통합

★ 이 책의 대상 독자 ★

스트림 처리를 원하는 모든 개발자를 대상으로 하는 책이다. 분산 프로그래밍 지식과 카프카에 대한 지식은 필수는 아니지만 유용할 것이다. 숙련된 카프카 개발자뿐만 아니라 새 카프카 개발자도 카프카 스트림즈를 사용해 매력적인 스트림 처리 애플리케이션을 개발하는 방법을 배우게 될 것이다.

★ 이 책의 구성 ★

이 책은 9개의 장에 걸쳐 4개의... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서번역서

안내

이 분야의 베스트

  • 길벗R&D
    18,900원
  • 길벗R&D
    12,600원
  • 윤인성
    16,200원
  • 박응용
    16,920원
  • 길벗알앤디(강윤석, 김용갑,...
    19,800원
더보기+

이 분야의 신간

  • 박응용
    16,920원
  • 윤인성
    16,200원
  • 커넥팅랩
    16,200원
  • 세바스찬 라시카
    29,700원
  • 이차웅
    21,600원
더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품