본문 영역으로 바로가기
Microservice 설계 및 구현 동영상

Microservice 설계 및 구현




강좌 소개

수업내용/목표

마이크로서비스 아키텍처의 정의, 내/외부 아키텍터 수립을 위한 패턴과 적용을 위한 기법에 대해 학습하고, 마이크로서비스 구축에 최적화된 도메인 주도 설계의 정의, 절차 및 구현방법을 적용할 수 있습니다.

홍보/예시 영상

강좌 운영 계획

강의계획서
주차 주차명 주차별 학습목표 차시명
1 Microservice 개념과 특성 Cloud환경에서 가장 주목 받고 있는 Application 개발 방식인 Microservice Architecture(MSA) 개념과 특성을 설명할 수 있다. 1-1. Biz민첩성과 아키텍처 요건
1-2. 마이크로서비스vs모노리스
1-3. MSA특징-1
1-4. MSA특징-2
2 Microservice Outer Architecture 마이크로서비스를 구성하는 outer/inner 아키텍처 의미에 대해 이해할 수 있고, 특히 outer 아키텍처의 인프라, 플랫폼, 데브옵스 환경과 어플리케이션을 지원하기 위한 기반 서비스에 대해 이해할 수 있다. 2-1. 소프트웨어 아키텍처 및 마이크로서비스 내·외부 아키텍처
2-2. 인프라, 플랫폼, 데브옵스 환경
2-3. 마이크로서비스 플랫폼(기반 서비스-1)
2-4. 마이크로서비스 플랫폼(기반 서비스-2)
3 Microservice Architecture 적용을 위한 기법 Microservice Architecture 적용 기법을 이해하고, Microservice 기반의 어플리케이션을 구현할 수 있다. 3-1. 쓰기와 읽기서비스를 분리하여 Microservice 운영효율을 극대화 시키는 방법에 대해 알아본다. - 명령&쿼리 책임분리 패턴 (Command & Query Responsibility Segregation, CQRS)
3-2. 쓰기처리를 극대화한 이벤트 소싱 패턴 (Event Sourcing)
3-3. 여러 서비스간의 데이터 일관성 유지를 위한 SAGA 패턴 (Sequence Alignment by Genetic Algorithm), 비동기 Event 처리 패턴 등
3-4. 분리된 여러 서비스의 데이터를 통합하여 보여주는 UI 패턴 (Client-Side & Server-Side Page Fragment Composition)
4 Microservice 최적의 Architecture 기술독립적인 Biz 중심의 어플리케이션을 개발을 위한 구조화한 MSA 내부구조를 설명할 수 있다. 4-1. Application구조 정의를 위해 보편적으로 쓰이는 layered architecture 개념과 문제점
4-2. Layered Architecture 의 문제점을 보완한 hexagonal architecture 개념
4-3. RDB중심의 Architecture는 BIZ로직의 저장기술의 의존관계와 기술독립적인 BIZ구현을 가능하게 하는 Domain 오브젝트 중심의 Architecture
4-4. Hexagonal Architecture 와 Domain Object중심의 Architecture를 결합한 MSA 내부 구조
5 도메인 주도 설계의 이해 대표적인 Microservice 설계 방법인 도메인 주도 설계의 개념을 설명할 수 있다. 5-1. 도메인 주도 설계란 무엇인가?
5-2 전략적 설계(바운디드컨텍스트와 유비쿼터스 언어)
5-3 전략적 설계 (컨텍스트 매핑)
5-4 전술적 설계
6 마이크로서비스 도출을 위한 전략적 설계 도메인 주도 설계의 전략적 설계에 대해 이해하고, 이벤트 스토밍 기법을 활용한 실습을 통해 이벤트 스토밍의 절차와 방법, 마이크로서비스가 도출되는 과정을 이해할 수 있다. 6-1. 전략적 설계의 정의 및 이벤트 스토밍 기법 소개
6-2 실습; 쇼핑몰 서비스-Big Picture 그리기(1)
6-3 실습; 쇼핑몰 서비스-Big Picture 그리기(2)
6-4 실습; 쇼핑몰 서비스의 이해-마이크로서비스 도출하기
7 전술적 설계 도메인 주도 설계의 전술적 설계에 대해 이해하고, 전략적 설계를 통해 식별된 Microservice의 내부를 설계할 수 있다. 7-1. Microservice 내부설계를 위한 전술적 설계 및 주요 개념
7-2. 도메인 오브젝트 구성요소 및 설계 방법
7-3. 도메인 모델링 구성요소 소개; Aggregate/Entity/Value Object
7-4. 도메인 모델링 ; 내/외부 인터페이스 설계
7-5. SW 산업현장에서의 Microservice 전술적 설계 사례
7-6. 전술적 설계 따라하기
8 Microservice 구현 Microservice 개발을 표준 패키지 구조를 정의하고, Back-end 서비스를 구현할 수 있다. 8-1. Microservice 개발을 위한 프로젝트 패키지 구조 정의
8-2. Back-End 서비스 구현: 비즈니스 로직의 구현
8-3. Back-End 구현; 서비스 API 구현
8-4. Back-End 구현; 데이터/인터페이스 처리의 구현
8-5. SW 산업현장에서의 Microservice 구현 사례
8-6. Microservice 구현 따라하기
기말시험

 

