메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

실전 아파치 카프카

애플리케이션 개발부터 파이프라인, 사물인터넷 데이터 허브 구축까지

한빛미디어

번역서

절판

  • 저자 : 사사키 도루 , 이와사키 마사다케 , 사루타 고스케 , 쓰즈키 마사요시 , 요시다 고요
  • 번역 : 정인식
  • 출간 : 2020-02-24
  • 페이지 : 388 쪽
  • ISBN : 9791162242803
  • 물류코드 :10280
  • 초급 초중급 중급 중고급 고급
4.5점 (31명)
좋아요 : 4

도입부터 활용까지 한 권으로 끝내는 카프카 실전 가이드

 

이 책은 카프카를 처음 다루는 개발자를 위한 입문서다. 카프카 도입에 필요한 기초 개념부터 확장성과 고가용성 특징을 활용해 시스템을 구현하는 방법을 설명한다. 1부에서는 카프카 탄생 배경과 구조, 기본 동작 방법을 설명해 카프카를 전반적으로 이해할 수 있도록 했다. 2부에서는 카프카 적용 사례로 동작 원리를 확인할 수 있다. 카프카의 단순한 개념에 비해 활용 방법이 그려지지 않는 독자를 위해 다양한 그림과 표로 이해를 돕는다. 

 

 

주요 내용

  • 카프카 탄생 배경, 구조, 기본 동작
  • 메시지 송수신 구조, 시스템 구성, 분산 메시징 구조
  • 컨플루언트 플랫폼을 이용한 클러스터 구축
  • 자바 API를 활용한 애플리케이션 개발
  • 데이터 허브 아키텍처, Kafka Streams를 이용한 스트림 처리, 스파크 연동 방법
  • 사물인터넷 적용 사례

 

사사키 도루 저자

사사키 도루

 

NTT데이터 근무. 대규모 클러스터에서 스파크 성능 검증에 참여했다. OSS 커뮤니티 개발자로 하둡, 스파크, 카프카의 컨트리뷰터로 활약해왔다. 

이와사키 마사다케 저자

이와사키 마사다케

NTT데이터 근무. 카프카를 비롯한 오픈소스 소프트웨어의 여러 가지 기술을 다루고 있다. NO RICE, NO LIFE. 국수도 좋아한다.

사루타 고스케 저자

사루타 고스케

NTT데이터 근무. 2009년부터 하둡을 비롯한 OSS의 병렬 분산 처리 기반 구축 지원 및 기술 개발 등을 담당했고, 2014년부터는 하둡을 보완하는 제품 후보로 스파크 개발에 참여하기 시작했다. 기술 조사와 프로젝트 등을 통해 확인된 스파크의 과제를 해결하고 커뮤니티에 피드백 해왔다. 2015년 6월 일본인 최초로 스파크 커미터가 됐다.

 

쓰즈키 마사요시 저자

쓰즈키 마사요시

 

NTT데이터 근무. CRM, SaaS, 클라우드 서비스를 개발하고 관리했으며 지금은 병렬 분산 처리 시스템 관련 업무를 하고 있다. 국내외 고객에게 하둡과 스파크 등의 OSS 제품을 사용하기 위한 비전을 전하는 일을 하고 있으며 운영체제로는 윈도우를 좋아한다. 스파크의 윈도우 기반 패치도 많이 작성하고 있으나 실제 업무에서 그다지 혜택은 없다. 

요시다 고요 저자

요시다 고요

NTT데이터 근무. 하둡, 스파크, 카프카를 비롯 병렬 분산 처리 OSS를 중심으로 대량 데이터 처리 기반 시스템 개발 및 컨설팅을 담당하고 있다. 카프카는 2012년 구 버전에서 평가한 적이 있으나 최근 엄청난 진화에 놀라고 있다.

 

정인식 역자

정인식

숭실대학교에서 전자계산학을 전공하고 현대정보기술 eBiz 기술팀에서 웹 애플리케이션 개발 및 B2B Marketplace 솔루션을 연구했다. 그 후 이동통신 단말기 분야로 옮겨 휴대폰 부가서비스 개발 업무를 담당했다.

 

일본에서는 키스코 모바일사업부 팀장으로 교세라의 북미향 휴대폰 개발에 참여했으며, 퇴직하고서는 일본 주요 이동통신사에서 업무 프로세스 개선을 위한 IT 컨설팅과 데이터 분석 관련 툴을 개발하고 있다. 옮긴 책으로는 『아파치 카프카』, 『배워서 바로 쓰는 스프링 부트 2』(이상 한빛미디어), 『자바 마스터 북: 기초에서 실무 응용까지』(제이펍)을 비롯해 10여 권이 있다.

 

 

1부 도입 아파치 카프카 


1장 아파치 카프카 개요

1.1 이 장의 내용

1.2 아파치 카프카

1.3 카프카 탄생 배경

1.4 카프카로 링크드인 요구 사항 실현하기

1.5 카프카의 확산

1.6 정리

 

2장 카프카 기초

2.1 이 장의 내용

2.2 메시지 송수신 기본

2.3 시스템 구성

2.4 분산 메시징을 위한 구조

2.5 데이터의 견고성을 높이는 복제 구조

2.6 정리

 

3장 카프카 설치

3.1 이 장의 내용

3.2 카프카 클러스터 환경 구축하기

3.3 카프카 구축

3.4 카프카 실행과 동작 확인

3.5 정리

 

4장 자바 API를 사용하여 애플리케이션 만들기

4.1 이 장의 내용

4.2 애플리케이션 개발 환경 준비

4.3 프로듀서 애플리케이션 개발

4.4 프로듀서 애플리케이션의 핵심 부분

4.5 컨슈머 애플리케이션 개발

4.6 컨슈머 애플리케이션 핵심 부분

4.7 정리

 

 

Part 2 실전 아파치 카프카


5장 카프카 사례

5.1 이 장의 내용

5.2 카프카 적용 사례

5.3 데이터 허브

5.4 로그 수집

5.5 웹 활동 분석

5.6 사물인터넷

5.7 이벤트 소싱

5.8 카프카 활용 사례

5.9 정리

 

6장 카프카를 이용한 데이터 파이프라인 구축에 필요한 사전 지식

6.1 이 장의 내용

6.2 카프카를 이용한 데이터 파이프라인의 구성 요소

6.3 데이터 파이프라인에서 취급하는 데이터

6.4 정리

 

7장 카프카와 Kafka Connect로 데이터 허브 구축하기

7.1 이 장의 내용

7.2 Kafka Connect란

7.3 데이터 허브 아키텍처 응용 사례

7.4 환경 구성

7.5 전자상거래 사이트에 실제 매장의 재고 정보를 표시하기

7.6 월별 판매 예측하기

7.7 데이터 관리와 스키마 에볼루션

7.8 정리

 

8장 스트림 처리 기본

8.1 이 장의 내용

8.2 Kafka Streams

8.3 컴퓨터 시스템의 매트릭스

8.4 카프카 브로커의 매트릭스를 시각화하기

8.5 예제 프로그램 살펴보기

8.6 윈도 처리

8.7 Processor API

8.8 매트릭스 종류

8.9 Kafka Streams의 장점

8.10 정리

 

9장 Structured Streaming에 의한 스트림 처리

9.1 이 장의 내용

9.2 아파치 스파크와 Structured Streaming 

9.3 예제 애플리케이션 동작 환경

9.4 아파치 스파크 설정

9.5 트윗 프로듀서

9.6 카프카와 Structured Streaming 연계

9.7 정리

 

10장 카프카로 구축하는 사물인터넷 데이터 허브

10.1 이 장의 내용

10.2 사물인터넷에 필요한 시스템 특성과 카프카

10.3 센서 데이터용 데이터 허브 설계

10.4 센서 데이터용 데이터 허브 구축

10.5 실제 센서 데이터의 투입과 데이터 활용

10.6 고도의 데이터 연계 기반을 실현할 경우의 문제와 해결 방안

10.7 정리

 

11장 카프카 능숙하게 사용하기

11.1 이 장의 내용

11.2 컨슈머 그룹.

11.3 오프셋 커밋

11.4 파티션 재배치

11.5 파티션 수 결정에 있어 참고 사항

11.6 복제본 수 결정에 참고 사항

11.7 정리

 

부록

A 커뮤니티 버전 카프카에서 현재 개발 중인 최신 버전 이용하기

B KSQL을 이용한 스트림 처리

C 이벤트 타임과 워터마크를 이용한 스트림 처리

실무에서 카프카를 어떻게 활용하는지 노하우를 알고 싶은 독자를 대상으로 아프치 카프카 도입부터 활용까지 살펴볼 수 있는 실무 중심 활용서다. 링크드인에서 카프카가 탄생한 배경을 시작으로 카프카 설치, 데이터 허브 역할과 스트리밍 처리, 사물인터넷 관련 시스템에서 카프카 활용을 설명하고 있어 이 책을 읽는 독자는 카프카로 할 수 있는 데이터 분산 처리에 대한 인사이트를 얻을 수 있다

 

1장과 2장은 카프카 탄생 배경과 개요, 확장형 아키텍처를 설명하고 메시지 송수신 구조, 시스템 구성, 분산 메시징 구조, 부분 장애가 발생했을 때 데이터가 즉시 손실되지 않도록 하기 위한 복제 메커니즘을 설명한다.

3장은 컨플루언트 플랫폼을 이용한 카프카 클러스터의 구축 방법을 소개한다. 

4장은 구성한 카프카 환경에서 자바 API를 이용해 애플리케이션을 작성하고 실행하는 흐름을 설명한다. 메이븐으로 프로젝트 작성부터 메시지 송수신, 데이터 형, 빌드 및 애플리케이션 실

행까지 데이터 입출력을 실습한다.

5장은 카프카 특징을 바탕으로 대표적인 사례를 살펴보면서 카프카 활용 포인트를 이해한다. 

6장부터 10장까지는 전자상거래, 트위터, 사물인터넷을 사례로 카프카 동작 원리를 이해할 수 있다. 데이터 허브 아키텍처, 카프카 커넥트, 카프카 스트림, 플루언트, 스파크 연동 등 카프카 생태계를 다양하게 조합하여 실무에 활용하는 방법을 알아본다. 

11장과 부록에서는 지금까지 소개하지 못한 카프카 활용과 팁을 소개한다. 

 

 

추천사

 

이 책은 카프카 API 사용법뿐만 아니라 카프카 컴포넌트를 활용하여 단대단에서의 문제 해결 방법을 설명한다는 점에서 독특하다. 저자의 풍부한 경험이 이 책의 가치를 높인다.

준 라오, Apache Kafka Project Management Committee 회장

 

