Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Data Science

/

Data Engineering

Realtime Datalake Using Kafka & Spark

Beginner's Kafka & Spark Real-time Pipeline Course. All-in-one: Master concepts to architecture.

(4.8) 11 reviews

165 learners

  • hyunjinkim
실시간
데이터처리
데이터파이프라인
Kafka
Apache Spark
pyspark
data-lake

Reviews from Early Learners

What you will learn!

  • Implementing CI/CD with Github, Actions, and AWS Code Deploy

  • Kafka Broker, Confluent Producer & Consumer

  • Monitoring Kafka Dashboard with Prometheus & Grafana

  • Spark & Hive Metastore for Catalog Management

  • Implementing a Practical Project Using Spark Streaming

  • Kafka & Spark, Zookeeper & Yarn Availability Test

실시간 데이터 파이프라인, 왜 배워야 할까?


실시간 데이터 파이프라인 구성을 통해 신속한 분석과 의사결정을 지원하는 것은 선택이 아닌 필수입니다.

  • 실시간 개인화 마케팅 & 추천

  • 실시간 트렌드 분석

  • 실시간 보안 위협 감지 및 대응



특히 AI가 기본이 된 요즘에는 AI를 활용한 실시간 추천, 감지, 번역 등 무궁무진한 사례가 존재하며 이런 아키텍처 구현을 위해 점점 더 실시간 데이터 파이프라인이 요구되고 있습니다.


그래서 준비했습니다.

가장 인기있는 Streaming 처리 조합 중 하나인 Kafka + Spark 기반의 실시간 파이프라인

Kafka & Spark 은 기본부터 차근차근히, 파이프라인 구현을 넘어 아키텍처 관점에서의 설계 방법까지 준비했습니다.

이 강의의 특징

📌 로컬 머신 위 단일 구성은 No! 대세는 클라우드입니다. AWS Cloud를 활용합니다.

📌 CI/CD는 기본이죠? github Actions와 AWS Code Deploy를 통해 CI/CD를 구성합니다.

📌 기본부터 천천히, 하지만 실습과 과제를 통해 강의 내용이 내재화가 될 수 있도록 도와드립니다.

📌 서버 클러스터 구성부터 실시간 파이프라인 구성 및 가용성 테스트까지 All in One 구성

👍 이런 분들께 추천해요

실시간 데이터 파이프라인을 배우고 싶어요.
데이터 파이프라인에 관심은 있지만 실시간 처리는 경험해보지 못한 분

DataLake 를 알고싶어요.
Cloud 위에 구축되는 DataLake가 어떻게 구현되는지 배우고 싶으신 분

아키텍트로 성장하고 싶어요.
인프라 설계부터 코드레벨까지 대용량 처리가 가능하면서 견고한 아키텍처 구현이 궁금하신 분

수강 후에는

  • Kafka Broker 서비스에 대한 기본 원리 이해, 가용성 보장을 이해하고 이를 기반으로 Broker 서비스를 다룰 수 있게 됩니다.

  • Kafka Producer/Consumer 의 기본 원리와 고급 옵션까지 이해하고 대용량 환경에서 성능과 정합성간 Trade-off 이해를 통해 견고한 Application을 작성할 수 있게 됩니다.

  • Spark 이 성능을 발휘할 수 있는 조건에 대해 이해하고 성능을 최적화할 수 있는 기법을 기반으로 Application을 작성할 수 있게 됩니다.

  • AWS S3, Glue, Athena 등 여러 서비스와 Spark 서비스와의 연계를 통해 파이프라인의 다양성을 이해할 수 있습니다.

그래서, 어떤 내용을 다루나요?


  1. 이제 대세는 클라우드입니다. EC2 서버를 이용해 실전과 같이 클러스터를 구성해봅니다.

  2. Kafka & Spark은 기본부터 천천히 배웁니다.

  3. AWS의 S3, Glue, Athena 서비스를 통해 Datalake on AWS의 기본 개념을 배웁니다.



파이프라인은 수집부터 활용까지 구분해 볼 수 있습니다.

