개발 · 프로그래밍

/

백엔드

EDA 기반 Microservice 구현 (with Hexagonal, DDD)

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

(4.4) 수강평 15개

수강생 438명

Thumbnail

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

이런 걸
배워요!

  • 마이크로서비스 개발

  • 헥사고널 아키텍처 적용

  • 도메인 주도 설계 개발

  • 이벤트 주도 아키텍처 적용

  • 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

  • 국내 SI업체 소프트웨어 엔지니어(SA,AA)

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

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

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

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

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

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

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

커리큘럼

전체

40개 ∙ (10시간 8분)

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!