입문자에게 개념 설명과 간단한 예제로 가이드하고, 중고급자에게 여러 실무 환경에서 활용할 수 있는 방안을 제시합니다. 카프카를 단순히 공부 차원을 넘어 실무에 적용하고 싶은 분에게 추천합니다.

최성훈, 데이터다이나믹스

 

카프카를 구축하려는 조직이나 개인에게 보석 같은 실무 지침서가 등장했습니다. 데이터 허브, 웹 활동 분석, IoT 등 카프카를 도입하는 데 필요한 거의 모든 경우의 수를 다룹니다. 실무에서 웹 활동 로그를 실시간으로 카프카와 연동하기 위해 고민 중이었는데 이 책으로 구축 속도가 단축됐습니다. 실무와 직결된다는 점에서 이 책의 진가를 확인할 수 있습니다.

허민, 학생

 

카프카를 실무에서 사용하고 있는 조직과 개인에게 보다 깊은 이해도와 활용성에 대한 인사이

트를 주는 책입니다. 입문자에게는 진입장벽을 낮추는 친절한 설명과 예제로 흥미를 불러일으

키며, 다양한 응용 예제를 통해 기술의 성장 방향과 트렌드를 알 수 있습니다. 중급자에게는 Kafka Connect, Kafka Streams, 스파크와 연계한 상세한 설명과 예제로 실무에서 어떻게 사용해야 할지 모르는 상황에 적용할 수 있도록 안내합니다. 

이상노, 라인플러스

 

카프카의 핵심 개념, 애플리케이션 구현 그리고 운영까지 조화롭게 담고 있는 책입니다. 카프

카 클러스터를 구축하고 프로듀서와 컨슈머를 구현해 데이터 파이프라인을 구성해보는 것은

이 책의 가장 큰 장점이라고 생각합니다. 실무에서 카프카를 활용하고 운영하는 데 많은 도움

이 될 것 같습니다. 카프카를 사용한다면 읽어보길 추천합니다.

이동규, 네이버

 

카프카 핵심 기능을 설명하고 활용 사례와 더불어 실제 도입 후 운영 시에만 알 수 있는 노하우가 담겨 있습니다. 코드 베이스의 예제와 데이터 수집이 가능하도록 라즈베리파이와 트위터를 활용하기도 하여 실습 환경을 구성하기 쉽습니다. 

온수영, 백엔드 개발자

 

카프카를 어떠한 맥락으로 사용하게 되었는지, 카프카만의 특징은 무엇인지, 카프카로 무엇을 할 수 있는지, 카프카를 어떻게 이용하는지 탄탄한 책의 구성과 한눈에 이해되는 그림, 실제 활용 사례, 예시로 카프카에 대한 내용을 정리할 수 있었습니다. 이 책으로 처음 카프카를 접하는 분들은 책의 내용을 기반으로 심화 자료를 살펴보거나 실제 프로젝트를 진행해볼 수 있을 것입니다.

김시현, 학생

한빛미디어의 “실전 아파치 카프카”를 리뷰합니다.

 

01.png

 

작년에 빅데이터 IoT 시스템 구축 프로젝트에 참여하면서, 그동안 하둡과 카프카, 스파크에 대해서는 가벼운 지식만이 있었을 뿐이었고, 당시 클라이언트 업무를 하고 있어서 프로젝트를 참여한 김에 학습을 하고 세미나를 진행한 적이 있었습니다. 대학원 전공도 웹서버 클러스터링이어서 어떤 분야보다 관심이 많이 가지게 되었습니다. 이번에 “실전 아파치 카프카” 리뷰를 하게 되어 도서를 리뷰함과 동시에 다시 한번 학습 내용을 정리할 수 있는 좋은 기회가 되었습니다.

 

결론적으로 말씀 드리면 하고자 “실전 아파치 카프카”는 굉장히 만족스러운 도서 내용을 가지고있습니다. 쿠버네티스나 도커, 하둡과 같은 주제를 다루는 도서들은 많은데, 아쉬웠던 부분은 인프라 측면 위주로 다루는 경우가 많았습니다. “실전 아파치 카프카”는 Kafka 자체 뿐만 아니라 Kafka와 연동되는 시스템 만드는 것을 실습하고 Kafka를 실제 외부 시스템들과 연동하여 구축하는 것에 도서 후반기에 많은 비중으로 다루고 있습니다. 가령 카프카를 주제로 한다면 Producer와 Consumer 뿐만 아니라 connector와 stream에 대해서도 다뤄야 하기에 카프카 기본 컴포넌트들에 대해서 얼마나 충실하게 다루고 있는지 살펴봐야 하고, 실제 IoT나 빅데이터 시스템에 응용할 있는지를 살펴봐야 하는데, 본 도서는 카프카 자체에 대한 내용의 충실성 뿐만 아니라 5장부터 “Part 2 실전 아파치 카프가”라는 주제를 가지고 11장까지 카프라를 이용한 인프라 구성과 응용을 상세히 다루고 있어서 높은 점수를 주고 싶습니다.

 

 

 

Kafka publish-subscribe

 

 

 

 

 

카프카를 다루는 도서나 블로그에서 도입으로 나오는 내용이 탄생 배경으로 LinkedIn 개발자에 의해서 개발되었고 LinkedIn 로그 처리와 웹사이트 활동 추적을 목적으로 적용되어 사용되었다는 내용입니다. 분산 메시징 시스템으로써 2011년에 오픈소스로 공개되었고, 대용량의 메시지 처리에서도, 특히 실시간 로그 처리에 특화된 아키텍처 설계를 기반으로 합니다.

 

 

03.png

 

근래의 사물인터넷 시스템이나 빅데이터 시스템과 같이 메시지의 높은 동시성으로 인해 대량의 데이터를 높은 처리량과 실시간으로 처리하기 위해 만들어졌기 때문에 기존 RabbitMQ나 ActiveMQ와 같은 메시징 시스템들보다 우수하다고 합니다.

 

04.png

 

그리고 실제로 많은 대용량 메세지를 다루고 있는 시스템에서 카프카를 많이 사용하는 것으로 알려져 있습니다. 이러한 이유로로 채용 시장에서도 하둡이나 카프카, 스파크와 같이 대용량 메세지 처리 시스템에 대한 유경험자에 대한 구애가 많은 것으로 보입니다.

 

05.png

 

Kafka는 발행-구독(publish-subscribe) 모델을 기반입니다. RabbitMQ와 같은 기존 MQTT Broker에서의 Pub(발행인)과 Sub(구독자) 간의 메세징 중계 모델과유사하고 따라서 MQTT Broker의 producer, consumer, broker와 같은 구성입니다. 다만 10장에서 언급되는 내용으로 IoT 사물인터넷의 경우 MQTT 메세징을 많이 사용하는데, MQTT 브로커가 kafka에서는 존재하지 않기 때문에 IoT 시스템을 구성한다면 MQTT 브로커와 연동해야 겠지요.

 

06.png

 

 

KafkaProducer

카프카의 브로커는 토픽(topic)으로 메시지를 관리합니다. 프로듀서(Publisher)는 브로커에 메세지를 보낼 뿐, 누가 그 메시지를 이용하는지 신경 쓰지 않습니다. 퍼블리셔가 보낸 메시지는 브로커 내 토픽(Topic)으로 메세지를 생성하여 등록합니다.

 

07.png

 

브로커가 전달받은 메시지를 토픽(topic)으로 분류하여 쌓아 으면, 해당 토픽을 구독하는 컨슈머(consumer)가 메시지를 가져가서 처리하게 됩니다.

 

08.png

 

KafkaConsumer컨슈머(Subscriber)는 여러 개 존재하는 토픽(Topic) 중 하나를 선택하여 메시지를 받습니다. 카프카 컨슈머 어플리케이션 개발을 4.5장에서 직접 구현해봅니다. 1초마다 받은 메시지를 콘솔에서 표시하는 어플리케이션 예제입니다.

 

09.png

 

10.png

 

 

 

Kafka 응용

 

Part 2 실전 아파치 카프카에서는 실제 응용에 대해서 내용을 다룹니다. 5장 카프카 사례에서 IoT 시스템과 로그 시스템을 예로 들어 카프카를 적용하여 응용한 것을 설명하고 있습니다.  

 

 

11.png

 

이는 뒤에 7장과 9장, 10장에서 빅데이터 시스템과 IoT 시스템에 대해서 더욱 자세히 다루고 있습니다. IoT 시스템과 같은 경우는 기존 MQTT 기반의 브로커들과의 연동도, 왜 연동이 필요한지, 어떻게 연동할 수 있는지 내용을 서술하고 있습니다.

 

12.png

 

스파크 연동에 대해서는, 실제로 빅데이터 시스템을 구축한다면 하둡과 스파크와 연동해서 구성될 가능성이 큽니다. 9장에서는 스파크의 structured streaming에 의한 스트림 처리라는 주제로 스파크와 연동하는 것을 다룹니다. 스파크의 데이터 처리 모델과 RDD, DataFrame과 Dataset에 대해서 1장을 아낌없이 설명하고 있습니다.

 

 

 

독서를 마치고 나서


베타리더의 글 중에서 저자의 포스가 느껴진다는 소감을을 보았는데, 저 역시 그러한 느낌을 강하게 받았습니다. 어떤 프레임워크나 라이브러리든 API 문서가 제일 좋은 가이드 문서인데, 보통 API 문서는 딱딱함의 결정체이고 내용에 대한 이해가 결코 쉽진 않기 때문에 도서 구매를 통해서 좀더 쉽게 이해하기 위해서 가이드를 받는다고 생각합니다. 카프카의 경우 브로커 역할을 하기 때문에 카프카 자체만을 포커스해서 서술했다면 부실한 도서라는 오명을 받을 수 있습니다. 허나 IoT나 파일, RDBMS와 스파크까지 여러가지 상황을 고려해서 응용하는 것에 많은 지면 내용을 할애했다는 것에 매우 만족스러운 도서이고, 다시 한번 저자들의 내공을 알 수 있는 도서 였습니다.

 

 

13.png

 

 

현재의 대규모 사이트에는 카프카 적용이 기본이 되는 것으로 보입니다. IoT 뿐만 아니라 빅데이터 시스템, connected-car 등 대량의 데이터를 실시간으로 처리해야 하고, 다른 에코 시스템과 원활히 통합할 수 있어야 하는 요건에 부합되어 앞으로도 카프카의 적용과 활용, 확장은 기대할만 합니다. 저자들의 내공이 대단하다는 느낌을 앞서 말씀 드렸는데, 그들의 풍부한 경험과 지식을, 도서의 API 활용과 응용에 많은 지면을 할애줘서 감사하다는 인사를 건네고 싶고, 이런 좋은 도서가 폭넓게 읽혀져서 플랫폼 구축과 활용에 초석이 되는 도서가 되기를 바라겠습니다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