각각의 단계마다 어떤 도구를 어떻게 사용하는지, 어떻게 연계 되는지를 명확히 알아야 합니다.

따라서 Kafka 와 Spark을 단순히 배우는데 그치지 않습니다.

최종적으로 실제 파이프라인을 구축해보고

그 과정에서 CI/CD, 가용성 테스트, 문제 해결과 성능향상 등의 방법을 배웁니다.

커리큘럼

  1. 데이터레이크 개념


  • Lambda

  • Kappa Architecture

  • 파이프라인 설계

  1. Kafka 기본


  • Broker

  • Kafka Producer

  • Kafka Consumer

  1. 모니터링

  • UI For Apache Kafka

  • Prometheus

  • Grafana

  1. Apache Spark 기본

  • Spark Cluster

  • Spark SQL

  • Spark Streaming

  1. 성능향상 Tip

  • 성능향상 Checklist

  • Trouble Shooting

  • Spark Monitoring

  1. 가용성 테스트

  • Zookeeper Cluster

  • Kafka Broker

  • Spark Cluster


이런 내용을 배웁니다.

파이프라인 설계

실시간 데이터 파이프라인 구성을 위해 선택 가능한 도구들의 조합.

그리고 실습을 위해 선택하는 Kafka & Spark의 데이터 흐름을 이해하고 구현해봅니다.

CI/CD: Github Actions + Code Deploy

CI/CD 는 기본중의 기본.

로컬 git → Github Repository 연동 후 자동 배포가 될 수 있도록 Actions + Code Deploy 조합을 활용합니다.

Kafka Web UI

UI For Apache Kafka 를 통해 Kafka를 쉽게 관리하는 방법을 배웁니다.

Prometheus + Grafana

모니터링 파이프라인 대세.

Prometheus + Grafana 조합을 통해 Kafka 를 모니터링하고 더 나아가 Spark Streaming 의 LAG 모니터링 방안을 배웁니다.

Kafka Source + Spark Streaming

Kafka + Spark Streaming 조합을 통해 실제 파이프라인을 구현해보고 이를 바탕으로 Dashboard를 시각화합니다.

AWS Athena

AWS Athena 서비스는 서버리스 쿼리 서비스입니다. 이 서비스를 활용해 Spark Streaming의 처리 결과를 직접 확인해봅니다.

Python Dashboard

구현한 실시간 데이터 파이프라인을 이용해 Dashboard로 시각화하고 파이프라인의 흐름을 이해합니다.

가용성 테스트

최대한 실제와 같은 아키텍처 구현을 통해 견고한 아키텍처를 구현해보고 가용성 테스트 진행합니다. Kafka, Spark, Yarn Cluster 의 가용성을 이해하고 확인합니다.

Ansible을 이용한 Infra 셋업 자동화

이 모든 것을 다 만들기에 해야할 것이 많지 않냐구요?

맞습니다. 매우 많습니다.

설치할 라이브러리도 많고 이것저것 설정해줘야 할게 아주 많습니다. 뭐 하나 잘 안맞으면 오류가 나죠 🤬

하지만 여러분들은 실시간 파이프라인 구현이라는 중요한 내용에만 주목해주시면 됩니다.

Infra 구성과 각종 셋업은 미리 준비된 Ansible Script를 통해 자동화가 진행됩니다.

Ansible Script는 아래 github 주소에서 미리 볼 수 있습니다.

https://github.com/hjkim-sun/datalake-ansible-playbook-season1


여러분들은 위 github repository 내용을 clone하여 셋업 과정을 쉽게 진행하게 됩니다.

🚨실습 전 참고해 주세요!

Kafka Client(Producer/Consumer)는 Python 으로 작성합니다.


Python Kafka Library 는 여러 종류가 있으나 그 중 가장 성능이 좋은 Confluent Kafka Library를 사용합니다. Confluent Kafka 는 Java 못지않게 높은 성능을 보장하는 도구로써 Python 을 통해 Producer/Consumer를 작성하는 방법을 배웁니다.


Spark 언어 또한 Python으로 작성합니다.


