Thumbnail
개발 · 프로그래밍 백엔드

EDA 기반 Microservice 구현 (with Hexagonal, DDD) 대시보드

(4.8)
8개의 수강평 ∙  308명의 수강생
99,000원

월 19,800원

5개월 할부 시
지식공유자: han jeong heon
총 40개 수업 (10시간 8분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

중급자를 위해 준비한
[백엔드] 강의입니다.

도메인 주도 설계, 헥사고널 아키텍처, 이벤트 기반 아키텍처를 모두 적용한 마이크로서비스 개발 과정을 보여줍니다.

✍️
이런 걸
배워요!
마이크로서비스 개발
헥사고널 아키텍처 적용
도메인 주도 설계 개발
이벤트 주도 아키텍처 적용
MSA

강의 하나로 완성하는 
마이크로서비스 구현 아키텍처 3대장!

실제 코드로 보고 배우는
MSA 핵심 3가지 아키텍처 

(1) 헥사고널 아키텍처 (2) 도메인 주도 설계 (3) 이벤트 기반 아키텍처를 통해 기술에 유연하면서도 비즈니스 로직에 집중해 유지보수성이 높으며, 의존성이 낮아 독립적으로 배포할 수 있는 마이크로서비스 구현에 대해 알아봅니다.

앗, 혹시 내 얘기 아닌가요?

😥

MSA의 대략적인 개념을 이해하긴 했는데, 막상 어떻게 마이크로서비스로 구현해야 할지 막막해요

🙄

도메인 주도 설계가 헥사고널, EDA와 관련이 있다고 하던데 구현시 어떻게 적용해야 하나요? 

😵

도메인 주도 설계 강좌를 듣고 도메인 모델을 설계하긴 했는데 실제로 구현은 어떻게 해야 하는지 막막하네요.

MSA 구조에서 가장 많이 거론되는 도메인 주도 설계, 헥사고널 아키텍처, 이벤트 기반 아키텍처 등에 대해 많은 개발자들이 개념적/이론적으로 많이 접하고 있습니다. 하지만, 막상 실제로 어떻게 적용할까를 생각하면 막막하기 그지없기 마련입니다.

본 강의는 MSA 개념과 아키텍처/설계 방법을 설명했던 이전 강의를 마무리하는 실습 중심 강의로 

이전 강의에서 정의한 위의 실습 아키텍처 및 설계 모델을 기반으로 DDD, 헥사고널 아키텍처, EDA를 어떻게 효과적으로 접목할 수 있을지에 대해 실제 코드로 구현하고 설명합니다. 또한 마지막에는 EDA 구현의 현실적 문제인 분산 트랜잭션을 위한 SAGA 패턴도 적용해 봅니다.

마이크로서비스 구현에서 가장 핫한 기법 3가지 🌳

도메인 주도 설계 
(Domain-Driven Design, DDD) 

비즈니스 전략도메인 패턴을 중심으로 소프트웨어 아키텍처를 구축하는 개발 방법론 

헥사고날 아키텍처 
(Hexagonal Architecture) 

도메인 중심으로 의존성의 흐름이 외부로 나가지 않도록 관리하는 아키텍처 패턴 

이벤트 주도 설계 
(Event Driven Architecuture)  

확장성이 뛰어난 애플리케이션을 생성하는 데 널리 사용되는 분산 비동기 아키텍처

 


이 강의만의 
특징을 확인하세요 📗

  • 오랜 실무자의 경험에 기반한 생생한 현장을 날 것 그대로 강의합니다. 😁
  • 헥사고널 아키텍처/도메인 주도 설계의 이상을 지향하되, 현실을 반영한 접근 방안을 제시합니다.
  • 본 강의는 개념보다는 도서대여시스템을 마이크로서비스 아키텍처로 구현하는 실습 중심으로 구성됩니다. 
  • 실제 마이크로서비스 개발에 적용되는 따끈한 현장의 기준, 판단(?) 기법들을 소개합니다.

그래서, 이런 분들께 도움이 됩니다! 🏃‍♀️

유연하고 확장성 있는 마이크로서비스 아키텍처를 도입하고자 하는 기술/설계 리더 

헥사고널 아키텍처를 마이크로서비스에 적용하고자 하는 마이크로서비스 개발자 

도메인 주도 설계(DDD) 및 구현에 관심있는 백엔드 개발자 


자, 이제 구현해 봅시다! 
마이크로서비스 개발 💻

실습 도메인의 마이크로서비스 구성도를 통해 구현 아키텍처 이해

실습 도메인의 각 마이크로서비스 별 성격, 구성 스펙, 마이크로 서비스 간의 통신 관계를 알아봅시다. 

고가용성 확장성 높은 : 이벤트 브로커

이벤트 기반 아키텍처를 구현하기 위한 필수 요소인 이벤트 브로커의 특징을 설명하고 마이크로서비스 간의 통신을 위해 활용하는 방법을 설명합니다.

헥사고널 아키텍처 구현 방향 제시

헥사고널 아키텍처의 3가지 헥사곤 유형을 설명하고 아키텍처를 적용하기 위한 스프링 부트  패키지 구조를 설명합니다.

가장 유연한 마이크로서비스 내부 구조 를 정의할 수 있는 헥사고널 아키텍처 구현

전통적인 레이어드 아키텍처(Layered Architecture)의 한계를 극복할 헥사고널 아키텍처(Hexagonal Architecture)를 도메인 주도 설계와 융합하여 구현하는 방식을 설명하고 주요 구성요소를 자세히 알아봅니다.

도메인 모델 구현

도서 대여 시스템이란 주제를 가지고 도메인 주도 설계(전술적 설계)로 모델링 한 마이크로서비스 별 도메인 모델을 설명한 다음 실제 코드로 구현해 봅니다.

이벤트 주도 아키텍처 구현

이벤트 스토밍을 통해 식별된 마이크로서비스간의 비동기 통신 관계를 정리하여 이벤트 흐름으로 설계하고 카프카(Kafka)를 활용해 구현합니다.

SAGA 구현

마이크로서비스 간의 분산 트랜잭션 문제를 해결하기 위해 대표적인 MSA 패턴인 SAGA 패턴을 카프카 이벤트 브로커를 활용하여 구현해 봅니다.

그래서, 이런 걸 할 수 있게 됩니다! 😎

  • 헥사고널 아키텍처를 백엔드 애플리케이션 개발을 위해 어떻게 적용해야 할지 알 수 있습니다.
  • 도메인 주도 설계의 주요 결과물인 도메인 모델과 헥사고널 아키텍처가 어떻게 융합되는지 이해할 수 있습니다.
  • 가장 확장성 높은 이벤트 기반 비동기 통신하는 마이크로서비스를 개발해 볼 수 있습니다.
  • 마이크로서비스 간의 핫한 이슈인 분산 트랜잭션을 위한 SAGA 패턴을 이해하고 구현할 수 있습니다.

이 강의의 
지식공유자는 💁‍♂️

23년차 개발자, han jeong heon 

  • 현 대기업 SI 소프트웨어 엔지니어
  • 다수의 대규모 차세대 프로젝트 개발방법론 및 설계방법 리딩
  • 명지대 · 서울과학기술대 SW과목 강의, 한국정보기술연구원(KITRI), LG전자 MSA과정 강의
  • 멀티캠퍼스, 한국표준협회, 한국품질협회 MSA 과정 멘토링
  • 전문 분야: 개발 방법론, 소프트웨어 아키텍처/설계/개발 기법
  • 위키북스 “도메인 주도 설계로 시작하는 마이크로서비스 개발” 저 (2022)
  • 국가평생교육진흥원 K-MOOC “Microservice 설계 및 구현” 강좌
“Microservice 설계 및 구현” 강의 개발
“도메인 주도 설계로 시작하는 마이크로서비스 개발” 저자

Q&A 💬

Q. 강의의 이론: 실습 비율은 어느 정도인가요 ?

본 강의의  이론은 조금이고 대부분 실습으로 구성되었습니다. 이론을 먼저 학습하고 수강하는 것이 바람직하며 ,이론 별로 별도의 관련 강좌를 수강해야 합니다. ^ ^;;

Q. 실무 경험이 없는 취준생 또는 비전공자도 들을 수 있나요?

클라우드 경험이 없더라도 실제 레거시 경험이 있는 중급 수준의 개발자라면 접근할 수 있는 수준입니다. 그러나 실무 경험자라 할지라도 MSA, DDD, 아키텍처에 대한 이해가 있어야 쉽게 접근할 수 있을 겁니다.  

Q. 수업 내용을 어느 수준까지 다루나요?

본 강의는 기 제시된 요구사항에 근거한 미리 정의한 아키텍처, 설계 모델을 기준으로 구현에 집중하는 강의입니다. 각 백엔드 마이크로서비스를 개발하고, 마이크로서비스 간의 이벤트 통신까지 구현합니다. 

Q. 수업은 어떤 방식으로 진행되고 어떻게 학습하는 것이 좋을까요 ?

가상의 도서 대여 시스템을 중심으로 백엔드 마이크로서비스를 하나하나 같이 구현하는 방식입니다. 수강생은 강사가 개발하는 코드를 보고 함께 개발하는 것이 가장 좋은 방식인 것 같네요. 따라할 만큼 충분히 천천히 진행한답니다. ^ ^ ;;

함께 보면 좋은 강의 📺

💾 수강 전 참고 사항

  • 강의 녹음 여건으로 인해 수강 환경에 따라 음질이 고르지 않게 느껴질 수 있습니다. 수강 전 [미리보기] 수업을 꼭 확인해주시길 바랍니다.

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
도메인 주도 설계 관심 있는 개발자
헥사고널 아키텍처를 적용하고 싶은 백엔드 개발자
아키텍처/설계에 관심 많은 중급 이상 백엔드 개발자
📚
선수 지식,
필요할까요?
java
spring
msa
ddd

안녕하세요
han jeong heon 입니다.
han jeong heon의 썸네일
  • 국내 SI업체 소프트웨어 엔지니어(SA,AA)

  • 다수의 대규모 차세대 프로젝트 개발방법론 및 설계방법 리딩 

  • 명지대, 서울과학기술대  클라우드,SW과목 강의

  • SK C&C,한국정보기술연구원(kitri), LG전자 MSA과정 강의

  • 멀티캠퍼스, 한국표준협회, 한국품질협회 MSA 과정 멘토링,스파로스아카데미 웹개발 과정 멘토링 

  • 전문분야 : 개발방법론, 소프트웨어 아키텍처/설계/개발 기법

  • 22년 , 위키북스 "도메인주도로 시작하는 마이크로서비스 개발",  저자

  • 국가평생교육진흥원, K-MOOC "Microservice 설계 및 구현 "  강좌 개발 및 강의

커리큘럼 총 40 개 ˙ 10시간 8분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 소개
섹션 1. 전체 아키텍처 구성도 및 구현전략
요구사항 및 설계과정 Review 08:37
전체 아키텍처 구성도 미리보기 07:49
마이크로서비스 별 구현전략 13:48
헥사고널 아키텍처 (도메인/애플리케이션/프레임워크 헥사곤) 13:07
섹션 2. 대여 마이크로서비스 개발(DDD+헥사고널 아키텍처)
프로젝트 생성과 패키지 구조 정의(헥사고널 아키텍처) 15:42
설계된 도메인 모델 살펴보기 06:48
내부영역-도메인모델개발(도메인헥사곤)- 비지니스 개념정의 37:52
내부영역:도메인모델 구현(도메인 헥사곤)-비지니스로직구현 30:09
내부영역:도메인모델 구현(도메인 헥사곤)-도메인모델테스트 16:25
내부영역:응용서비스 구현(어플리케이션 헥사곤)-인터페이스 정의(유스케이스) 17:07
음질관련 공지 00:37
내부영역:응용서비스 구현(어플리케이션 헥사곤)-InputPort구현,아우터 포트 정의1 20:04
내부영역:응용서비스 구현(어플리케이션 헥사곤)-InputPort구현,아우터 포트 정의2 21:37
외부영역 구현(프레임워크 헥사곤)-OR매핑 및 저장소 어댑터구현 26:20
외부영역 구현(프레임워크 헥사곤)-API어댑터 구현 14:44
API테스트 수행 13:18
섹션 3. 도서 마이크로서비스 개발(DDD+헥사고널 아키텍처)
내부영역:도메인모델 구현(도메인 헥사곤)- 비지니스 개념정의 16:23
내부영역:도메인모델 구현(도메인 헥사곤) - 비지니스로직구현&도메인모델테스트 15:22
내부영역:응용서비스 구현(어플리케이션 헥사곤) 19:13
외부영역 구현(프레임워크 헥사곤) 16:41
API테스트 수행 04:02
섹션 4. 사용자 마이크로서비스 개발(DDD+헥사고널 아키텍처)
내부영역:도메인모델 구현(도메인 헥사곤) 18:44
내부영역:응용서비스 구현(어플리케이션 헥사곤) 11:06
외부영역 구현(프레임워크 헥사곤),API테스트 수행 13:41
섹션 5. Best서적마이크로서비스 개발(레이어드 아키텍처 ,CQRS)
패키지 구조 정의: 레이어드 아키텍처 + 비지니스로직레이어 구현 12:26
데이터 엑세스 레이어/프리젠테이션 레이어 구현/API 테스트 수행 15:18
섹션 6. EDA구현(기본 Pub & Sub)
내부영역: 도메인헥사곤 (대여서비스의 도메인이벤트 정의) 미리보기 25:57
내부영역: 애플리케이션 헥사곤 구현(대여서비스) 11:00
외부영역: 프레임워크 헥사곤 구현(카프카어댑터) - 대여서비스의 Producer 12:38
외부영역: 프레임워크 헥사곤 구현(카프카어댑터) - 도서/회원/Best도서서비스의 Consumers 18:00
통합테스트 전 버그 수정 02:56
EDA 통합테스트 수행1(테스트 환경설정 및 시나리오 설명) 17:32
EDA 통합테스트 수행2(터미널로 test 수행) 16:46
섹션 7. EDA구현 Advance (SAGA)
이벤트 흐름 설계 변경 14:29
도서서비스의 응답 메시지 정의 및 응답 발송 구현 12:18
대여 서비스의 보상 트랜젝션 정의 및 구현 25:38
회원서비스 수정 10:21
SAGA 테스트 29:25
강의 게시일 : 2023년 10월 31일 (마지막 업데이트일 : 2024년 04월 08일)
수강평 총 8개
수강생분들이 직접 작성하신 수강평입니다.
4.8
8개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
웃자 thumbnail
5
지금까지 개발하면서 구성한 시스템에서 EDA의 사가 패턴이 제대로 구성되어있는지 돌아보게 되었습니다 이 강의는 EDA 뿐만 아니라 어떻게 설계하고, 객체 지향적으로 도메인을 구성해야 되는지, 실전에서 어떤 부분을 헥사고널에서 타협해서 개발할 수 있는지에 대해서 고민을 다뤄서 좋았습니다 하지만 목소리가 너무 잘 안들리고, 강의마다 목소리 크기가 달라서 듣기가 좀 힘들었습니다 추가로 문서와 강의가 다른게 많고, 오탈자가 많아서 수정하면서 힘들었습니다 그렇다고 실제로 동작하지 않는 케이스는 전혀 없었습니다 저는 숙련된 개발자이기에, 어느정도 틀려도 제공해주신 깃헙과 맞춰가면서 수정했지만, 숙련되지 않은 개발자들은 강의를 들으면서 고생 좀 하겠다는 생각이 들었습니다 결론으로 개인적으로는 전반적으로는 너무 좋았기에, 다른 강의도 다 찾아서 들을 예정입니다. 좋은 강의 만들어주셔서 감사합니다
2023-12-03
지식공유자 han jeong heon
평가 감사합니다. 아 역시 오디오가 문제이군요. ㅠ ㅠ 죄송합니다. 오디오 및 문서 싱크 오탈자에 좀더 신경쓰도록 하겠습니다.🙇‍♂️🙇‍♂️🙇‍♂️
2023-12-05
이한솔 thumbnail
5
1. 좋았던 부분 : 이전 강의에서 배웠던 이론들을 직접 코드를 보면서 동작까지 시켜보니 이해가 확 와닿는 느낌이고, 그동안 책으로만 봐서 와닿지 않았던 헥사고날 아키텍처등에 대해서 직접 쳐보면서 익힐 수 있는 시간이라 좋았고, 이전강의와 합쳐서 약 20시간에 가까운 강의시간인데도 일주일만에 다 듣게끔 집중하게 만드는 좋은 강의였습니다. 2. 아쉬웠던 부분 ● 오디오 퀄리티가 강의별로 편차가 컸는데 몇몇 강의에선 몇번이다 다시 듣고 스크립트랑 같이 확인을 해야하다보니 집중이 깨질 수 밖에 없었습니다. ● PPD 혹은 PDF자료들을 보여주는 방식이 강의마다 일관적이지 않은게 개인적으로는 불호에 가까웠습니다. ● 실습 강의에서 시간관계상 코드 복붙하는 구간들이 있는데 PDF 내용을 복사하다보면 제대로 복사 안되거나 깨지는 부분들이 있었는데, 깃에 브랜치나 커밋으로 구분해서 확인 및 사용이 편하도록 구성되면 어떨까 싶습니다.
2024-01-14
지식공유자 han jeong heon
아 좋은 강의라 하시니 기쁘네요. 그리고 오디오 퀄리티는 계속 보완 신경쓰도록 하겠습니다. 그리고 강의자료 pdf가 아무래도 불편하셨던것 같네요. 말씀하신데로 깃에 구성하면 쉽게 copy가 되겠네요. 좋은 의견 감사하고 반영하여 개선하도록 하겠습니다.
2024-01-14
tjdwo6269 thumbnail
4
코드를 치면서 동작 방식을 익히시는 분들에게 좋은 강의입니다. 헥사고날 아키텍처에 대해 어떻게 적용하시는지 모르는 분들은, 해당 강의를 통해 감을 얻을 수 있습니다. 저는 해당 강의를 통해 카프카를 어떻게 사용하는지, 사가 패턴 적용 방향에 대한 감을 얻은 것이 좋습니다. 오디오는 음질 이슈가 분명 있는데, 대본을 업데이트 하셔서 후반부부터는 괜찮았습니다. 다만.. pdf에 있는 오타는 개발이 서툰 사람들은 헤맬 정도로 많더군요.. 저는 바로바로 눈치채고 넘어갔지만, 강의를 듣는 입장에서 여러 군데에 오타가 있으니 불편한 부분이 꽤 존재했습니다. 다음 번에 혹시나 또 강의를 하신다면, 이 부분을 크게 생각해주셨으면 좋겠습니다.
2024-04-19
지식공유자 han jeong heon
tjdwo6269님 의견 및 피드백 감사합니다 . 음질개선에 신경쓰고 있었는데 오타도 보완하도록 하겠습니다🙂‍↕️
2024-04-19
Aaron Park thumbnail
4
이번 강의도 음질이 많이 아쉬웠지만 실무에서 경험하지 못 했던 MSA 환경에 Kafka 를 활용한 이벤트 기반 서비스를 구해볼 수 있는 좋은 기회였던 것 같습니다.
2024-04-09
지식공유자 han jeong heon
Aaron Park님 감사합니다. 음질은 좀더 개선하고 노력하겠습니다
2024-04-09
hj.noh thumbnail
5
유익한 강의 만들어 주셔서 감사합니다.
2024-03-11
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!