008eGmZEgy1gpocdjd3nij31210u01ct.jpg

 

한빛미디어 책 리뷰어에 선정되어 세번째 받게 된 책이다.

실제로 카프카에 궁금증이 많았다. 빅데이터 관련해서 굉장히 많이 보이는 서비스이고 채용 공고를 보더라도 카프카나 Rabbit MQ 등의 메시지큐 서비스들의 사용 유무를 많이 보기도 했다.

나는 카프카가 왜 생겨났고 어떤 방식으로 돌아가는지가 굉장히 궁금했었다. 파트 1에서는 카프카의 탄생배경과 카프카의 개념, 그리고 카프카를 사용하기 위한 기본 용어들을 알려준다.

특히나 카프카를 개발한 링크드인의 사례를 들어 이야기를 풀어 나가는 부분이 맘에 들었다.

파트 2에서는 파트 1에서 익힌 부분들을 가지고 실전 어플리케이션을 구현하는 파트로 카프카라는 서비스의 활용과 팁 소개도 진행된다.

개인적으로 개념을 이해하기 쉽게 풀어놓아주는 책을 선호하기 때문에 재밌게 읽었다.

카프카의 개념부터 실무적인 부분까지 원스텝으로 익혀 나갈 수 있어 좋았다.

별점 : ⭐️⭐️⭐️⭐️

한줄평 : 카프카의 뿌리부터 차근차근 실무까지 알아갈 수 있는 책

이런분께 추천 :

  1. 허겁지겁 실무에 카프카를 적용하여 개념적인 부분을 더 익히고 싶은 분.
  2. 분산 메세징 시스템 및 카프카에 관심이 있는 분.

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

이 책은 카프카의 기술적인 부분 뿐만 아니라 사용 사례와 그것을 직접 구현해보는 내용까지 담겨있다.

 

책을 읽어보니 다음과 같이 구성이 되어 있다.

1~4장에서는 카프카에 대한 이해와 기본적인 것들을 설명하고,

5~7장에서는 사용 사례를 소개하고, 하나의 사례를 직접 구현해보기도 한다.

8~10장에서는 스트림에 대한 처리에 대해서 살펴보고,

마지막 11장에서는 꿀팁들을 정리해주면서 마무리한다.

 

카프카에 대한 전반적인 내용을 담다보니, 기초적인/기술적인 부분에서는 깊이 들어가지 않는다.

예를 들면, ISR의 경우 카프카를 처음 접하는 사람의 경우 이해하긴 쉽지 않을텐데 대략적으로만 설명하고 지나가 아쉽다.

또한 초반부는 몇몇 표현들이 이 책을 읽기 어렵게 한다. 일어 번역서라서 그런지 모르겠지만 역시 입문자에게는 쉽지 않겠다고 생각이 들었다.

 

반면, 중후반부에서는 좀 더 다양한 내용들로 채워져있다.

예를 들면, Uber나 Yelp에서 어떻게 사용하고 있는지도 설명해주고, 

데이터 허브를 구현해보고, 사물 인터넷 데이터를 처리하면서 스트림 처리의 사용 사례도 구현해본다. 

 

마지막 11장에서는 실제 카프카를 사용하면서 고려해야할 내용들이나 발생할 수 있는 이슈들에 대해서 설명하고 해결책도 알려준다. 

 

이 책은 많은 내용을 담고 있지만, 디테일은 부족하다. 

따라서 카프카 자체 뿐만아니라 사용 사례등 전반적인 내용까지 알고 싶은 독자에게 추천한다.

 

표지.jpg

 

이번 달에 보게된 책은

"실전 아파치 카프카(APACHE KAFKA) - 애플리케이션 개발부터 파이프라인, 사물인터넷 데이터 허브 구축까지"

 

개인적으로 KAFKA를 알게된 계기는 MLOps를 처음 공부할 때에

Streaming Data를 수집 및 배포하는 용도의 도구로 처음 접하게 되었었다.

 

Machine Learning에서 대용량의 데이터 특히 지속적으로 제공되는 straming data를 처리할 때,

앞단에 구축하게 되는 시스템으로 가장 추천하는 도구가 바로 Kafka였었다.

 

 

카프카.jpg

 

 

책에서 제일 처음 보여주는 그림을 보면, KAFKA의 용도를 정확히 알 수 있다.

 

Kafka는 대량의 데이터를 높은 처리량과 실시간으로 처리하기 위한 도구로써 다음의 4가지 특징이 있다.

 

  - 확장성 : 여러 대의 서버 구성 가능

  - 영속성 : 수신한 데이터를 디스크에 유지 가능

  - 유연성 : 다양한 도구와 연계 가능

  - 신뢰성 : 메시지 전달 보증

 

 

APACHE KAFKA.png

 

Apache Kafka 사이트에 가면, 위와 같은 홍보 문구(?)를 볼 수 있다.

Fortune 100대 기업의 80% 이상에서 사용될 정도로 신뢰성 있고 인기 있는 잘나가는 도구라는 의미이다.

 

 

이렇게 멋진 도구에 대해서 멋지게 잘 소개해주고 있는 책이 바로 이 책이다.

 

실전 아파치 카프카 - 10점
사사키 도루 외 지음, 정인식 옮김, 시모가키 도루 외 감수/한빛미디어

 

 

조금 아쉬운 점은 이 책은 2018년도에 출시된 2.0 버전을 바탕으로 작성되었다는 것인데,

현재 시점 최신 버전은 아직 2.7 이다.

 

 

초판.jpg

 

책이 출간된 것도 20년 2월이니까.... 1년이 조금 넘게 된 시점에서 이 책을 보게 되었지만...

Kafka라는 도구 특성상 엄청난 변화가 있는 것은 아니기에 Kafka에 대해서 공부하기에 별 무리는 없을 것으로 본다.

 

도입.jpg

 

Kafka에 대한 hitstory에 대해서도 친절히 설명해주고 있다.

 

목차.jpg

 

설치나 애플리케이션 구성 등에 대해서도 자세하게 친절하게 잘 되어있다.

 

사례.jpg

 

실제 사례에 대해서도 보기 좋게 재미있게 잘 정리되어 있다.

 

 

실무에서 Kafka를 사용해야하는 분들에게 많은 도움이 될 수 있는 책이다.

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

카프카의 특징, 구조, 활용예 등을 간단한 그림들과 말, 소스코드로 쉽게 설명하고 있다.

활용예시에 대한 내용들을 보면 카프카의 특징들 때문에 다양한 활용방법이 소개되는데, 오 ㅐ요즘 카프카가 여러 분야들에서 많이 쓰이는지 알 수 있어 좋은 파트라고 생각한다.

핵심 내용들을 쉽게 설명하고 있기 때문에 입문용 도서로 적절하다 생각한다.

 
 오늘 리뷰할 도서는 [실전 아파치 카프카] 이다. 
 
원서는 일본 서적이고 번역서지만 번역이 어색한 부분은 특별히 없어 보인다.
 
 

2021-04-18 20.16.18 표지.jpg

 

 
카프카는 오래전에 공부도 좀 했었고, 프로젝트에서 실제로 사용해본 적도 있다.
 
책으로 본 적은 없기에 이번 책이 나름 기대도 되고, 의미가 있었다.
 
일단 이 책에서 맘에 드는 점은 그림이 적절하게(많이?) 있다는 것이었다.
 
아래처럼 카프카 브로커의 기본을 설명하는 그림도 있고, 
 
예전에 프로젝트 하면서 궁긍했던 점도 그림으로 설명이 나와 있어서 좋았다. 

확실히 글로만 나온 설명보다는 적절한 그림이 있는게 훨씬 이해에 도움이 된다.
 
 

2021-04-18 20.17.11 브로커.jpg

 

 
프로젝트에서 사용해보지는 못했지만 개인적으로 궁금했던 부분들이 이 책 곳곳에 있었다.
 
스키마 레지스트리, KSQL 등에 대해서도 다루고 있어 좋았는데, 

특히 KSQL은 예전부터 관심 있던 내용인데 부록에서 약간만 다루고 있어서 분량이 좀 아쉬웠다.
 
카프카 모니터링을 위해서 그라파나 연동 부분도 맘에 들었다. 
 
그런데 하나 아쉬운 점은 컬러 인쇄가 아니라서 그라파나 화면 캡쳐 부분이 아래 처럼 흑백으로 나온 점이다.
 
 

2021-04-18 20.18.56 그라파나.jpg

 

 
책의 전체 분량도 400 페이지가 안되서 부담 없이 보기에 좋았다. 
 
스파크와 카프카를 함께 사용하는 내용도 다루고 있는 부분(9장)도 아주 맘에 들었다.
 
카프카를 아직 본격적으로 공부하거나 사용해보지 않은 분들과 적당히(?) 사용해본 사람들 모두 도움이 될만한
 
좋은 책이라 생각 된다. 
 
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

카프카의 설치부터 기초를 꽤나 자세하게 알려주는 편이며

실제로 사용해서 서비스를 구축해보고 싶다라는 마음이 들게 해주는 책입니다. 

 

Part 1의 경우 

아마도 구글링을 통해서 찾으려면 쉽게 찾을 수 있는 정보라고 생각하지만, 

6장부터 슬슬 실제로 활용할 수 있는 방법을 알려주면서

스트림 처리, 사물인터넷 데이터 허브 등

이걸 실제로 공부를 하면 어떤 결과물을 예상할 수 있겠구나 라고 알려주는 편이여서 

직관적이면서 만족스러운 책입니다. 

 

서비스에서 생성되는 다양한 데이터들이 더 큰 의미를 가지게 된 요즘 이를 위한 데이터처리 워크플로우에서 카프카는 단순 로그수집부터 데이터 허브까지 그 사용범위가 확장되고 있다.

새로운 기술을 학습할 때 튜토리얼에서 마주한 낯선 개념이나 용어를 이해하느라 시작한 검색이 간혹 깊은 웹서핑의 단계로 발전(?)한 경험이 있어서 개인적으로 참고서처럼 궁금할 만한 내용이 포함된 것을 선호한다. 이 책은 원하는 형태 그대로인데 만약 JMS나 RabbitMQ 같은 메세징 도구에 대한 경험이 없더라도 편하게 읽을 수 있을 정도로 메세징 모델 같은 기본적인 내용을 함께 설명한다.