Spark Application을 작성할 때 가장 성능이 좋은 언어는 Scala 입니다. 그러나 Spark 을 위해 별도로 Scala 언어를 배우기에는 분명 부담이 있습니다. Python 언어만큼 대중적이지 않고 딥러닝/AI 관련 라이브러리도 상대적으로 적다는 단점이 있습니다. 그래서 현업에서는 Python을 이용해 Spark 프로그램을 개발하는 경우가 많습니다. 특히 딥러닝/AI 연동을 고려한다면 Python 언어로 작성하는 것은 훌륭한 대안이 될 수 있습니다.

🚨AWS 예상 실습 비용

실습은 AWS Cloud 에서 진행되며 실습 비용이 별도로 발생합니다.


한 달 동안 약 40시간 사용했을 때 약 4만원 정도 AWS 비용 발생합니다. (환율 1,430 기준)

실습 비용은 대부분 EC2(컴퓨팅 서비스)에서 발생하므로 실습&과제 후 꼭 서버 인스턴스를 중지해주셔야 합니다. 그러나 그 외 비용(서버 인스턴스에 연결되어 있는 볼륨(EBS)과 EIP)의 경우 서버 인스터스를 중지하더라도 비용이 발생합니다. 따라서 완강을 빨리 하실수록 AWS 실습 비용은 감소합니다.


서버를 모두 중지해놔도 서버 볼륨 비용으로 인해 한 달 약 3만원 정도 발생합니다.

따라서 똑같이 40시간을 사용해도 한 달이 아닌 두 달 동안 사용하신다면 3만원이 추가되어 총 7만원 정도의 AWS 요금이 발생하게 됩니다. 따라서 가급적 완강을 빨리 하시기를 추천드립니다.

아래 내용은 배우지 않습니다.


  1. Java 기반의 Producer/Consumer 개발

  2. Kafka Connect (Season2 예정)

  3. Schema Registry (Season2 예정)

  4. Kafka Streams

  5. KSQL



  1. 머신러닝 및 딥러닝

  2. Open Table Format (ex. iceberg) (Season2 예정)

  3. Scala 기반의 Application (pyspark으로만 작성합니다)

커뮤니케이션

여러 도구와 연계하는 작업이 많은 강의의 특성상 궁금한 내용 또는 예상치 못한 오류가 생기는 경우 Q&A 게시판만으로 의사소통이 어려울 수 있습니다.

(경험상 질문 등록되면 제가 답변을 달고 재확인 되기까지 3~4 일 정도 소요되는 것으로 보입니다)


이런 의사소통의 불편함을 줄이고 수강하신 분들에게 끝까지 고품질 서비스를 제공해드리기 위해 디스코드 채널을 운영하고자 합니다.

https://discord.gg/etSxQQf5


강의에 대한 내용이어도 좋고, 아니어도 좋습니다. 사소한 얘기를 나누어도 좋습니다.

원활한 커뮤니케이션을 위한 곳이니 편하게 입장해 주세요

수강 전 참고 사항

실습 환경

  • [OS] 대부분의 실습은 AWS에서 진행합니다. 따라서 Window/MacOS 상관없이 수강 가능합니다.

  • [성능] 높은 CPU/Memory 스펙을 요구하지 않습니다. 일반적으로 사용하는 노트북/데스크탑이면 충분히 수강 가능합니다.

  • [기타] 인터넷이 되는 환경이면 얼마든지 수강 가능합니다. 그리고 AWS Cloud 비용 결제 가능한 신용카드가 필요합니다.

학습 자료

  • 강의 1-2 에서 제공하고 있습니다.


필수 사전 지식 사항

  1. 파이썬 기본 지식


    기본적인 자료구조와 if/for/while 등 기본적인 문법. 그리고 함수를 작성할 수 있을 정도의 실력

  2. 리눅스 기본 명령어


    대부분의 Infra 작업은 Ansible 자동화 도구를 통해 진행됩니다. 그러나 리눅스의 기본 명령어는 알고 있어야 수강 가능합니다. (vi 편집기, cd/mv/rm 등의 기본 명령어)

  3. SQL


    기본 sql 지식 (SELECT, WHERE, JOIN, GROUP BY, ORDER BY 등) 알고 있으면 따라오시기에 훨씬 수월합니다.
    (어려운 SQL은 없습니다)

