데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      [Kafka KRU] 2023 스터디 모임 후기 (feat. 실전 카프카 개발부터 운영까지)

      c91052137 23.11.14
      1,809 2 0
      DEVOTEE 요약
      Kafka KRU에서 주최한 2023 kafka 스터디 활동에 대해 리뷰한 내용입니다. 이 포스트에서 그는 처음으로 카프카에 대한 관심이 생겨 공부하게 된 과정, 카프카의 기본 개념과 특성, 그리고 스터디 진행 방식과 그 경험에 대해 소개하였습니다. 또한 스터디를 통해 습득한 지식을 확장하고 적용하는 과정에서 얻은 가치와 커뮤니티 참여의 중요성을 강조하며 글을 마무리했습니다.
      DEVOTEE 추천 블로그

      안녕하세요 저는 데이터 엔지니어링을 공부하고 있는 취업준비생 추태욱입니다. 😊

      Kafka KRU에서 주최했던 2023 kafka 스터디 후기를 간략하게 정리해볼까합니다.


      0. 스터디를 접하게된 경로

      처음 접하게 된 경로

      올해 7월에 데이터 엔지니어 과정을 들은 뒤, kafka에 대해 관심이 생겨 여러 책과 인강으로 홀로 공부하고 있는 중이였습니다.

      카프카 관련 서적으로 <실전 카프카 - 개발부터 운영까지>라는 책을 접하게 되었습니다.


      책에 대한 서칭을 해보다 마침 책의 저자 분(고승범님)께서 KafkaKRU의 스터디를 모집하고 있다는 게시글을 보게 되어 스터디를 신청하게 되었습니다.


      [Kafka 모임 공지 캡처]



      1. Kafka 개요

      카프카를 처음 접하시는 분들을 위해 간단히 Kafka를 설명 드리자면

      • Kafka는 이벤트 처리 시스템 중 하나인 분산 메세지 큐 (비동기) 방식 이벤트 스트리밍 플랫폼입니다.

      • 사전에 정해놓은 topic에 따라 메세지들을 처리하는 모델이라고 보시면 될 것 같습니다.

        한 줄로 요약하면 kafka는 발생하는 이벤트들을 topic에 따라 분류하고 수집/저장/처리를 해주는 플랫폼이라고 할 수 있겠습니다.

        • 이벤트 스트리밍 처리 시스템이란?

          데이터베이스, 센서 및 모바일 장치와 같은 이벤트 소스에서 발생하는 실시간 데이터를 이벤트 스트림 형태로 캡처하고 저장/처리하는 방법

        • 분산 메세지 큐잉이란?


          message queue 서버를 별도로 두고 application은 message queue 서버에 대한 client 로서 pub-sub 모델로 데이터를 읽고 쓰는 방식

        • pub-sub 모델?

          publisher(공급자), subscriber(구독자) 모델로 publisher는 이벤트 데이터를 공급하고, subscriber는 구독한 이벤트를 수신

        • consumer - producer?

          Topic 을 중심으로 producer 라고 하는 publisher 와 consumer(group) 이라고 하는 subscriber 로 데이터를 관리하고 처리


      Kafka 개념

      • Kafka의 개념을 쉽게 이해해보고자 kafka를 우체국으로 표현(비유)해 보았습니다.


      1. 나라별로 각 국에서 동시다발적으로 편지(이벤트,events)를 보내옵니다. 편지 봉투 앞부분에 꼭 나라명(토픽,topic)을 붙이고 편지 봉투 안에 편지지(contents)가 들어있습니다.

      2. 각 나라마다 개별 우체통(producer1,producer2,…)이 존재합니다. 편지들은 우체통(producer)에 모인 뒤 특정 일시에 우체국(kafka)으로 발송됩니다.

      3. 우체국(kafka)은 우체통들의 편지지를 봉투 앞 부분에 적힌 나라별(토픽,topic)로 보관합니다. 이 때 보관하는 공장(브로커,broker)들이 있습니다. 공장마다 적재하는 편지보관함(partitioin)들이 부서별로 나누어져 있습니다. 예를 들면 공장 1동-1부서 (broker1-partition1) 입니다.

      4. 공장(broker)은 들어온 편지들을 나라(topic)에 따라 편지보관함(partition)에 적재하고 잃어 버리지 않게 다른 공장에 똑같이 복제(replicate)해놓습니다.

      5. 편지를 보고 싶어하는 사람들(consumer)은 받고 싶은 편지의 나라(topic)을 우체국(kafka)에 전달하면 우체국(kafka)은 해당 나라(topic)의 편지들을 가지고 있는 공장(broker)부서와 연결해줍니다. 예를 들면 A라는 사람이 “대한민국” 나라의 편지가 보고 싶다고 우체국에 말하면 대한민국 편지를 가지고 있는 공장 1동-1부서에 연결됩니다.

      6. 공장은 연결된 사람들(consumer)에게 편지(events)가 들어올 때마다 바로바로 전송해줍니다.

      7. 공장이 예상치 못하게 중단되거나, 공장이 늘어나버리면 어떻게 관리해야 할까요? 공장들을 전체적으로 관리해주는 공장관리자(zookeeper)가 있습니다!


      단순하게 표현하면 kafka는 위 그림과 같은 구조겠네요!


      Kafka의 특징

      • 빠른 데이터 수집이 가능한 높은 처리량

      • 이벤트 처리 순서 보장

      • 적어도 한 번 전송 방식 : 멱등성(idempotent)

        • 멱등성 : 동일 작업을 여러 번 수행하더라도 결과가 달라지지 않는 현상

        • At Least Once 보장

      • 강력한 파티셔닝

        • 토픽을 여러 개로 분할 = 수평 확장 가능

      • 병목 문제 해결, 모니터링, 스냅샷 기능 제공

      • Kafka와 연계할 수 있는 플랫폼 (실시간 스트리밍형 플랫폼)

        • 기초적인 예시 : 쇼핑몰 플랫폼, IoT 플랫폼

        • 실제 사용처 : 우버, 넷플릭스, 트위터(현재 이름 : X)

      • Kafka 실습 해보기 : 고승범님 공유 링크


      2. kafka 스터디 진행 방식

      온라인 Zoom으로 조별 발표가 이루어졌고, 마지막 4주차엔 오프라인으로 조별 발표가 이루어졌습니다.

      <조별 발표>

      4주 동안 고승범님의 저서 : <실전 카프카 개발부터 운영까지>를 바탕으로 기술 공부했습니다.

      4개의 조가 한 주에 한 번씩 발표를 맡아 진행했습니다.

      책에서 정리한 내용 + 추가적으로 스터디한 부분을 발표해주셨습니다.

      Notion으로 정리해서 발표하신 분도 있고, PPT로 만들어 발표하는 등 자유롭게 발표를 진행했습니다.

      이 후엔 질의응답 시간도 가졌습니다. (개인적으로 이 시간이 제일 좋았습니다.)


      <챕터별 퀴즈 시간>

      발표 시간 이 후에 책의 챕터별로 고승범님이 직접 퀴즈를 내주셨습니다. 고득점자에겐 따로 선물도 챙겨주셔서 더 몰입해서 Kafka를 공부했던 것 같습니다.

      • 퀴즈 예시

        • Q : 주키퍼 구성의 tickTime이 1000, initLimit이 40, syncLimit이 5일 때, 팔로워가 주키퍼 리더에게 연결할 수 있는 시간 제한은 얼마인가?

        • A : 40sec

          • tickTime : 한번 작업할 수 있는 최대 시간

          • initLimit : 횟수

          • syncLimit : 싱크가 맞아야 하는 최소 시간

      <질문 게시판>

      Notion에 질문 게시판에 질문을 올리면 저자님 혹은 스터디원 분들이 빠르게 답변을 올려주셨습니다.


      <비공식 스터디>

      위의 공식적인 스터디 외에 스터디 조원끼리 각자 스터디 방식을 꾸려나가는 방식이라 조마다 각자의 스타일로 스터디를 진행했습니다.

      저희 조는 커뮤니티 앱인 slack을 위주로 질문을 올리고 답하는 형식으로 스터디를 진행했습니다.




      3. 마지막으로 하고 싶은 말

      굳이 Kafka가 아니더라도 모든 공부에는 공통적으로 요구되는 것들이 있습니다.

      그건 “호기심”과 호기심을 충족시킬 “나만의 해답”입니다.


      공부는 크게 세 단계로 나누어질 수 있습니다.

      1. 처음 지식을 접하는 단계 (호기심)

      2. 해당 지식이 왜 발생하게 되었는지(유래,배경), 사용하는 목적이 무엇인지 (이유)

      3. 내가 아는 지식과 다른 점은 무엇인지, 어떻게 활용하면 좋을지 (확장,적용)

      공부는 결국 혼자 해야 합니다. 하지만 1번, 2번의 단계에서 대부분 멈춰버리곤 합니다.

      3번까지 완전하게 이루어내기 위해선 분명 “먼저 공부한 사람들”의 힘이 필요합니다.

      Kafka가 어려워서 배울 엄두를 못 내고 있거나 공부하다 의욕이 떨어져 버린 경우 커뮤니티에 참여해보세요. 그리고 다른 분들에게 도움을 받아보세요!! 분명 도움이 될 거에요.


      바쁜 시간 내서 봐주셔서 감사합니다! 좋은 하루 되세요!

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      c91052137 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기