개념을 설명할 때 잘 표현된 그림을 사용했는데, 메세징 구조를 설명할 때 오프셋이나 파티셔닝에 대해 그림만으로 이해 할 수 있을 정도다. 그리고 설명에만 그치는 것이 아니라 카프카의 구조와 활용 방식을 이해하는 데 도움이 되는 다양한 예제가 있다.

책을 읽으면서 몇 년전에 읽었던 아파치 스파크 입문과 그 구성과 설명 방식이 닮아있다고 느꼈는데 저자와 감수자등 무려 4명이 겹친다. 일본인 저자의 기술서 특유의 간결하면서도 알찬 참고서 스타일의 책을 좋아한다면, 그리고 카프카 입문과 실사용 사례에 대한 고민을 함께 해결하고자 하는 분들에게 추천한다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성한 서평입니다.

 

apache-kafka.jpg

 

안녕하세요 괴짜 개발자 namedboy 입니다.

 

아파치 카프카는 링크드인에서 링크드인 웹사이트 로그를 처리해서 웹사이트 활동을 추적하는 목적으로 개발되었습니다. 그래서 아래의 목적을 가지고 개발이 되었습니다.

 

높은 처리량으로 실시간 처리한다.

임의의 타이밍에서 데이터를 읽는다.

다양한 제품과 시스템에 쉽게 연동한다.

메시지를 잃지 않는다.

카프카는 위의 목적을 실현시키기 위해 메시징 모델을 사용 합니다. 메시징 모델은 Producer, Broker, Consumer 이 3가지 요소를 가지고 구성됩니다.

 

카프카의 메시징 모델은 여러 컨슈머가 분산 처리로 메시지를 소비하는 모델과 여러 서브스크라이버에 동일한 메시지를 전달하고, 토픽 기반으로 전달 내용을 변경하는 모델을 사용하고 있습니다. 이 두가지 모델을 실현하기 위해 컨슈머 그룹이라는 개념을 도입하여 컨슈머를 확장 구성할 수 있도록 설계하고 있습니다.

 

기본 구조는 Producer에서 메시지를 생성해서 전달하면 기본적으로 broker가 수집하고 소비자에게 전달하는 구조 입니다.

 

심플한 구조지만 확장을 위해서는 기본적으로 큐잉모델을 쓰며 실시간 처리, 임의의 타이밍에서 데이터를 읽기, 메시지를 잃지 않는다는 목적을 위해 추가적으로 필요한 구성요소가 생깁니다. 이런 목표들을 만족시키기이 위해 디스크에 영속화하고 쉬운 API를 제공하며 전달 보증의 기능이 들어가 있습니다.

 

이런 기능들 덕분에 카프카는 아래의 목적으로 구축하고 이용될 수 있습니다.

 

데이터 허브로서의 역할 여러 시스템 사이에서 데이터를 상호 교환합니다.

로그 수집 BI 도구를 이용한 리포팅과 인공지능 분석을 위해 여러 서버에서 생성된 로그를 수집하고 축적할 곳에 연결한다.

웹 활동 분석 실시간 대시보드와 이상 탐지/부정 검출 등 웹에서의 사용자 활동을 실시간으로 파악한다.

사물인터넷 센서 등 다양한 디바이스에서 보낸 데이터를 수신해서 처리한 후 디바이스에 송신한다.

이벤트 소싱 데이터에 대한 일련의 이벤트를 순차적으로 기록하고 CQRS 방식으로 대량의 이벤트를 유연하게 처리한다.

경우에 따라서는 직접적으로 개발해야 하는 부분도 있으며 그 때문에 책에 예제가 포함되어 있으며 Java를 사용하여 기본적인 구축을 할 수 있도록 가이드 되어 있습니다.

 

카프카를 잘 모르는 사람도 기본적인 서버 개발의 지식만 있다면 충분히 따라할 수 있도록 구성되어 있어 카프카에 대한 이해를 한 층 더 높일 수 있겠다는 생각이 들었습니다.

 

카프카를 처음 도입하거나 시도해보고자 하는 분들에게는 도움이 되리라 생각합니다.

 

실전 아파치 카프카는 링크 에서 보실 수 있습니다.

 

이 리뷰는 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 

카프카는 2011년 미국 링크드인에서 출시되어 2021년 아파치 재단의 인큐베이션 프로젝트로 시작해 "아파치 카프카"라는 이름으로 출시되었다고 한다. 이는 대규모 메시징 시스템을 구현하기 위한 오픈소스 소프트웨어인데, 현재에는 다양한 기능들이 추가되어 데이터 로드, 데이터 처리를 위한 기능들을 포함하여 통합적인 데이터 처리 플랫폼으로 변모하고 있다고 한다. 

 

내가 제일 궁금했던 것은 카프카를 이용하여 데이터 파이프라인을 구축하는 방법이였는데, 이 책의 6장에서 카프카를 이용한 데이터 파이프라인의 구성 요소부터 시작해 7장의 카프카 커넥트로 데이터 허브를 구축하는 방법까지 보고나서 데이터 허브 아키텍쳐를 어떻게 응용해야 할지에 대한 감이 잡혔다. 또한 Part 1 에서는 아파치 카프카에 대한 기본 개념들을 담고 있고, Part 2 에서는 아파치 카프카의 적용 사례, 카프카 커넥트로 데이터 허브 구축하기, 스트림 처리 등 실전 문제들을 자세히 다루고 있기 때문에 아파치 카프카를 입문하려는 사람들에게 제격인 책이다. 

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 

KakaoTalk_20210417_113425309.jpg

 


 

 

실전 아파치 카프카

- 애플리케이션 개발부터 파이프라인, 사물인터넷 데이터 허브 구축까지 -

SE-0880e69e-dd7e-4237-a543-d7685b4f76a8.jpg

 

 

안녕하세요. 율리시스SS입니다.

오늘 소개시켜드릴 도서는 '실전 아파치 카프카'입니다. 

아파치 카프카는 분산 메시징 시스템으로 해당 책은 처음 아파치 카프카를 입문하는 분들께 추천을 드리는 도서 입니다.

자바API를 활용한 애플리케이션 개발부터 사물인터넷까지 간략하게 적용하는 방법을 배우는데 아파치 카프카를 처음 듣거나, 한번 들어보았는데 어떻게 사용해야 하는지 이해가 안갈 때 처음 배울때 좋은 책이라고 생각됩니다.

 

 

 

 

▣ 실전 아파치 카프카

 

 2.png

| 아파치 카프카를 처음 접할때 굉장히 어려웠습니다. 이게 뭐지 뭘 배워야 하지 라는 생각을 먼저 하게 되었는데요.

지금도 아파치 카프카를 이용해 프로젝트를 해본적은 없지만 회사에서도 회사분들이 카프카 얘기가 조금씩 들리는것으로 보아 해당 책으로 아파치 카프카를 배워봐야 겠다는 생각이 들었습니다.

 

이미지 2.png

 

 

| 전반적인 개념은 해당 책으로도 충분히 이해가 가능했습니다. 물론 쉽게 설명을 했다고는 생각되지만 그래도 어려운건 마찬가지네요.

아파치 카프카의 개념부터 탄생 배경, 그리고 어떤 방식으로 구현되는가에 대해서 조금 알수 있게 되었습니다.

환경 구축부터 친절하게 애플리케이션 개발까지 도와주는 책으로 그림이 많아서 이해가 조금 더 쉽게 되었습니다.

 

이미지 3.png

이미지 4.png

 

 

| 요즘에 들어서 방대한 데이터로 인해 아파치 카프카가 조금 더 인기를 끌게 된것 같은데요.

한빛미디어에서는 초급용이라고는 했지만 개인적으로는 중급용정도 될것 같습니다. 책을 읽어도 어렵기는 하네요;;;

하지만 전체적으로 그림을 이용한 흐름을 통해 이해를 시켜주기 때문에 머리가 좋은 여러분들께서는 이해가 쉽지 않을까 싶네요.

아파치 카프카에 대한 기본서가 많이 없는만큼 카프카에 대해서 이해하고 살짝 사용해 보고 싶은 분들께 괜찮은것 같습니다.

< 한빛미디어 아파치 카프카 도서 보러가기 >

한빛미디어로부터 제공받아 작성하였지만

제공 측의 간섭 없이 필자가 느낀 점 그대로 작성하였습니다.

작성일 : 2021년 04월 16일

최종 수정일 : 2021년 04월 16일

* 오류 수정은 블로그에서만 합니다.

* 블로그 : http://blog.naver.com/adg0609

CopyRightⓒ.2021.율리시스SS.All Rights Reserved

분산 메시징 시스템을 대표하는 kafka를 블로그 글이나, 메뉴얼로만 보다가 책으로 보니까 보는 관점이 다른 것 같다.

블로그나 메뉴얼에서는 하나 하나 따라하거나 국지적인 부분만 보게 되는 반면,

책에서는 전체적인 구조를 조망할 수 있게 설명을 해주는 것으로 느껴졌다.

그 동안 보았던 글들이 이제야 제자리를 찾아 정리가 되는 느낌이다.

카프카를 도입하려고 한다면 한 번쯤 읽어 보는게 좋을 것 같다.

읽으면서 아쉬움은 책 자체 빅데이터 관련 책들이 그렇지만, 실습하기 어렵다는 점이다.

제대로 실습하려면 PC가 여러대 거나 virtualbox로 가상 머신이라도 여러개 설치해야 하는데,

이런 환경을 만들기가 너무 귀찮다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다"

작년 새로 입사하신 과장님 한 분이 카프카와 관련된 세미나를 짧게 30분정도 컨퍼런스를 하신적이 있으셨다.

이름만 얼핏 들어봤지 처음 보는 내용이였기 때문에 30분이라는 짧으 시간으로는 어떤 내용인지 이해하기가

너무 어려웠었다. 

그러던 중 한빛 미디어를 통해서 '실전 아파치 카프카'라는 책을 읽을 기회가 생겼다. 

(당시 과장님이 참고 하셨던 책도 기억으로는 실전 아파치 카프카였다)

 

비록 회사에서 해당 내용을 가지고 업무를 하고 있지 않아서 실무에 바로 적용해보기 어렵지만 그래도 예전에 이해하지 못했던 개념들을 이해하는 시간을 갖자는 생각으로 접근하였다.

내용이 내게는 다소 어렵게 늦겨져 한번에 다 이해하기는 어려웠지만 그래도 그림을 통한 설명과 예제 코드들을 따라하고 여러번 리마인드 시켜주는 내용 구성으로 차츰 차츰 이해할 수 있었다.

(물론 한번 읽는 걸로는 개념들을 100% 이해하기는 힘들었다...ㅠㅠ)

 

 

표지가 귀여웠던 실전 아파치 카프카ㅎㅎ

 