권고 사전 지식 사항

  1. 도커 컨테이너
    컨테이너를 이용해 모니터링 도구를 셋업합니다. 컨테이너의 원리를 알고 있으면 도움이 됩니다.

  2. git
    CI/CD 를 위해 git 을 활용해 직접 코드 배포까지 진행합니다. 사용법은 모두 차근차근 설명드리지만 알고 있으면 더욱 좋습니다.

  3. 파이썬 Class 이해
    실습으로 진행되는 대부분의 파이썬 프로그램들은 Class 구조를 통해 구조화가 진행됩니다. 따라서 Class 및 객체지향에 대한 이해가 있으면 실습하기에 수월합니다
    (몰라도 상관없어요. 다 설명합니다)

Recommended for
these people

Who is this course right for?

  • Those who want to learn Kafka & Spark

  • Those who want to learn real-time pipeline implementation

  • Those who need to develop various knowledge and skills as a data engineer

Need to know before starting?

  • Basic concepts of Python

  • Basic SQL knowledge (Filter, GroupBy, OrderBy level)

  • Able to use basic Linux commands

Hello
This is

1,061

Learners

54

Reviews

185

Answers

4.9

Rating

2

Courses

안녕하세요.

데이터 & AI 분야에서 일하고 있는 15년차 현직자입니다.

정보관리기술사를 취득한 이후 지금까지 얻은 지식을 많은 사람들에게 공유하고자 컨텐츠 제작하고 있습니다.

반갑습니다. :)

Contact: hjkim_sun@naver.com

Curriculum

All

