마이크로서비스 설계를 위한 도메인 주도 설계(Domain Driven Design)를 쉽게 설명하고, 실제로 활용하기 위한 구체적인 실천 방법을 소개합니다.
이런 걸
배워요!
도메인 주도 설계(DDD)
헥사고널 아키텍처
전략적 설계
전술적 설계
이벤트 스토밍
레이어드 아키텍처
도메인 모델링
API 설계
MSA
DDD의 핵심, 확실하게 배우고 싶다면!
😥
MSA의 대략적인 개념을 이해하긴 했는데, 막상 어떻게 마이크로서비스로 쪼개고 설계해야 할지 막막하고 어렵기만 해요.
🙄
마이크로서비스는 공개적인 REST API만 있으면 되는 거 아닌가요? 다른 어떤 설계가 필요한가요?
😵
비동기 이벤트 통신이 많이 쓰이는 것 같던데... 어떤 비즈니스 케이스에 활용하나요? 동기/비동기 통신을 어떻게 구분해서 설계하나요?
MSA 구조에서 마이크로서비스를 독립적으로 배포하고 변경하려면 무엇이 중요할까요? 바로 기능적으로 응집성 있고 다른 서비스와 의존관계가 적은 마이크로서비스를 식별하게 하는 것입니다. 또한 마이크로서비스 내부 구조 역시 기술 변화에 유연한 구조를 가지게 함으로써 비즈니스 변화에 민첩하게 대응하게끔 해야 합니다.
이러한 목적으로 마이크로서비스 설계에 도메인 주도 설계(DDD) 기법이, 그리고 내부 아키텍처에 헥사고널 아키텍처가 주로 사용되고 있습니다. 이번 강의에서는 이러한 도메인 주도 설계 및 헥사고널 아키텍처를 기반으로 응집성 있고 유연한 구조를 갖는 마이크로서비스를 설계하는 방법을 설명합니다.
도메인 주도 설계
(Domain-Driven Design, DDD)
비즈니스 전략, 도메인 패턴을 중심으로 소프트웨어 아키텍처를 구축하는 개발 방법론
헥사고날 아키텍처
(Hexagonal Architecture)
도메인 중심으로 의존성의 흐름이 외부로 나가지 않도록 관리하는 아키텍처 패턴
마이크로서비스 설계에
이벤트스토밍을 활용하고픈
기술/설계 리더
마이크로서비스 설계 기준 및
방법에 대해 고민 중인
마이크로서비스 개발자
도메인 주도 설계(DDD) 및
구현에 관심있는
백엔드 개발자
도메인 주도 설계 - 전략적 설계의 여러 개념(도메인 모델, 서브도메인, 유비쿼터스 랭귀지, 바운디드 컨텍스트)에 대해 알아봅니다.
가장 쉽게 심플한 마이크로서비스 도출 기법인 이벤트 스토밍 워크샵에 대해 설명합니다.
마이크로서비스 내부의 비지니스 로직을 설계하는 여러 패턴(트랜잭션 스크립트, 액티브 레코드, 도메인 모델 등)을 설명하고 어떤 선택을 해야 하는지 탐구합니다.
전통적인 레이어드 아키텍처(Layered Architecture)의 한계와 헥사고널, 클린 아키텍처의 특징, 비교를 통해 바람직한 마이크로서비스 내부 구조에 대해 생각해 봅니다.
도서대여 시스템이란 주제를 가지고 온라인 도구 Miro를 통해 이벤트 스토밍 워크샵 실습을 해봅니다.
이벤트 스토밍을 통해 식별된 바운디드 컨텍스트의 관계를 정의하고 후보 마이크로서비스를 정의합니다.
도메인 주도 설계의 전술적 설계 도구를 활용하여 마이크로서비스의 심장 도메인 모델을 설계 해 봅니다.
Q&A 💬
Q. 강의에서 이론과 실습을 모두 해보나요?
본 강의의 초반부에서는 이론을, 후반부에서는 실습을 다룹니다. 대략적인 개념을 이해해본 다음 실습을 통해 어떻게 기술들이 쓰이는지 이해할 수 있도록 구성하였습니다.
Q. 실무 경험이 없는 취준생 또는 비전공자도 들을 수 있나요?
클라우드 경험이 없더라도 실제 레거시 경험이 있는 개발자라면 접근할 수 있는 수준입니다. 그러나 실무 경험이 없다면 용어 등에 어려움을 겪을 수는 있습니다. 다만 비전공자라도 부트캠프를 이수한 경험이 있다면 무난하게 수강할 수 있을 것 같습니다.
Q. 수업 내용을 어느 수준까지 다루나요?
본 강의는 도메인 주도 설계를 위한 마이크로서비스의 전반적인 이론을 배우고, 실제 업무 예제를 통해 마이크로서비스를 도출하며 그 내부를 설계해 봅니다. 구현은 별도 과정으로 준비하고 있습니다.
학습 대상은
누구일까요?
백엔드 개발자
마이크로서비스 개발자
아름다운 설계를 추구하는 개발자
설계에 관심있는 개발자
선수 지식,
필요할까요?
마이크로서비스 기본개념
객체지향에 대한 이해
UML
현 국내 SI업체 소프트웨어 엔지니어(SA,AA)
다수의 대규모 차세대 프로젝트 개발방법론 및 설계방법 리딩
명지대, 서울과학기술대 클라우드,SW과목 강의
SK C&C,한국정보기술연구원(kitri), LG전자 MSA과정 강의
멀티캠퍼스, 한국표준협회, 한국품질협회 MSA 과정 멘토링,스파로스아카데미 웹개발 과정 멘토링
전문분야 : 개발방법론, 소프트웨어 아키텍처/설계/개발 기법
22년 , 위키북스 "도메인주도로 시작하는 마이크로서비스 개발", 저자
국가평생교육진흥원, K-MOOC "Microservice 설계 및 구현 " 강좌 개발 및 강의
전체
37개 ∙ (8시간 45분)
가 제공되는 강의입니다.