접근 방식 자체가 실무에 바로 쓰겠다가 아닌 개념과 내용들을 이해하는게 목적이었기 때문에 설정을 따라해보고 적용하는 부분들은 눈으로만 넘어가보았지만 상세하게 많은 내용들을 다루고 있었기 때문에 실제 따라서 해보았다고 해도 큰 문제가 없었을 것으로 보였다.

그래도 완전히 이해가 될 때까지 다시 읽어봐야겠다!!!

 

【아파치 카프카 그 시작을 알리는 책】

 요즘은 바야흐로 빅데이터 시대라고 해도 과언이 아니다. 아니, 정확히는 몇년 전부터 이미 우리는 광활한 빅데이터라는 세상 속에서 살아가고 있다. 이런 시대에 예나 지금이나 가장 중요한게 있었으니 바로 이런 광활한 데이터를 체계적으로 관리하는 방법일 것이다. 여기에 더불어 IT 시대에는 이런 광활한 데이터를 이용한 서비스의안정적인 서비스를 체계적으로 관리하고 보장할 수 있는 기술은 과히 필수라 해도 과언이 아닐 것이다. 그래서오늘 블로거가 리뷰하게 될 도서는 이러한 시대의 흐름과 정서를 반영한 훌륭한 기술인 '아파치 카프카'와 관련된 도서를 리뷰하고자 한다. (참으로 오랜만에 리뷰를 하는것이여서 상당히 긴장된다.)


【어떤 독자를 위한 책인가】

 '실전 아파치 카프카'는 분산 메시지 방식 + 체계적인 빅 데이터를 관리하기에 훌륭한 기술이다. 더욱이 자바 기반의 다양한 예제가 오픈 소스로 이미 공개되어있고 국내에도 다양한 커뮤니티가 이미 구성되어있다. 그렇기에 안정적인 메시징 큐잉 방식과 더불어 스케일 아웃이 가능한 기술을 필요로하는 서비스를 개발하려는 사람들에게는과히 필수 기술이라 할 수 있다. 더욱이 이번에 출간된 '실전아파치 카프카'는 아파치 카프카의 기원부터 시작하여 사용사례, 그리고실제적인 서비스 아키텍처 설계와 구현론, 그외 부가적인 기능들 추가를 통해 아파치 카프카를 모르는 사람도위 도서를 충분히 학습함으로써 모든 서비스에 응용할 수 있는 카프카의 전신이 되는 기초 지식을 잘 제공하고 있다.


【책의 구성】 '실전 아파치 카프카'책의 구성은 어떠한가.

 이 책은 솔직히 카프카만을 위한 책이 아니다. 블로거가 느끼기에는 이 책은 메시징 큐잉 분산 처리 시스템을 사용하려는 모든 사람이 읽어보면 좋은 그런 내용들로가득 차있다. (물론 주제는 카프카에 관한 내용이 중심이지만 블로거의 시각으로 봤을 때, 이 내용들은 모든 분산 처리 시스템에 근간이 되는 설명들로 이루어져있다.) ~ 서두가 길었으니 책의 구성 설명으로 돌아가도록 하겠다. '실전 아파치카프카'는 카프카란 무엇인지에서 시작하여 탄생 배경, 이를이용한 서비스, 개발 환경 구축, 카프카에서 다루는 스르림처리부터 데이터 허브 설계, 구축에 이르기까지 거의 카프카의 시작과 끝 그 모든 것을 다루고 있다는책이라고 봐도 과언이 아니다. 더욱이 위 서는 자바로 수록된 다양한 예제와 실습 자료들을 제공하고 있기때문에 어느정도 자바 언어에 대한 특징을 잘 이해하고 있고 스프링과 같은 프레임워크를 사용해본 경험이 조금이라도 있다면 쉽게 책을 따라갈 수 있는구성으로 이루어져있다. 특히 마지막 11장에서 다루는 '카프카 능숙하게 사용하기' 는 카프카를 사용할 때 알아야할 내용들을잘 정리해두어 학습한 후 알차게 마무리지었다는 강한 여운을 남겼다. 특히 책 중간 중간 볼드체로 키워드등을 강조함으로써 카프카 관련 기술에서 사용하는 (혹은 카프카에서만 사용하는) 용어들을 잘 정리하였고 책 마지막에도 언제든 쉽게 참고할 수 있게 인덱스를 정리해둔 점 역시 독자가 책을 통해충분히 많은 지식을 얻어 갈 수 있길 바라는 저자의 많은 배려를 느낄 수 있는 그런 책이였다.


【실전 아파치 카프카를 읽으며…….

 솔직히 분산 큐잉 메시지 시스템이라고 하면 많은 사람들이 데이터나 저장할때쓰이는 플렛폼이구나 라고 생각하기 쉬운것 같다. 블로거가 멘토링 하는 대다수의 멘티들 역시 그렇게 생각하는친구들이 적지 않았으니 말이다. 하지만 스케일이 커지고 중앙 집권적인 서비스를 구현해야할 때, 카프카만큼 진가를 발휘하는 기술을 아직까지 본 블로거는 본적이 없는듯 싶다.그만큼 카프카를 잘 알아두면 매력적인 개발자인 동시에 훌륭한 대규모 서비스를 지탱할 수 있는 기술일 가졌음을 입증하는 것이라 생각된다. 더욱이 카프카는 오픈 소스 프로젝트이기에 카프카와 관련된 시스템을 서비스에 맞게 튜닝하는 것 역시 가능하며 (물론 능력만 된다면 카프카 프로젝트에 참여할 수 있는 기회도 있다.!) 이를튜닝한 프로젝트를 다양한 곳에 기부하는 것 역시 가능하다. 그렇기에 카프카를 모르는 개발자들도 꼭 이책이 아니더라도 카프카를 알아 가길 희망해본다.

 

예전에 프로젝트에서 카프카를 사용했었다.

그 때에는 간단하게 MSA구조에서 다른 App간의 메시지를 주고 받는 형태로 개발했었다.

이 책을 미리 봤었다면 좀 더 여러방면으로 활용할 수 있었겠다는 생각이 들만큼 많은 예제를 제공하고 있다.

또한 이런 예제를 통해서 내가 생각하지 못한 방면에서 카프카를 활용해 봐야겠다.

다음 프로젝트에는 좀 더 카프카를 적극적으로 활용해서 많은 스트림 데이터를 처리해야겠다.

 

카프카를 모르거나, 간단하게만 아는 분들에게는 책을 통해서 많은 활용도를 익힐 있는 기회가 것이다.

IMG_1525.jpg

 

얼마 전, 한빛미디어에 이 책이 출간되었다는 소식을 들었다. 사실 카프카가 어떤 기술인지 전혀 배경지식이 없는 상황이었지만, 역시 모르는 기술에 대한 호기심을 멈출 수 없었다. 

이 책은 서문에서 이렇게 이야기 한다.

'이 책은 카프카의 기본과 그 실현 가능한 것이 무엇인지 알고 싶은 사람, 특히 카프카를 처음 다루는 기술자를 위한 입문서다. 카프카는 개념이 단순한 반면, 매우 유연한 동작을 설정할 수 있거나 더 높은 성능을 제공할 수 있도록 만들어져 있다. 따라서 여러 시스템에서 다양한 쓰임새를하고 있다.'

카프카는 2011년 미국 링크드인에서 출시 된 후, 2012년 아파치 재단을 통해 키워져 '아파치 카프카'라는 이름으로 출시되었다. 초기에는 메시징 시스템의 기능 중심이었으나 이후에는 데이터 로드, 데이터 처리를 위한 기능을 포함한 통합적인 데이터 처리 플랫폼으로 변모했다.

각 장에서는 카프카의 개발동기, 기술, 요구사양 소개 부터 클러스터 구축방법과 테스트 환경 구축 방법을 설명한다. 그리고 독자가 구현가능한 예제를 통해 이해를 돕는다. 

책은 카프카에 초보를 타겟으로 구성되어 있다. 관련 업계 혹은 SW 관련 종사자라면 무리없이 소화할 수 있을 것으로 생각된다. 

"실전 아파치 카프카" 

 

분산 메시징 플랫폼으로서의 카프카의 기본 개념부터, 데이터 허브, 스트림 처리, 사물 인터넷 적용 사례등을 다루고 있다. 

 

카프카의 출현 배경, 기본 구조및 동작 , 카프카 클러스터 구축, 카프카 Connect와 Streams에 의한 데이터 파이프라인 구축,

구조화된 스트림 처리및 스파크 연동, 사물 인터넷 툴인 MQTT와 연동하여  데이터 허브 구축 사례등 , 실무적 관점에서의 카프카 적용 사례도 다루고 있다. 4차 산업시대에 데이터 허브로서의 카프카의 활용및 가치는 아무리 강조해도 지나치지 않다. 

 

센서데이터 수집부터 분석에 이르기까지 진정으로 실시간 처리, 스케일 아웃, 영속성, 전달 보증을 구현한 분산 메시징 솔류션인 "실전 아파치 카프카"의 진가를 맛보고 싶은 엔지니어라면 , 한번 일독을 권한다.

 

 

 

KakaoTalk_20200327_222409573.jpg

 

KakaoTalk_20200327_222608136.jpg

 

KakaoTalk_20191013_222920764.jpg

 

 

실전아파치카프카_크기조정.jpg

 

 

 

Message Queue로서 많이 활용하고 있는 kafka에 설명한 책으로 입문자도 이해하기 쉽게 설명한 책입니다.

 

 

 우선, 카프카의 기본을 이해하기 위한 설명과 설치하는 부분을 알려준 후에 카프카를 이용한 여러 Application들을 만들고 적용한 사례들에 대해서 알려줍니다.

 

 이 책은 입문서지만 최대한 여러 분야에 대해서 적용하는 것을 소개해주고자 합니다. 책이 두꺼운 것은 아니지만 많은 내용을 다루고 있기에 자세한 것까지는 적혀 있지 않지만 입문자에게 자신의 관심분야와 접목할 수 있는 부분을 쉽게 찾을 수 있게 해줍니다.

 

 저도 로깅에 대해 관심이 있고 업무도 수행하고 있는데 제가 사용하고 있는 fluentd에 kafka를 설정하는 핵심부분이 나와 있어서 앞으로 kafka를 적용하게 될 경우에 도움이 될 것으로 보여집니다.

 

 이 책을 통해서 kafka에 대해서 알 수 있었고, 어떻게 활용할 수 있는지도 배울 수 있었습니다. 소개된 다른 사례들도 향후 kafka와 초기 설정을 할 때 사용될 것입니다.

 