113 lectures ∙ (28hr 23min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

11 reviews

4.8

11 reviews

  • 램쥐뱅님의 프로필 이미지
    램쥐뱅

    Reviews 17

    Average Rating 4.9

    5

    100% enrolled

    기대 이상으로 잘 정리된 커리큘럼과 내용에 많은 것을 배우고 갑니다. 꼼꼼하게 강의를 만들어 주셨다는 느낌을 많이 받았습니다 후속 강의가 기다리고 있겠습니다 감사합니다

    • 김현진
      Instructor

      램쥐뱅님 수강평 감사합니다. 저도 커리큘럼을 만들면서 어떻게 하면 기초부터 탄탄히 알려드리면서 Kafka 부터 spark 까지 연결할 수 있을지 고민이 많았어요. 덕분에 강의 기획부터 완성까지 1년이 걸렸지만 이렇게 알아봐주셔서 뿌듯합니다 ^^ 감사합니다. 지금 준비하는 후속 강의는 season2는 아니지만 알찬 내용으로 구성해서 후회하지 않게 진행해보겠습니다 😀

  • 역시자네야님의 프로필 이미지
    역시자네야

    Reviews 1

    Average Rating 5.0

    Edited

    5

    10% enrolled

    믿고 보는 현진 선생님. 강추합니다. airflow 강의로부터 알게 되었는데 다른 강의들과는 다른 차별점이 많습니다. 개념부터 아키 설계까지, 사용 이유와 원리를 설명해주시는게 좋았어요. 실습도 편-안 그자체입니다. 답변까지 항상 친절하게 달아주십니다 아직 수강 초기이지만 완강해보겠습니다~ 날씨가 더운데, 건강 잘 챙기세요.

    • 김현진
      Instructor

      안녕하세요 역시자네야님 airflow에 이어서 찾아주셔서 너무 감사드려요! 저는 스스로 뭔가를 배울 때 피상적으로 사용법만 익히고 원리를 파악하지 않으면 금방 까먹고 이해가 가질 않더라구요. 다른 분들도 그럴거라 생각해서 내가 이해한 원리를 전달하기 위해 강의 시간을 많이 할애하는 편입니다. 그래서 ppt도 만들어야 하고 과제도 만들고 있어서 좀 힘들지만 덕분에 알아봐주셔서 감사드려요 :) 다음 강의도 잘 준비해볼께요 💪

  • :찬영님의 프로필 이미지
    :찬영

    Reviews 1

    Average Rating 5.0

    Edited

    5

    100% enrolled

    굉장히 완성도 높은 강의였습니다.. 감동 그 자체 보통 강의듣다 보면 똑같이 따라 했는데 왜 안돼? 이런 상황 적지 않을텐데, 그런 거 없이 스무스하게 완강했습니다. 전 강의 선택함에 있어 제일 먼저 커리큘럼을 보고, 가격과 강의시간을 비교해봅니다. 그동안 가격에 비해 너무 수박 겉핥기 식의 강의들이 많았는데, 현진님의 kafka&spark 강의를 듣는다면,, 추후 프로젝트에서도 충분히 완성도 높은 결과물 뽑을 수 있다고 장담합니다! 많이 배웠습니다 감사합니다! (시즌 2는 언제쯤 나올라나요..?)

    • 김현진
      Instructor

      안녕하세요 찬영님! 감동스러운 수강평 감사드립니다. 완강하셔서 잘 아시겠지만 내용이 아무래도 단순 기능을 알려주기보다 인프라 구성부터 nginx 구성, docker 셋팅, 가용성테스트까지 다양한 내용을 포함하다보니 쉽게 진행이 되지 않을까 염려를 많이 했습니다. 그래서 ansible-playbook으로 최대한 표준화하고 강의 촬영을 마친 이후에도 직접 강의를 따라 해보면서 혹시 잘 되지 않는 부분이 있지 않은지 직접 확인도 했습니다. 그리고 혹시나 안되시는 분들을 위해 원활한 의사소통 대비 디스코드 방까지 준비했습니다. 결국 강의를 올리기까지 꽤 많은 시간이 걸렸지만 최대한 완성도 있는 강의를 만들고자 노력했습니다. 찬영님이 알아봐주신 것 같아 그간의 고생이 씻겨내려가는 것 같습니다 ^-^ 제가 더 감사드립니다.. 그리고 시즌 2는 시작하기 전에 생성형 AI 관련하여 강의를 먼저 하나 준비하고 있어서 조금 더 늦을 수도 있을 것 같습니다. 그래도 힘내서 준비해볼께요 !

  • Haul님의 프로필 이미지
    Haul

    Reviews 2

    Average Rating 4.0

    3

    60% enrolled

    중요하지 않은 원리 구조에 대한 부분이 너무 많고 설치 셋팅이 많음. 핵심은 간략... 현업에서 적응하려면 힘듬

    • 김보인님의 프로필 이미지
      김보인

      Reviews 3

      Average Rating 5.0

      5

      12% enrolled

      아직 강의를 다 보진 않았지만, AWS 환경 구성까지만 봐도 전체 강의의 퀄리티를 짐작할 수 있겠네요.. 개인적으로 데이터 분야가 아니더라도, 아키 업무를 하시는 분들도 충분히 도움이 될 만한 강의입니다. 열심히 해서 완강하도록 하겠습니다!!

      • 김현진
        Instructor

        안녕하세요 김보인님 네 이 강의는 단순히 kafka 프로듀싱해보고, 컨슈밍 해보거나, spark 한번 돌려보는게 끝인 강의는 아닙니다. 특히 kafka & spark은 클러스터 구조라서 원리를 이해하지 않으면 올바른 코드를 작성할 수 없습니다. 원리를 이해하려면 클러스터 구조를 이해해야 하고, 클러스터 구조를 이해하려면 왜 3대씩이나 구성해야 하는지, 인프라는 이러저러하게 구성해야 하는지 알아야 할 수 밖에 없어요. 그래서 인프라부터 차근차근 설명드리면서 구성해보는 강의입니다. 아키를 익히는데에도 많은 도움이 되셨다니 저도 기분이 좋네요 :) 화이팅입니다!

    $102.30

    hyunjinkim's other courses

    Check out other courses by the instructor!