카카오 면접관과 함께하는 워크플로우 기반의 대용량 트래픽 처리 기법
트래픽이 갑자기 폭증을 해버렸어요.. 서버의 부하와 모듈들이 모두 다운되어버렸는데 어떻게하죠?? 🤔
❗이 내용은 실제 대화 내용입니다.❗
😄 Hong : 혹시 워크플로우 고민하고 있는데 알고 있어??
😁 Kakao : ㅇㅇ 알지 Airflow 같은거 말하는건가?? 이제 드디어 워크플로우 툴에 관심이 생겼구나. 스승은 기쁘다.
😁 스타트업 개발자 : 애 그거 아닌거 같은데, 그거 말고 클라 레벨에서의 작업 관리 말하는거 아니야?
😄Kakao : 아 Netflix Conductor 같은거 말하는거구나 나 그거 자주 써
😄 Hong : 그니깐 나 요즘 그거 사용하는 중인데, 이거 물건이더라고
😄Kakao : ㅇㅇ 그거 하면 복잡한것들 싹다 추상화?? 느낌으로 처리 할 수 있어서 솔직히 개꿀이야 아는 사람 별로 없을텐데 많이컸네 어케 알았지
😁 스타트업 개발자 : 그러게 애 원래 뉴비 그 자체였는데
😄Kakao : 이거 쓰면 그 갑자기 이벤트 같은걸로 인해 트래픽 터져도 이벤트 기반이라서 되게 안정적이야. 나 회사에서는 다른거 쓰기는 하는데 솔직히 알면 진짜 좋음
😄 Hong : 알면 알려줬어야지 ㅡㅡ 제자 키우기로 하지 않았나?? 이걸로 같이 만들어 보실 분
😄Kakao : 난 ㄱㄱ 솔직히 카카오 다니는 사람도 잘 모르는 경우 많은데 왜 모르나 싶기도 했음 내가 써봤으니 참여함, Temporal이라는 오픈소스도 있어
😁 스타트업 개발자 : 난 귀찮으니 태클만 검
😁 Toss : 오 뭐야 이거?? 대충 사이트 봤는데 Temporal이라는것도 재미있겠는데?? 도입하면 괜찮을꺼 같아 강의 만들면 사서 봄
😄 Hong: ㅋㅋㅋㅋㅋ 초대 해줄게, 한번 만들어보자
혹시 EDA, MSA 이런 아키텍처의 고질적인 문제, 안전성을 위한 구현 방법 무엇이 있을까요?? 🤔
단순히 이벤트를 받아서 처리를 한다?? 이 과정은 많은분들이 이미 알고 다루고 있는 개념입니다. 근데 이 이벤트가 실패하면 어떻게 할까요?? 아니면 우리가 길이가 긴 코드 로직은 어떻게 관리를 할까요??
답은 워크플로우 오케스트레이션에 있습니다. 비지니스 로직 아니면 데이터 가공을 모듈화 및 이벤트화를 할 수 있고, 이를 통해 트래픽이 폭증해도 비지니스 로직을 EDA 기반의 코드로 구현을 할 수 있습니다. 또한 이를 모니터링하고 안전하게 재시도하는 과정까지 이 일련의 모든 과정이 하나의 플랫폼을 통해 모두 지원이 된다면 어떨까요?? 🤷
현대적인 MSA, EDA 기반의 아키텍처를 보완하기 위한 방법과, 비지니스 로직을 이벤트화 하는 방법 또한 안전하게 관리하는 방법 저와 시니어 개발자들이 모여서 함께 노하우를 모두 담아서 공개합니다.
이론만 나열하는 지루한 강의나 아니라, 동작하는 과정을 함께 살펴보면서 워크 플로우 기반의 설계에 대해 핵심 기능을 완벽하게 정복하는 실전형 가이드로써 준비해 보았습니다. 🚀
이 강의의 특징 ⚡
📌 MSQ(Kafka), CDC(MySQL), Temporal(workflow) 모든것을 다루는 강의
* 단순히 하나의 플랫폼을 활용하지 않습니다. EDA, MSA를 구축하는데이 있어서 필수적으로 사용되는 추가적인 플랫폼들도 함께 활용함으로써 현실적인 플랫폼 활용법에 대해서 학습 하실 수 있습니다.
📌 실제 시니어 개발자가 실무에서 도입하여 사용하는 플랫폼
* 처음에 있는 대화 내용처럼 Kakao를 다니는 개발자들도 잘 모르는 플랫폼에 대해서 학습하시며 그에 따른 차별점을 가지실 수 있습니다.
📌 50개 가량의 다이어그램, 강의 요약 파일 풍부한 강의 구성
* 단순히 말만으로 설명하는 강의가 아니라, 실제 소스코드, 다이어그램, 시퀀스그램, 추가로 강의 내용에 대한 간단한 요약본 파일도 제공해 드리고 있습니다.
📌 주니어에서 시니어로 가는 지름길..! 시스템 디자인
* EDA, MSA등 현재 현업에서 각광받는 아키텍처에 대한 큰 단점에 그에따른 안정성을 유지하는 디자인에 대해서 학습 하시게 됩니다.
* Database를 활용 하였을 떄, 실시간 데이터 처리 기법에 대해서도 학습하십니다.
강의에서는 이런 내용을 다루고 있어요. 🧩
* 실시간 데이터 동기화 개념과 필요성
* Kafka + Debezium을 통한 CDC 패턴
* Docker, 경량 이미지를 활용하여 환경을 구축하는 방법
* 우리는 왜 Virtual Machine 대신 Docker를 애용할까??
* Kafka의 기본적이면서 핵심적인 개념
* Kafka의 Producer & Consumer 기본 개념
* Kafka에서의 메시지 Delivery Guarantee
* 실시간 동기화의 핵심 CDC 기본 개념과 필요성
* MySQL Binary Log 기반의 CDC는 왜 효과적일까
* Binary Log 기반의 CDC 구현 플랫폼 Debezium
* 안정적인 운영 서버를 위한 workflow
* Temporal의 핵심 개념 Workflow와 Activity
* Spring Boot, Kotlin을 통해 구현하는 Kafka, 워크플로우
* MySQL 테이블 생성과 Kafka Connector 설정방법
이런 분들에게 추천드려요 👨🏫
🎯 비전공자 개발자이지만 대용량 트래픽 설계에 도전하고 싶은 분
🎯 Kafka, CDC, Temporal에 대해 들어봤지만 구체적인 설계 방법을 몰랐던 분
🎯 스타트업/대기업의 트래픽 확장성과 장애 복원력을 고민하는 백엔드 개발자
🎯 단순 마이크로서비스를 넘어, 워크플로우 수준의 서비스 설계를 배우고 싶은 분
같이 보면 좋은 자료 🚀
이 강의를 만든 사람 🤭
비전공자로 시작하였고, 현재는 판교에서 플랫폼 백엔드 개발자로 근무하고 있는 개발자
현실적인 개발 방식과 개발론을 알려드리는 것이 목표이고, 혼자가 아닌 주변 능력있는 지인들과 함께 강의를 만드는 지식 공유자
열심히 활동한 덕분에 인프런에서 인터뷰 진행해 본 지식 공유자
인서울 대학에서 컴퓨터 공학을 전공한 전공자
제 1금융권을 거쳐 현재는 카카오에서 백엔드 및 데이터 엔지니어로 개발하고 있는 개발자
Hong과 함께 다양한 강의를 만들고 현실적인 지식과 환경을 제공하는데 이바지하고 있는 개발자
유일하게 지금 이 팀에서 Workflow 써본 경험이 있는 귀한 인재
참고 사항
실습 환경
java
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
docker, docker-compose
Docker version 28.0.0, build f9ced58158
Docker Compose version 2.33.1
IDE
IntelliJ IDEA
OS
Apple M3 Air
여러분들의 커리어를 준비해나가기 위한 오픈 채팅방을 운영하고 있습니다. 많은 관심 부탁드려요!
채팅 방 링크 : https://open.kakao.com/o/ggBVZsai