책을 읽고나니 kafka에 대한 관심이 높아져서 오류나 장애가 발생하였을 때의 동작방식이나 대처 등에 대해서 중급서에 해당하는 서적을 구매하고자 하는 생각도 들었습니다.

Apache Kafka는 여러 대의 분산 서버에서 대량의 데이터를 처리하는 분산 메시징 시스템입니다. 

메시지를 받고, 받은 메시지를 다른 시스템이나 장치에 보내기 위해 사용합니다. 

높은 처리량과 실시간으로 대량의 데이터를 취급하기 위해 초점을 맞췄으나 이제는 기능과 신뢰성을 향상시켜 현재는 데이터가 들어오는 대로 순차 실행하는 플랫폼이 되고 있습니다. 

구글, 애플, 드롭박스, 넷플릭스, 골드만삭스, 트위터, 핀터레스트, 세일즈포스, 우버, 마이크로소프트 등이 카프카를 사용하고 있습니다. 

 

 

 

IMG_6984.JPG

 


 


오픈소스인 카프카는 링크드인에서 개발했습니다. 링크드인 웹사이트에서 생성되는 로그를 처리하여 웹사이트 활동을 추적하는 것을 목적으로 개발했습니다. 링크드인에서 누군가의 프로필을 조회하거나 아티클을 보거나 특정 키워드로 검색하거나 혹은 광고를 클릭하는 등의 모든 행위가 낳는 로그들은 매우 방대했습니다. 우리는 이것을 빅데이터라고 부릅니다. 


저 역시 카프카를 도입하고 안정화하기까지 메시지 유실도 겪고 브로커가 다운되는 많은 고난과 역경이 있었지만, 당시 국내에서는 트러블 슈팅 문서나 책이 없어 더 힘들었습니다. 하지만 이번에 만난 <실전 아파치 카프카>책은 당시 제가 겪었던 장애 원인들이 많이 기술된 책입니다. 


카프카를 처음 접하는 독자에게는 카프카에 대한 순차적인 이해를 돕고 실습으로 이어지며, 이미 카프카를 접해본 독자에겐 놓칠 수 있는 장애 포인트를 짚어주고 있습니다. 



IMG_7018.JPG

이 책에서 가장 감명받았던 것은 Ack와 In-Sync Replica의 관계를 매우 중점적으로 다뤘다는 것입니다. 2장에서도 다루지만 마지막 11장에서 능숙하게 카프카를 다루기위해 알아야할 내용에서 다시 또 다룹니다. 저는 이 옵션으로 인해 많은 장애를 겪었고 당시에는 경험이 부족했기에 옵션에 대한 이해도가 부족했습니다. 이 책은 그점을 잘 표현하고 있어 매우 마음에 들었습니다.  

 

 

 

 

 

IMG_6985.JPG


저는 감히 이 마지막 11장이 이 책의 핵심이라고 칭할 수 있습니다. 카프카 능숙하게 사용하기. 

이 11장 카프카 능숙하게 사용하기를 이해하고 숙지했다면 운영에서 카프카 안정성을 찾아나가는데 엄청난 기여를 할 것입니다. 앞서 언급한 내용을 다시 정리하면서 강조합니다. 

 

 

 

IMG_7027.JPG

 

 


카프카를 사용해야하는 개발자라면 저는 이 책을 반드시 추천하고 싶습니다. 

API example을 온라인 상에도 많지만 일목요연하게 카프카를 이해하고 주요한 옵션에 대한 설명을 담고 있기 때문입니다. 


 



IMG_0811.jpg

 

 

작년(2019)에 이미 서버개발시 테스트용으로 써볼 기회가 있어 반갑게 보았고 그때 당시에는 프로토타입 개발하느라 제대로 이해하지 못 한 상태로 사용했지만 함께 고려했던 메세지큐 들 중에서는 성능이 제일 좋았던 기억이 있다.

-

해당 기억을 가지고 [실전 아파치 카프카]를 봤는데 기존에 잘못 이해했던 부분, 알지 못했던 부분이 많았다는 것을 알았다

책 구성은 이렇다

 

 

구성 :

카프카가 만들어진 이유 --> 사용이유 --> 기본개념 --> 구축 --> 응용 --> 사례

 

 

대상 :

기본 개념이 없을 경우 처음부터 정독을 하면 좋을 듯 싶으며

경험자의 경우 사례, 능숙하게 사용하는 방법을 주요로 읽으면 좋을 것 같다.

 

 

카프카 기초 :

프로듀서 --(push)--> 브로커 --(pull)--> 컨슈머

- 메시지 : key:value 로 이루어진 카프카의 데이터 단위

- 프로듀서 : 데이터를 만들어 브로커에 메시지를 보내는 에플리케이션

- 브로커 : 메시지를 받고 전달해주는 카프카의 중심 서비스

- 컨슈머 : 브로커에서 메시지를 전달받는 에플리케이션

- 토픽 : 메시지 종류별로 관리하는 스토리지, 브로커에서 관리

 

 

아무래도 이전에 프로토타입으로만 쓰고 채택되지않아 거기서 멈췄었다.

다음번 아파치 카프카를 활용할 기회가 된다면 참고하기 좋은 책이 었다.



메세지 브로커, 분산 메세징 시스템에 최근 많은 관심을 가지고 있어 RabbitMQ, Celery, 그리고 이번 서적의 주제인 Aapache Kafka에 대해서 사용해보고 있다.
아래에서 소개할 서적을 받기 전까진 구글링하며 Quickstart를 보고 익히고, 도큐먼트와 여러 기술 블로그를 참고하곤 했다.

이번 3월에는 실전 아파치 카프카 서적을 통해 공부하게 되었다
이 책은 한빛미디어 리뷰어 활동으로 제공받아 읽을 수 있었다.
틈틈히 읽으며 따라해보고 있는데 리뷰도 써야하니 잠시 책의 중간지점에 멈춰 리뷰를 쓰게 되었다

실전 아파치 카프카 (사사키 도루 등 5인 저, 정인식 옮김)

나에게 있어서 이 책의 장점은 크게 3가지로 볼 수 있다.

  1. 카프카를 써야하는 이유를 설명한다
  2. 카프카 탄생 전에는 무엇을 사용했는지 열거하고 그 도구들과 차이점을 꼼꼼히 비교한다.
  3. 책에 있는 코드를 따라 치는 전개

 

구글링에 의존해서 카프카를 익힐때에는 왜 이것을 사용해야 하는지, 다른 메세징 시스템이 있음에도 링크드인이 개발한 이유를 잘 모른 채로 그저 카프카가 재밌어보이고 신기해서 공부한 경향이 있었다.


그러나 이 책을 통해 카프카의 뿌리부터 배울 수 있게 되었다.

 

1장에서는 카프카의 사용방법이 아닌, 탄생 배경, 다른 메시징시스템과의 특징을 통해 어떠할 때 카프카를 써야하는지 알려준다.
2장에선 송수신, 파티셔닝, 레플리카 등의 카프카 기초지식에 대해 설명한다.

이후, 카프카 패키지를 설치하고 실행, 동작확인, 종료에 대한 내용을 다루며 카프카의 Java API를 이용한 어플리케이션 개발을 진행한다.

이외에도 Kafka Connect와 Kafka Streams, Apache Spark에 대해서 다루게 된다.

 

지금까지 국내 카프카 서적을 추천받을때에는
카프카, 데이터 플랫폼의 최강자, 오라일리의 카프카 핵심 가이드 를 받곤 했다.

(한글로 된 책이 별로 없어 카프카 국내 서적의 추천 목록이자 전체 목록이라고도 할 수 있겠다)

 

나와 같이 아파치 카프카, 분산 메세징 시스템에 관심이 있어 책을 알아보고 있다면
강력하게 실전 아파치 카프카를 추천해주고 싶다.

다른 서적과 비슷하게 가격대 있는 서적이지만 배움에 있어 충실한 값어치를 하는 것 같다.

IMG_7456.jpg

 

데이터 엔지니어 채용공고를 보다보면 Elasticsearch, Hadoop과 더불어 많이 보이는 것이 Kafka 입니다. 이러한 서비스를 통해 데이터 파이프라인을 설계, 구축, 운영해본 경험이 있는지에 대해 물어보는 경우가 많습니다.
한빛미디어에서 나온 ‘실전 아파치 카프카’를 통해 카프카에 대해 알아보고 실제로 카프카를 설치, 구축하고 애플리케이션을 만들어보면서 카프카 경험을 쌓을 수 있습니다.
책은 크게 파트1 도입 아파치 카프카와 파트2 실전 아파치 카프카로 나누어져 있습니다. 
 
파트1에서는 카프카의 탄생배경에 대한 이야기를 알 수 있고, 카프카를 이용하는 데 알아야 할 기본 용어에 대해서도 잘 설명해주고 있습니다. 카프카에서 제공하는 자바 API를 통해 카프카와 메시지를 송수신하는 애플리케이션을 만들어볼 수도 있습니다.
카프카 구축이나 애플리케이션 개발 환경 구축에 대해서도 친절히 방법을 소개해주고 있기 때문에 어렵지 않게 따라 할 수 있습니다.
 
파트2에서는 좀더 실질적인 카프카의 적용 사례들을 알아보게 됩니다. 카프카를 통해 어떤 활동들을 할 수 있고, 그것에서 해결해야 할 과제에 대해 생각해 볼 수 있는 챕터들이 기술되어 있습니다. 우리가 잘 알고 있는 우버의 사례도 나와있으며 ChatWork과 Yelp의 사례에 대해서도 이야기 하고 있습니다. 후반부로 갈 수록 카프카 실습들이 많이 나와 이론에만 그치지 않고 몸으로 습득할 수 있어 좋았습니다.
 
마지막에는 카프카를 더 능숙하게 사용하기 위한 몇 가지 주제들을 더 소개해 줍니다. 카프카를 더욱 전문적으로 사용하고 싶은 독자들에게 유용합니다.

책을 읽고나니 서럽장에 보관중이던 라즈베리파이를 꺼내 사물인터넷 데이터허브 구축에 써보면 좋겠다 생각했습니다. 

 

 

책이 담고 있는 주된 내용은 카프카를 활용한 개발에 초점이 맞춰져 있고, 카프카 운영에 대한 부분은 빠져있다. 

 

이 책의 목차를 보면, 카프카의 개요 부터 시작하여 설치, 실전 카프카 사례, 데이터 파이프 라인 구축에 필요한 지식,데이터 허브 구축, 스트림 처리를 담고 있다. 

 

사실 카프카는 이미 많은 회사에서 쓰는 분산 메시지 시스템으로 표준이 되었다고 할 정도로 정말 많이 쓴다.

 

