-
-
아파치 카프카 애플리케이션 프로그래밍 with 자바 - 카프카의 개념부터 스트림즈.커넥트.스프링 카프카까지 데이터 파이프라인 구축 따라하기
최원영 지음 / 비제이퍼블릭 / 2021년 4월
평점 :
절판
이번 도서 후기는 최근 내가 읽으려고 작성해둔 도서 목록에 포함되어 있던 아파치 카프카에 관한 책이다.
카프카에 대한 이해와 함께 프로그래밍도 함께 해보고 싶어서 추가해두었었다.
몇년 전 세미나를 통해 카프카에 대해 알게된 이후 아직까지 직접적으로 내가 구축을 해보고 경험을 해보진 못했지만, 언젠가 내게도 기회가 주어진다면 능숙하게 구축하고 운영 할 수 있도록 미리 스터디해보아야 겠다고 생각했었다.
먼저 이 책은 처음 읽기 전부터 두 번정도 볼 계획으로 읽기 시작했다.
첫번째로 읽을 때는 개념 위주로, 두번째로 읽을 때는 개념을 다시 보고 책에 나와있는 실습을 병행하면서 읽을 계획이다.
카프카의 구성요소에 대한 개념과 함께 각 역할이 이해되어야 책에 나와있는 실습도 이해하면서 할 수 있다고 생각했기 때문이다.
개념 위주로 읽다보니, 나는 챕터 1을 읽고, 챕터 2가 아닌 챕터 3을 먼저 읽었다.
특히 챕터 3은 어느 챕터보다도 꼼꼼히 읽었는데, 아무래도 카프카에 대한 기본 개념이 설명되어 있어 더욱 꼼꼼히 읽었다.
이 책을 읽으면서 느낀 카프카에 대한 나의 인상은, 정말 잘 만들어진 플랫폼이다라는 것이다.
처음 카프카를 만들고자 했던 의도가 잘 반영되어 있다고 생각한다.
시간이 지날수록 어플리케이션의 개수가 많아지고 데이터의 양이 방대해지고 있다.
어플리케이션 간에 연결하는 파이프라인 개수가 많아지면 아무래도 서비스를 운영하는 과정에서 여러 문제에 직면하게 된다.
카프카는 이런 상황에서 각 어플리케이션에서 수집한 데이터를 한 곳에 모아서 실시간으로 처리할 수 있게 해준다.
중앙에서 처리함으로써 어플리케이션 간의 의존도를 최소화할 수 있게 되었다.
카프카에서 데이터가 처리되는 방식은 FIFO의 큐와 유사하다.
큐에 데이터를 보내는 프로듀서와 이 데이터를 가져가는 컨슈머로 이루어져 있는데, 카프카를 통해서 전달할 수 있는 데이터 포맷의 제한이 없다는 점에서 가능한 모든 객체가 지원이 된다.
카프카를 도입함에 있어서의 장점으로는, 많은 양의 데이터를 송수신하는 데에 있어서 통신 횟수를 최소한으로 줄이면서 한번에 많은 데이터를 전송할 수 있는 점, 데이터의 양을 예측할 수 없는 경우에 대해서도 가변적으로 확장이 가능하다는 점, 파일 시스템에 데이터를 저장하기 때문에 어플리케이션이 종료되어도 데이터가 사라지지 않는 다는 점, 카프카 클러스터로 데이터 복제를 통해 일부 서버에 장애가 발생하더라도 무중단 상태에서 데이터를 처리할 수 있다는 장점을 가지고 있다.
카프카가 왜 만들어졌고, 카프카 플랫폼을 적용함에 있어서의 장점과 더불어 각 구성요소의 개념과 함께 실습 코드를 통해서 카프카의 원리를 좀 더 이해할 수 있었다.
특히 나는 설명에 대한 그림과 QR 코드로 좀 더 알아두면 좋을 내용, 아직 실습을 진행하진 않았지만 카프카 각 요소에 대한 실습 코드의 설명이 카프카의 동작 원리를 이해하는 데에 많은 도움이 되었다.
이제는 두번째로 실습을 겸하며 다시 책을 읽어보려고 한다.
첫 완독을 했으니 두번째 읽을 때는 내가 놓쳤던 부분을 다시 읽고, 이해가 잘 되지 않았던 부분을 다시 리마인드하면서 읽고, 실습을 겸하면 처음 읽었을 때보다 이해도가 조금 높아지지 않을까 싶다.
첫 완독을 끝낸 시점에서 카프카 입문자인 나에게 카프카에 대한 이해도가 많이 높아졌다.
나와 같은 입문자에게 추천한다.