강좌운영팀 소개

교수자

한정헌 수석
한정헌 수석
현) SK주식회사 C&C 통합품질혁신팀 수석
SK주식회사 표준 개발방법론 제정(Cloud Native Application Development Methodology)
현대카드,국민카드,한화증권,서울보증보험등 다수의 금융 차세대 PJT 수행
유해식 수석
유해식 수석
현) SK주식회사 C&C 통합품질혁신팀 수석
SK주식회사 표준 개발방법론 제정(Cloud Native Application Development Methodology)
T-50 항공전자장비, T-50/UH-60/LYNX시뮬레이터 개발 등 다수의 군 무기체계 개발 PJT수행 (국방 CBD)

강좌지원팀

박민경
박민경
KAIST 전기전자공학부 학사과정
E-mail: jrneomy@kaist.ac.kr

강좌 수강 정보

이수/평가정보

이수/평가정보
과제명 퀴즈 토론 중간고사 기말고사
반영비율 60% 0% 0% 40%

※ 평가는 퀴즈 60%와 기말고사 40%로 이루어져 있으며, 총 60% 이상 점수 획득 시, 이수증을 발급받을 수 있습니다.

강좌 수준 및 선수요건

이 강좌는 유익한 내용이 다수 포함되어 있습니다. 소프트웨어에 관심이 있거나 소프트웨어를 개발하는 실무자들에게 유익한 강좌입니다. 이 강좌는 "소프트웨어 공학: 왜, 무엇을, 어떻게?" 강좌, "클라우드 서비스 아키텍처" 강좌, "소프트웨어 테스팅" 강좌를 선수학습하시면 더욱 수월하게 수강하실 수 있습니다.

교재 및 참고문헌

이 강좌는 교안을 제공합니다.

자주 묻는 질문

강좌 교재가 따로 있나요?

교안을 제공합니다.

질문은 어떻게 하나요?

게시판이나 조교 이메일, 운영팀 이메일로 문의주시면 24시간 내에 답변 드리겠습니다.

제목

소제목

내용

 

관련 강좌

현재 강좌와 관련있는 강좌를 찾을 수 없습니다.
  1. 분야

    공학
    (컴퓨터ㆍ통신)
  2. 강좌 내용의 어려운 수준을 의미합니다. 교양, 전공기초, 전공심화 순으로 난이도가 증가합니다.

    난이도

    전공기초
  3. 강좌를 개발하고 운영하는 기관입니다. 컨소시엄으로 운영 시, 대표기관의 명칭이 나타납니다

    운영기관

    한국과학기술원
  4. 운영 기관의 전화번호 입니다.

    전화번호

    -
  5. 강좌의 구성 주차 수를 의미합니다. (강좌를 충실히 학습하기 위해 필요한 주당 학습시간을 의미합니다.)

    주차
    (주간 학습 권장 시간)

    08주
    (주당 03시간 00분)
  6. 본 강좌 이수자에게 인정되는 학습시간으로 해당 강좌의 동영상, 과제, 시험, 퀴즈, 토론 등의 시간을 포함합니다. (강의 내용과 관련된 동영상 재생 시간의 총 합계입니다.)

    학습인정시간
    (총 동영상시간)

    12시간 00분
    (10시간 00분)
  7. 수강신청이 가능한 기간으로 해당 기간 내에만 수강신청이 가능합니다.

    수강 신청 기간

    2019.02.07 ~ 2019.02.17
  8. 강좌가 운영되고 교수지원이 이루어지는 기간입니다. 이수증은 강좌운영기간이 종료된 이후에 발급받을 수 있습니다.

    강좌 운영 기간

    2019.02.11 ~ 2019.04.21