외국 회사는 정말 수 많은 회사들이 카프카를 기반으로 데이터 레이크, 데이터 허브를 구성 하고, 분산 메시지 허브 개념으로 많이 사용중인데, 사실 이렇다 할 기본서 같은게 별로 없었다. 

 

그런데, 이 책이 쉽게 가이드 하고 있다고 생각 한다.

 

물론, 부족한 부분은 사례쪽이 조금 아쉽긴 하다. 오히려 웹쪽에서 많이 쓰이는 패턴으로 구성을 한다면 더 좋지 않았을까? 싶기도 하다. 

 

시리즈로 나뉘어 데이터 허브에서의 카프카와 데이터 수집 관리 용도의 웹 어플리케이션 관점으로 나누어 보는 것도 난 좋았을 것이라 생각 했다. 

 

물론, 설명을 잘 하고 있어서 필요한 부분들은 도큐먼트나 다른 자료를 참고 하는게 좋아 보이긴 했다. 

 

특히, 1장에 설명이 참 좋았다. 

 

**카프카가 가진 특징과 왜 개발 되었는지? 알 수 있어서 이해하기가 쉬운 부분이 있었다.**

 

아무래도 링크드인이 추구하는 방향성이 기존에 없던 툴들의 특징이라, 링크드인은 자체 개발을 할 수 밖에 없었던 이유가 명확하게 드러나는 카프카의 특징과 일맥상통하는 설명이 카프카의 필요성을 정말 설명 하는 부분이었다. 

 

사실 내가 일하는 관점은 거의 로그 수집에 가깝고, 로그 활용에 주된 관점이 있다 보니 조금은 생소한 부분들이 많았다. 

 

스트림 처리 이런 것도 중요하지만, 내가 원하는 포인트는 카프카 성능 관리나 운영에 대한 포인트였다. 

그렇다 보니 전체적인 구성이 조금 아쉬웠으나, 카프카 개발에 대해 궁금 했던 입문서로는 추천 할 수 있는 책이다.

 

카프카.jpg

 

 

리뷰내용

- 책의 구성에 대해서 정말 신경을 많이 쓴게 느껴진 책이였다.

Kafka에 대해서 거의 입문자의 지식이였지만 읽는데 크게 문제가 없었으며, 왜 Kafka가 생겼는지, 어떤 방식으로 구성되어 있는지, 왜 그렇게 구성을 하였는지 이해가 잘 되었다.

기술서적은 보통 해당 기술에 대해서만 얘기를 하는데 반해 큰 그림과 구조를 볼 수 있게 책의 구성이 잡혀있어 생각보다 금방 읽었던 것 같다.

현업에서 메시지 처리나 통신에 대해서 문제를 겪었던 사람이라면 재미있고, 공감하면서 읽을 수 있을 것 같다.

또한 실습을 통해서 직접 구현하여 테스트를 해볼 수 있는 부분이 정말 마음에 속 들었다.

실제 환경을 구축하고 테스트를 진행해보니 확실히 설명이 부족한 부분이나 이해가 안되었던 부분들이 있었는데, 이 중 일부는 실습을 하면서 해소가 된 부분도 많았다.

내가 현업에서 사용할 일은 그렇게 많지 않을 것 같지만 Kafka란 기술의 탄생배경과 내용 등을 습득할 수 있어서 좋은 경험이였던 것 같다.


올해 다시 시작된 한빛 미디어의 "나는 리뷰어다" 에서 처음 받은 책은 바로 카프카 관련 책이다.

한번쯤 어떻게 사용하는 것인지 공부 해봐야지 라고만 생각을 하고 있었는데 이렇게 책을 읽어볼 기회가 생겼다.

 

메세지 큐를 사용하는 어플리케이션을 만들기 위해서 잠깐 찾아서 써본 이후로 한번도 손대지 않았는데 그게 벌써 2년이나 지났다. ^^;

 

지금 이 글을 쓰는 시점에서 이 책을 다 읽어보지는 못했다. (실습을 해봐야 하기에...)

카프카의 배경부터 시작부터 설치까지 과정이 워밍업이라고 한다면 그 이후부터는 실제 사례들 중심으로 구성 방법에 대해서 설명을 해주고 있다.

특히 카프카가 어떤 기능이 있고 어떤 용도로 쓰일수 있는지에 대해서 링크드인 사례를 보여준 부분은 재미있었다.

 

그리고 이 책의 장점이라고 할수 있는 부분은 바로 다음과 같은 내용들이다.

 

왼쪽 사진은 실제 카프카로 구현하는 방법에 대해서 설명을 해주고 있는 부분이다. 어떻게 구현 될수 있고 구현을 하기 위해서는 어떤 점을 생각해야 하는지 알려준다. 그리고 후반부에는 소스레벨, 실제 실행 로그들도 보여준다.

 

오른쪽 사진을 보면 네모 박스에 "스트림 처리란?" 이라고 써있고 해당 주제에 대한 설명을 해주고 있다. 이 부분은 책 중간중간에 계속 나온다. 카프카를 사용하기 위해서 필요한 기본 지식이면서 꼭 카프카를 쓰지 않더라도 알아야할 지식들이다. 이런 내용들이 내게는 꼭 필요했고 책을 이해하는데 많은 도움이 되었다.

 

책을 다 읽으려면 좀더 시간이 걸릴것 같긴 하지만 잘 배워서 직접 활용해 보면 좋을 것 같다는 생각을 많이 했다.

 

 


KakaoTalk_20200326_162845898.jpg

 

 

카프카의 원리를 이해하는데 도움이 된 책 입니다.

현 업무에서는 consumer로서 메시지를 받는 구조이고

카프카 클러스터를 운영/관리 하는 직무는 아니지만

현재도 사용 중에 있고

어떤 점 때문에 팀에서는 다른 MQ보다 카프카를 선택하게

되었으며 제가 얻을 수 있는 장점은 무엇인지 궁금하던 차에

책을 접했습니다.

 

주로 궁금했던것은 다음과 같은 질문들 입니다.

- 왜 카프카를 쓰는가?

- 어떤 문제를 해결하려고 설계되었는가?

- 이미 존재하는 메시지큐 들과 카프카의 차이가 무엇인가?

- 그래서 어떻게 쓰면 되는가?

 

카프카의 개발동기, 유사한 도구들과의 비교,

실제 사용방법들이 상세히 서술되어있었고

 

제가 궁금했던 부분들을 해결해 준 책입니다.

다른 책들과 비교는 해보지 못 했지만, 저의 니즈에 적합했던 좋은 책입니다.

이 책의 리뷰는 한빛미디어 ‘나는 리뷰어다’로 부터 책을 지원받아 작성된 글입니다.

kafka_practice-01

한번쯤 카프카를 공부해보고 싶었는데 마침 리뷰할 수 있는 책 중에 실전 아파치 카프카 가 있어서 지원해서 읽어보게 되었다.

작성자의 경우 예전에 하이퍼레져 Fabric 의 구성요소 중 하나가 Kafka 로 되어 있어서 그 때 잠깐 Kafka 를 건드려 본 것 빼놓고는 정말 초보적인 지식밖에 없었다. 그렇기 때문에 이 리뷰글은 입문자 관점에서 적었다고 생각하면 좋을 것 같다.

일단 이 책에서 가장 마음에 들었던 부분은 아래 사진에도 나와 있듯이 실습을 함에 있어서 기본적은 모든 환경설정을 알려준다는 것이다. 일반적으로 개발 환경 실습을 할때는 “자바8 버전을 설치하세요”, “메이븐 최신을 설치하세요”, 등에 대해서 이야기하는데, 이 책에서는 하나하나 자세히 알려주기 때문에 실습을 함에 있어서 딱히 막힘없이 진행하 수 있었던 것 같다.

특히 카프카를 설치하 때 일단 실습을 쉽게 하기 위해서 confluent 플랫폼을 선택한 점도 눈에 띄는 것 같다. 물론, 뭔가를 개발함에 있어서 설치가 가장 어려운 부분에 속하지만, 작성자의 관점에서는 일단 카프카 자체가 어떻게 돌아가는지 궁금하기 때문에 환경 구성에 대해서는 자세히 설명하면서도 쉽게 설치해서 실습할 수 있도록 유도한 부분에 대해서는 긍정적으로 생각한다.

또한 카프카의 주요 사용 방법에 대해서 설명하고 이를 하나씩 실습을 통해서 설명해 주는 것도 좋았다. 그렇게 실습하면서 카프카를 언제 사용해야 하는지, 왜 카프카를 사용해야 하는지 조금은 납득할 수 있었던 것 같다.

다만 입문자가 아닌 사람의 관점에서는 너무 쉬운 기초적인 부분만 알려주는 것 아닌가? 하는 생각이 들 것 같다. 또한 이 책 자체가 입문 하는 사람의 위주로 쓰여서 그런지, 카프카 뿐 아니라 spark, MQTT 프로토콜 등의 기초적인 부분들을 알려준다. 어떻게 생각하면 이런 부분은 조금 카프카 자체를 알고 싶어 하는 사람 에게는 쓸데 없는 설명이 아니었을까 하는 생각도 들었다.

이러한 부분을 생각해 봤을 때 총 평은 예제와 함께 실습하는 것을 좋아하는 사람을 위한 카프카 입문서 이라고 평하고 싶다.

kafka_practice-02

책의 1장은 모든 다른 여타 책과 동일하게 카프카의 역사, 카프카가 쓰이는 이유 및 유스케이이스에 대해서 설명해준다. 그 후에 카프카의 구성에 대해서 이야기 해주고, 곧바로 기본적인 카프카 설치하고 간단히 producer, consumer 를 만들어서 실습해본다.

그 후 2장에서는 1장에서 설명한 유스케이스들에 대해서 실습하는 시간을 가지게 된다. “데이터 허브로 사용하는 방법”, “스트리밍 처리하는 방법(로그 처리)”, “사물인터넷 처리하기” 의 크게 세가지로 구분해서 알려준다.

그 후 마지막장에서는 카프카를 운영할 때 주의할 점에 대해서 몇 가지 설명해주고 있으며, 부록에서는 앞에서 이야기하지 못한 몇가지 심화 개념에 대해서 설명해준다.

실습은 아래 사진과 같이 먼저 유스케이스에 대해서 설명한 후 이를 위한 환경 구축, 그 후에 카프카를 연결해서 개발해 나가는 식으로 진행이 된다. 총 실습과정은 대략 4~5 가지의 경우를 예시로 들고 있다.

kafka_practice-03

