이런 걸
배워요!
아파치 카프카 기본 개념과 활용 방법
카프카 기반 스트림 데이터 아키텍처
프로듀서, 컨슈머 애플리케이션 개발 및 운영 능력
스트림즈, 커넥트의 개념과 활용 방안
데브원영과 함께! 제대로 배우는
아파치 카프카(Apache Kafka)의 A to Z 🚀
데이터 엔지니어 이벤트 드리븐
스트림 프로세싱 데이터 파이프라인
기본 개념 + 상용 환경 적용을 위한 각종 기능까지
강의 한 편에 카프카의 핵심을 꼼꼼하게 담았습니다 😊
안녕하세요, 데브원영입니다! 아파치 카프카는 이벤트 스트리밍 플랫폼으로서 대용량, 대규모 스트림 데이터를 처리하기에 적합하도록 설계되어 있어 국내외의 많은 개발자들에게 사랑받고 있는 소프트웨어입니다. 강력한 오픈소스 아파치 카프카의 기능들을 사용하기 위해서는 카프카 기본 개념을 포함하여 주변 생태계에 대해서 확실히 알아야만 합니다.
이번 강의는 아파치 카프카 애플리케이션을 효과적으로 개발하기 위해 필요한 지식을 담았습니다. 아파치 카프카에 대한 기본 개념을 설명할 뿐만 아니라 프로듀서, 컨슈머, 스트림즈, 커넥트까지 오픈소스 아파치 카프카에서 공식으로 제공하는 기능을 위주로 설명합니다.
수년간 아파치 카프카 애플리케이션을 개발하고 운영하면서 배운 여러 지식들과 노하우를 온전히 전수해드리기 위해 강의를 구성하였습니다. 단순히 기술 설명으로 끝나는 것이 아니라 각 기능과 옵션이 어떻게 상용 환경에서 적용되는지 설명합니다. 이번 강의를 통해 아파치 카프카 애플리케이션 개발 전문가로 거듭나는 디딤돌이 되길 바랍니다.
아파치 카프카를 처음 접하면 가장 어려운 점이 "어느 정도까지 공부해야 하나?"입니다. 역사가 오래된 플랫폼이고 다루는 기술이 너무나 많기 때문입니다. 여러분들이 흔히 사용하게 되는 카프카 컨슈머의 옵션이 90개가 넘습니다. 과연 모든 옵션들을 알아야 개발을 할 수 있을까요?
이 질문에 대답하기 위해 이번 강의를 만들었습니다. 이번 강의는 카프카의 모든 기능과 기술들을 나열식으로 설명하지 않습니다. 여러분들이 상용 환경 카프카 애플리케이션을 개발할 때 즉시 필요한 옵션과 기능을 위주로 설명합니다. 또한 제가 애플리케이션을 개발하고 운영하면서 설정했던 설정값들도 함께 공유합니다.
이 강의를 수강함으로서 아파치 카프카 애플리케이션을 개발하고 운영할 때 시행착오를 줄이고 더 효과적으로 개발할 수 있게 되는 계기가 될 것입니다.
아파치 카프카
(Apache Kafka)
기본 개념을 알고 싶은
신입 개발자
데이터 엔지니어가 되어
데이터 파이프라인을
구축하고 싶은
백엔드 개발자
스트림 데이터를 처리하는
카프카 기반 아키텍처를
공부하고 싶은
데이터 엔지니어
이번 강의는 카프카와 연동하는 애플리케이션을 개발할 때 필요한 다양한 지식을 다룹니다. 오픈소스 아파치 카프카에서 사용하는 정확한 단어와 표현 그리고 툴들을 배우기 때문에 카프카를 당장 다루어야 하는 신입 개발자는 이번 강의를 통해 애플리케이션을 개발할 준비를 할 수 있습니다.
또한 애플리케이션을 개발할 때 자주 사용되는 옵션과 기능을 자세히 설명하기 때문에 카프카를 연동해야 백엔드 개발자에게도 유용합니다. 마지막으로 주변 생태계(커넥트, 스트림즈)와 아키텍처 설명을 통해 이미 카프카를 도입하여 운영하고 있는 데이터 엔지니어에게도 인사이트를 전달합니다.
아파치 카프카에서 다루는 단어들의 종류는 상당히 다양합니다. 리밸런싱, 메시지 키, 파티셔너, 어큐뮤레이터, 태스크와 같은 단어들은 카프카에 익숙하지 않은 개발자에게는 생소한 단어들인데요. 각 단어에 대한 정확한 개념을 이해하지 않으면 카프카를 이해하고 개발하는데 상당히 애를 먹게됩니다. 이번 강의에서는 카프카에서 사용하는 주요 단어에 대한 정확한 개념을 설명합니다.
분산 이벤트 스트리밍 플랫폼인 아파치 카프카는 일반적인 메시징 큐 기능을 지원할 뿐만 아니라 이벤트에 대한 실시간 스트림 프로세싱도 가능합니다. 또한 데이터 플랫폼으로서 데이터 파이프라인을 반복적으로 생성하고 운영하는데 적합한데요. 이런 기능들을 사용하고 활용하시기 위해서는 주변 생태계가 무엇이 있는지 확실히 알아야 합니다. 이번 강의에서는 프로듀서, 컨슈머 뿐만 아니라 카프카 스트림즈와 카프카 커넥트를 다룸으로서 애플리케이션을 개발하는 개발자들에게 스트림 데이터 프로세싱에 대한 인사이트를 제공합니다.
여러분들이 카프카 애플리케이션들을 개발할 때 처음부터 모든 기능을 학습하고 배우실 필요는 없습니다. 컨슈머는 이미 90개 이상의 옵션을 제공하고 있지만 모든 옵션을 사용하는 것은 아닙니다. 이번 강의에서는 여러분들이 애플리케이션을 개발할 때 당장 설정하고 적용을 해야하는 옵션, 그리고 제가 개발하면서 적용했던 옵션값들을 알려드립니다. 이런 가이드라인을 통해 여러분들은 시행착오를 줄이고 카프카 애플리케이션을 더욱 빠르게 상용환경에 적용할 수 있게 될 것입니다.
카프카의 기능과 옵션만으로는 스트림 데이터를 다루는데 한계가 있습니다. 어떤 기술을 어떤 방식으로 적용하는지에 따라 카프카의 활용도가 천차만별로 달라지게 됩니다. 이번 강의에서는 기술적인 설명뿐만 아니라 카프카 기반 아키텍처의 종류와 역사 그리고 사례 연구를 통해 실무에 카프카 기반 아키텍처를 어떤 방식으로 적용할 수 있는지 가이드라인을 제안합니다.
저는 100개 이상의 카프카 기반 데이터 파이프라인을 운영하고 다양한 스트림 프로세싱 애플리케이션을 개발한 경험이 있습니다. 대규모 스트림 데이터를 효과적으로 다루는 방법을 고민했고, 더 안전하고 더 빠르고 더 효과적으로 애플리케이션을 개발하기 위해 노력했습니다. 개발과 운영을 동시에 수행하면서 배웠던 내용을 강의에 녹여내었습니다. 이런 실전 환경 노하우는 기술 문서에서는 쉽게 얻을 수 없는 값진 지식입니다.
카프카를 공부하다 보면 궁금한 내용들이 상당히 많이 발생합니다. 주변 동료나 개발자들에게 물어보고 싶지만 적용한 경험이 없다면 쉽게 답을 내기 어렵습니다. 수년간 프로듀서, 컨슈머, 스트림즈, 커넥트 애플리케이션을 개발한 경험을 토대로 수강생분들에게 답변을 드리고자 합니다. 단순히 강의를 제공하고 끝나는 것이 아니라 QnA와 커뮤니티를 통해 소통하면서 여러분들이 직면한 카프카 애플리케이션 개발의 어려움과 궁금증을 풀어드리겠습니다.
카프카 공인 개발자 자격증인 CCDAK(Conflunet Certified Developer for Apache Kafka)는 카프카 애플리케이션 개발 전문성을 검증하는 Confluent 자격증입니다. CCDAK 준비 및 취득 경험을 토대로 검증 시험에서 나올 수 있는 질문을 퀴즈로 구성하여 제공합니다. 수강생분들은 각 섹션을 학습하고 퀴즈를 풀어보는 시간을 가질 수 있습니다. 그리고 정답과 해설을 영상으로 보고 다시 복습할 수 있는 시간을 가질 수 있습니다. 이렇게 공부한 지식은 추후 면접 질문에도 대비할 때 도움이 되시리라 생각됩니다.
1. 카프카 기본 개념 설명
카프카에서 활용되는 개념과 단어들에 대해 명확히 설명합니다.
2. 카프카 클러스터 운영
카프카 클러스터를 운영하는 형태와 방법에 대해 학습합니다.
3. 아파치 카프카 CLI 운영
카프카 애플리케이션을 개발하는데 가장 많이 사용되는 스크립트들을 학습하고 실습합니다.
4. 카프카 프로듀서 애플리케이션 개발
프로듀서 내부 구조와 주요 옵션 그리고 코드를 살펴봅니다. 파티셔너에 대한 동작과 각 옵션별 데이터 전달 신뢰도도 함께 살펴봅니다.
5. 카프카 컨슈머 애플리케이션 개발
컨슈머 내부 구조와 주요 옵션 그리고 코드를 살펴봅니다. 컨슈머 그룹부터 시작하여 컨슈머 운영시 가장 필요한 컨슈머 랙에 대한 내용도 상세히 다룹니다.
6. 멱등성 프로듀서, 트랜잭션 프로듀서와 컨슈머
기본 프로듀서/컨슈머가 아닌 멱등성, 트랜잭션 프로듀서/컨슈머가 탄생한 배경을 살펴보고 사용하는 방법을 학습합니다.
7. 카프카 스트림즈
강력한 스트림 프로세싱 기능을 제공하는 스트림즈 애플리케이션에 대한 개념과 주요 옵션, 코드를 살펴봅니다.
8. 카프카 커넥트
반복적인 데이터 파이프라인을 개발하고 운영하는데 사용하는 커넥트에 대한 개념을 코드와 함께 살펴봅니다.
Q. 이 강의를 들으려면 [아파치 카프카 애플리케이션 프로그래밍 with 자바] 책을 반드시 구입해야만 하나요?
여기에서 다루는 기술과 코드는 [아파치 카프카 애플리케이션 프로그래밍 with 자바]를 기반으로 작성되었습니다. 그러나 이 강의에서 다루는 모든 내용은 PDF형태로 강의 자료가 제공되기 때문에 반드시 구입하지 않으셔도 됩니다. 추가적인 내용(미러메이커2, AWS MSK 등)을 학습하고 복습을 하고 싶으시다면 이 책을 구입하시는 것도 좋은 선택이 될 거라 확신합니다😍
Q. 비전공자도 들을 수 있나요?
이 강의는 아파치 카프카에서 다루는 기본 개념을 충실히 설명하고 실전 개발환경에서 필요한 기능과 옵션을 자세히 다룹니다. 또한 강의에서 개념 설명을 할 때 여타 소프트웨어나 빅데이터 플랫폼을 모르더라도 학습하는데 지장없도록 구성하였으므로 비전공자 중 데이터 엔지니어로 커리어를 나아가기 원하시는 분에게 적합합니다.
Q. 왜 자바를 사용하여 학습하나요? 자바를 모르더라도 학습하는 데 지장이 없나요?
오픈소스 아파치 카프카에서 제공하고 지원하는 공식 라이브러리는 자바(Java)입니다. 또한 카프카 커넥트와 카프카 스트림즈를 개발하기 위해서는 반드시 공식 라이브러리인 자바 라이브러리를 디펜던시로 사용해야만 합니다. 그렇기 때문에 오픈소스 아파치 카프카의 진가를 알기 위해서는 자바 기반의 애플리케이션(프로듀서, 컨슈머, 스트림즈, 커넥트)를 개발해야 합니다. 써드파티 라이브러리(다른 언어들)는 동일한 기능을 제공하지 않으며 완벽하게 호환된다고 장담할 수 없기 때문에 자바로 강의를 구성하였습니다.
자바가 익숙하지 않더라도 걱정하지 마세요. 코드를 line by line으로 설명하기 때문에 어렵지 않게 따라오실 수 있습니다.
Q. 실습하는 데 반드시 맥북이 필요한가요?
아닙니다. 맥북이 아닌 OS에서도 실습이 가능합니다. 강의 진행 및 실습 환경은 모두 맥북을 기준으로 설명하지만 윈도우나 리눅스 환경에서도 JVM이 돌아가는 환경만 되면 모두 실행 가능하도록 스크립트가 준비되어 있습니다. 그러므로 맥북이 아니더라도 걱정하지 않으셔도 됩니다.
윈도우 환경의 수강생분들은 쉘 스크립트 실행을 위해 WSL 개발 환경 설정이 필요할 수 있습니다. 이에 대한 자세한 설명은 WSL 개발 환경 설정(링크)를 참고해주세요.
Q. 실습에 필요한 PC 사양은 어느 정도인가요?
주키퍼와 카프카 브로커를 로컬에 띄우고 실습을 진행하기 위해서는 최소 8GB 이상의 메모리를 가진 노트북 또는 데스크탑이 필요합니다. 그리고 CPU는 i3(3GHz) 이상을 권장합니다. 마지막으로 저장소로 SSD 또는 하드디스크에 1GB 이상의 여유 공간이 필요합니다.
학습 대상은
누구일까요?
아파치 카프카 기본 개념을 알고 싶은 신입 개발자
데이터 엔지니어가 되고 싶은 백엔드 개발자
스트림 데이터를 처리하는 카프카 기반 아키텍처를 공부하고 싶은 데이터 엔지니어
선수 지식,
필요할까요?
Java 1.8 이상 문법 지식
쉘 스크립트(Bash 또는 Zsh) 활용
수강생 수
11,186
수강평 수
387
강의 평점
4.9
강의 수
2
#Kafka #Streaming #DataEngineer
전체
105개 ∙ (13시간 13분)
가 제공되는 강의입니다.
아파치 카프카의 탄생과 기본 구조
08:25
[섹션1 퀴즈]정답과 해설
03:41
오픈소스 아파치 카프카 생태계
05:27
카프카 브로커와 클러스터
03:42
카프카 클러스터와 주키퍼
02:02
카프카 브로커의 역할들
05:41
브로커 로그와 세그먼트
09:25
복제(replication)
11:58
토픽과 파티션
11:40
레코드
09:18
클라이언트 메타데이터와 브로커 통신
03:34
[섹션2 퀴즈]정답과 해설
05:47