작성자의 경우 사실, 현재 카프카를 쓰는 것은 오버엔지니어링이라고 생각해서 따로 공부한 적이 없었다. 하지만 진짜로 그럴까 하는 궁금증이 있었는데 이 책을 읽으면서 더 명확해진 것 같다. (실제로 오버엔지니어링임이 틀림없다.)

카프카를 사용하기 위해선느 일단 브로커가 5대 이상 필요하다는 것 자체가 트래픽이 없는 회사(현재 작성자는 창업 시작단계)에서는 돈만 많이 들고, 개발자 자체도 몇명 없는데 카프카까지 관리하려면 정말 힘들 것이다.

하지만 이런 판단을 하기 위해서는 어느 정도는 공부를 해보고 리서치를 해 본 후에 결정해야 한다고 생각한다. 그런 관점에서 보았을 때, 이 책을 한번 실습해보고 읽어보는 것이 카프카를 쓸지 안 쓸지 결정할 때 도움이 될 것으로 보인다.

또한 개인적으로는 책이 쉽게 쓰여 있어 입문자 입장에서는 재밌게 실습해볼 수 있었던 것 같다. (물론 어느정도의 리눅스 지식은 있어야 한다.) 다시 한번 카프카에 입문하고 싶다면 이 책을 정말 추천하고 싶다.

현재 사물인터넷을 활용한 디바이스 관련해서 프로젝트를 진행하고 있었습니다. 

기존의 블루투스나 NFC가 아닌 새로운 통신 기술을 시도하려고 하며, 

데이터 처리와 관련해서도 어떤 방법을 선택할까 고민하다가 이 책을 발견했습니다. 

 

아파치 카프카는 스트리밍 데이터 처리를 확장 가능성 높은 기술을 구현할 수 있게 한다는 것을 알게되었고,

이 책 10장에서 제가 필요한 '사물 인터넷' 파트가 나와서 5장까지 입문 개념을 익히고

원하는 부분으로 넘어와 예제를 따라 해보고 있습니다.

기초 개념부터 실전으로 바로 이어질 수 있게 만들어진 책이네요.  

 

카프카를 처음 접하시더라도 프로그래밍 기초지식과 리눅스 운영체제에 관해 경험이 있으신 분이라면 쉽게 이해하실 수 있을 것입니다.  

 

 

> 진행에 앞서

책을 리뷰할 기회가 오랫만에 주어졌다. 여러 책을 고르던 중 전혀 모르는 분야를 보고 싶다는 생각이 들었고, 그 책의 이름이 APACHE KAFKA라는 것이었다. 카프카가 뭐지? 어디에서 들어본듯 싶기도 했고, 아닌듯 싶기도 했고, 분명한건 지금은 그게 무엇인지 모른다는 것. 그래서 새로운 분야를 접하고 싶다는 생각에 시작하게 되었다. 그리고 뒤에서 언급하겠지만, 어느정도는 이 책을 읽기 시작했을 때의 목적을 달성했다고 보는 것이 맞는 듯 하다.

 

> 책에 대한 간단한 정보

 

표지

 

이 책은 '실전 아파치 카프카: 애플리케이션 개발부터 파이프라인, 사물인터넷 데이터 허브 구축까지'를 타이틀로 한 책이다. 이 책의 저자는 많은 일본 사람들이라는 것이 인상적이었다. 많은 책들이 영어로 된 원서를 기반으로 번역하는 것과는 다르게, 이 책은 당연하게도 일어를 번역한 책이었던 것이다. 일본에서 이 제품을 특히 더 관심 가지고 활용하는 것 같다는 생각을 가지고 접하게 되었다.

 

책 정보

 

 

 

> 첫 느낌 및 목차

 

주요 목차로는

아파치 카프카에 대한 개요, 기초 및 설치, 자바API를 이용해서 애플리케이션을 만들어보기, 사례, 각 사례별로 처리 방법에 대해서 이야기 하였다. 

 

 

카프카 라는 제품에 대해 무지한 사람이 보는데 문제가 없도록 하였으며, 제대로 개념 잡히지 않은 사람이라 해도, 쉽게 이해할 수 있도록 구성해 놓은 목차이다.

그리고 이 제품 자체의 활용을 실제로 필요로 할 때 다양한 케이스에 맞추어 진행이 가능하도록 좋은 레퍼런스를 생성해 놓았다. 중간 이후부터는 나중에 필요한 부분만 발췌해서 보도록 된 느낌이다.

 

> 인상깊은 부분들

1. 카프카의 태생부터 시작한 필요성 언급

 

필요성

 

링크드인으로부터 시작하여, 기존 시스템에서 부족한 부분을 어떻게 충족시켰는지 각 필요 요소를 조목조목 나열하였다. 사실 메세지 브로커 시스템일뿐인데 무슨 차이일까 궁금했던 나에게 이러한 비교는 매우 효과적이었다.

향후 카프카에 대한 기대감이 커졌다는 것만 봐도 알 수 있다.

 

2. 비교가 필요한 부분에 적절한 도표 삽입

 

각종 도표들

 

필요한 부분들에는 각종 도표들로 이해를 도왔다.

특히 카프카의 특징에 대한 사례 대응에 대해서도 이것이 어떠한 필요에 대해 잘 도움이 될 것인지, 도입을 고민하는 사람에게는 큰 도움이 될 것 같다. 그리고 개요 설명 끝자락에도 구조도를 통해 한눈에 파악이 될 수 있도록 돕고 있다.

 

3. 따라하기에 전혀 문제가 없는 실습 요소

 

실습요소

 

실습 요소는 OS 설치부터 시작하여, 실제 간단한 자바 프로그램 작성을 통하여 눈으로 카프카의 Produce, Consume을 보여준다.

이것이 잘 될 것인지에 대해 직접 VMWare Workstation Player를 설치하여, CentOS를 설치하고 진행하였다. 이 책의 내용과 조금 다른 것은 8.1로 진행하였는데, 별 무리없이 진행할 수 있었다.(중간에 막힌곳이 있기는 하나.. 잘 못 해석한 부분이 문제였다. 결국은 해결!)

 

소스 작성시에는 Linux에도 잘 동작하는 Visual Studio Code로!
Broker를 localhost에 하나 띄우고, Producer와 Consumer를 각각 동작시켜서 값을 전달하고 받아들이는 과정

 

나름 성공적으로 되니 재미가 있었다.

 

4. 적용 가능한 사례 및 실제 활용 요소 나열

 

적용 사례에 대한 부분

 

적용 사례에 대한 부분은 실습 이후 바로 나오는데, 이 흐름이 매우 매끄러웠다. 책의 전체적인 구성에 신경을 쓴 느낌이 많이 들었다. 하나의 시스템을 학습하는 데 있어서, 이것이 무엇인지, 왜 필요한지, 실제로 눈으로 보여주어야 하는 부분과 그래서 앞으로 도입할 수 있는 부분은 이렇게 있다는 구체적 사례와, 그 방법에 대해서 구체적인 설명까지 언급한 것은 매우 자연스러웠다.

영화로 보자면 잘 짜여진 설득력 있는 영화 같았다.

 

> 괜찮은 부분

- 설득력 있는 전개

- 초보자가 보기에 어렵지 않은 구성

- 실행이 잘 되는 실습

- 추후 언제든 발췌하여 활용 가능한 레퍼런스식 챕터 도입

- 번역본인지 몰랐을 정도로 매끄러운 번역

 

> 아쉬운 부분

- 실습이 조금 더 구체적이었다면.(서버이름 설정, pom.xml파일 내부 설정시 유의점 등)

- 필요한 주변 지식에 대한 용어를 모아서 정리해 주었다면.

 

> 개인적인 평점

- 가격: 8 / 10

- 내용: 9 / 10

- 디자인: 7 / 10

- 구성: 10 / 10

 

> 정보

저자: 사사키 도루, 이와시키, 마사다케, 사루타 고스케, 쓰즈키 마사요시, 요시다 고요

옮긴이: 정인식

출판사: 한빛미디어

가격: 27,000원

전체 페이지: 388페이지

 

** 이 리뷰는 "한빛미디어"를 통해 도서를 제공받아 작성하였습니다.



[한줄평]

도입부터 활용까지 한 권으로 끝내는 카프카 실전 가이드


[목차구성]

1부 도입 아파치 카프카

1장 아파치 카프카 개요

2장 카프카 기초

3장 카프카 설치

4장 자바 API를 사용하여 애플리케이션 만들기


2부 실전 아파치 카프카

5장 카프카 사례

6장 카프카를 이용한 데이터 파이프라인 구축에 필요한 사전 지식

7장 카프카와 Kafka Connect로 데이터 허브 구축하기

8장 스트림 처리 기본

9장 Structured Streaming에 의한 스트림 처리

10장 카프카로 구축하는 사물인터넷 데이터 허브

11장 카프카 능숙하게 사용하기


[이 책의 특징]

  • 카프카 탄생 배경, 구조, 기본 동작

  • 메시지 송수신 구조, 시스템 구성, 분산 메시징 구조

  • 컨플루언트 플랫폼을 이용한 클러스터 구축

  • 자바 API를 활용한 애플리케이션 개발

  • 데이터 허브 아키텍처, Kafka Streams를 이용한 스트림 처리, 스파크 연동 방법

  • 사물인터넷 적용 사례


[대상 독자]

  • 카프카를 처음 배우고 싶은 서버 운영자

  • 비동기 시스템을 개발하고 싶은 개발자

  • 실시간 데이터 파이프라인을 구축하고 싶은 아키텍트


[서평]

클라우드 네이티브, 빅데이터, 인공지능, 블록체인, 마이크로 서비스등 컴퓨팅 아키텍처가 정말 빠르게 바뀌고 있다. 예전에는 서버/클라이언트 구조로 설계를 했는데 요즘은 비동기 메시징 프레임워크 기반으로 데이터를 주고 받는 형태로 바뀌고 있다.


하둡, 스파크, 카프카등 여러 플랫폼이 있는데 그중에서 카프카가 가장 핫하게 뜨고 있습니다. 이 책에서는 카프카를 처음 시작 하는 개발자를 위해서 가장 쉽게 입문 할수 있게 기초 개념 부터 확장성과 고가용성 특징을 활용해 시스템을 구현 하는 방법을 설명하고 있다. 


실무에서 카프카를 어떻게 활용하는지 다양한 예제를 통해 배울수 있다. 그리고 실무에서만 알수있는 노하우를 배울수 있어 처음 카프카를 시작하기에 많은 도움을 받을수 있을 것이라 생각합니다. 

 

카프카를 도입을 고민 하고 있다면 실전 아파치 카프카를 한번 읽어보시는 걸 추천 합니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
실전 아파치 카프카
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
실전 아파치 카프카
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
실전 아파치 카프카
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0