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

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) 대시보드

(4.9)
307개의 수강평 ∙  6,156명의 수강생
88,000원

월 17,600원

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

초급자를 위해 준비한
[백엔드, 웹 개발] 강의입니다.

Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해 배울 수 있는 강의입니다.

✍️
이런 걸
배워요!
Spring Cloud
Spring Boot
Cloud Native Application
Microservice Architecture
MSA Application
스프링 부트
스프링 클라우드
마이크로서비스

클라우드 네이티브 아키텍처를 구축하고,
마이크로서비스 앱 개발에 도전하세요! 🚧

이도원, Dowon Lee - Spring Cloud MSA (Microservice Architecture)

IT 시스템에는 매년 수많은 기술이 생겨나고, 사라지고 있습니다. 새롭게 출시된 개념이나, 기술, 방법론들이 수많은 레퍼런스를 거쳐 안정화된 시스템으로 자리잡기까지는 오랜 시간이 필요합니다. 

1960~1980년대

  • 1960~1980년대는 하드웨어가 중심이 되었던 메인프레임 시기였습니다. 소프트웨어보다는 하드웨어의 사양이라던가 성격에 맞춰 서비스를 구축하던 시기였고, 하드웨어 및 시스템 자체가 상당한 고가였기 때문에 서비스의 기능을 수정하거나 변경하기가 상당히 어려웠습니다. Fragile이라고 부르는 이 시기에 한번 구축된 시스템을 변경하는 것은 쉬운 작업이 아니였으며, 많은 비용과 시간이 필요하였습니다. 

1990~2000년대

  • 1990~2000년대는 분산이라는 키워드가 핵심이던 시기였습니다. 이 시기를 Robust, Distributed라 합니다. 시스템이 안정화/분산화된 덕분에 서비스에 어느 정도 불확실성이나 변화가 발생한다 하더라도 안정성과 성능이 유지될 수 있는 시스템을 구축할 수 있었습니다. 

2010년 이후~현재

  • 2010년 이후는 Resilient(탄력있는), Fragile과 반대되는 개념인 Anti-Fragile, 그리고 Cloud Native로 시스템이 구축되는 시기입니다. 가상화 기술이 도입되었으며, 기업의 IT 환경과 시스템은 클라우드로 이전되었고, 확장성과 안정성이 더욱 강화되었습니다. 고객으로부터의 지속적인 개선 및 변경사항이 생기더라도, 시스템들은 빠르게 처리되고 탄력적으로 운영할 수 있도록 구축되었습니다.

현재는

Cloud(클라우드) 기술이 IT 환경에 필수로 여겨지고 있습니다. 이러한 Cloud 환경에서 IT 시스템을 구축하는 것을 Cloud Native Architecture(클라우드 네이티브 아키텍처)라 볼 수 있으며, Cloud 환경에서 기동되는 애플리케이션을 Cloud Native Application(클라우드 네이티브 애플리케이션)이라고 할 수 있습니다. 


클라우드 환경에 맞는 
IT 시스템 구축이 필요한 이유.

Linux 산하 단체인 CNCF(Cloud Native Computing Foundation)에는 Cloud Native Application의 주요 구성 요소로 다음 4가지를 언급하였습니다. 

• CI/CD • DevOps • Microservices • Containers

이 중 Cloud Native Application의 핵심이자 비즈니스 도메인의 서비스 로직을 구현하는 것이 Microservice입니다. Microservice Architecture는 기존에 단일 시스템 환경에서 Front-end, Back-end, Database 등의 구성요소를 모두 포함하여 배포하는 모놀리스 방식과 대변되는 개발 방식으로 애플리케이션이 구성하는 잘 나뉘어진 경계에 의해 서비스들을 분리하여 개발하고 운영하기 위한 Architecture를 말합니다. Microservice Architecture를 기반으로 개발되는 애플리케이션을 위해 Java(자바)와 Spring Framework, Spring Cloud라는 기술을 사용할 수 있습니다.

Spring Cloud는 분산 시스템 구성과 애플리케이션을 개발하기 위해 필요한 개발 환경과 서비스, 그리고 개발이나 구성에 관련된 패턴을 제공함으로써 Cloud Native Architecture를 위한 Microservice 애플리케이션을 빠르게 개발할 수 있도록 제공하는 개발 도구이자, 개발 Platform입니다.

Microservice 애플리케이션을 위한 구성 관리, 서비스 검색, 회로 차단기, 지능형 라우팅, 마이크로 프록시, 제어 버스, 일회성 토큰, 글로벌 잠금, 리더십 선택, 분산 등의 기술을 쉽게 사용할 수 있도록 기본적인 보일러 플레이트 패턴을 제공하며, 개발 된 애플리케이션과 서비스는 개발자의 로컬 환경의 노트북, 베어 메탈 데이터 센터 및 Cloud Foundry와 같은 관리 플랫폼을 포함한 모든 분산 환경에서 잘 작동될 수 있도록 뛰어난 호환성을 유지합니다.


이 강의의 목표

우리의 최종 목표는?

스프링 부트 + 스프링 클라우드를 이용해서
마이크로서비스 아키텍처로 설계된 앱을
설계하고, 개발하는 것입니다.

이번 강의에서는 Spring Cloud의 제품(하위 프로젝트)로 Microservice 애플리케이션을 개발하고, 운영환경을 구축하는 방법에 대해 학습하는 과정입니다. Microservice Architecture를 구성하는 Gateway, Service Mesh, Runtime을 구성하는 방법과 운영을 위해 빌드하고 배포하는 과정에 대해서도 학습할 예정입니다. 

본 강의를 수강하신 분들은 기본적인 Microservice Architecture의 이해와 Java의 통합 개발환경인 IntelliJ를 이용하여 Spring Boot, Spring Cloud 애플리케이션을 개발하실 수 있고, 로컬 환경과 컨테이너 가상화에 배포하여 운영하는 방법에 대해서 실습하실 수 있습니다. 

강의에 사용 된 실습 예제는 아래에서 확인해 보실 수 있습니다. 


학습 과정

REST API를 설계하고 애플리케이션을 구현하기까지.
마이크로서비스 아키텍처 설계와 구축의 핵심 가이드.

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
Spring Cloud 제품군을 이용한 마이크로서비스 애플리케이션을 개발하고 싶은 사람
Cloud Native Architecure와 Application에 대해 이해하고 애플리케이션을 구축하고 싶은 개발자
📚
선수 지식,
필요할까요?
Java
Spring framework

안녕하세요
Dowon Lee 입니다.
Dowon Lee의 썸네일

저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.

직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다. 

최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.

머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.  

 

 

  • ) 엔제이원컴퍼니 대표 
  • ) 동국대학교 국제정보대학원 정보보호학과 대우교수
  • ) JP Mogan Chase AMJ Tech consultant (일본)
  • ) 삼성 SDS CMS 사업본부 책임 엔지니어

 

 

커리큘럼 총 156 개 ˙ 27시간 28분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. Microservice와 Spring Cloud의 소개
강의를 시작하며 미리보기 02:18 목차 미리보기 01:22 소프트웨어 아키텍처 미리보기 06:32
Cloud Native Architecture 03:59
Cloud Native Application 07:44
12 Factors 07:55
Monolithic vs. Microservice 13:23
Microservice Architecture란? 13:25
SOA vs. MSA 17:27
Microservice Architecture Structures 10:32
Spring Cloud란? 미리보기 10:00
섹션 1. Service Discovery
섹션 소개 미리보기 00:56 Spring Cloud Netflix Eureka 미리보기 16:31
Eureka Service Discovery - 프로젝트 생성 14:37
User Service - 프로젝트 생성 12:14
User Service - 등록 21:16
User Service - Load Balancer 11:16
섹션 2. API Gateway Service
섹션 소개 미리보기 01:05 API Gateway 란? 미리보기 12:54
Netflix Zuul - 프로젝트 생성 (Deprecated) 18:11
Netflix Zuul - Filter 적용 (Deprecated) 08:13
Spring Cloud Gateway 란? 03:16
Spring Cloud Gateway - 프로젝트 생성 10:08
Spring Cloud Gateway - Filter 적용 07:49
Spring Cloud Gateway - Filter 적용 13:15
Spring Cloud Gateway - Filter 적용 06:47
Spring Cloud Gateway - Custom Filter 적용 ➀ 05:12
Spring Cloud Gateway - Custom Filter 적용 ➁ 12:06
Spring Cloud Gateway - Global Filter 12:41
Spring Cloud Gateway - Logging Filter 13:42
Spring Cloud Gateway - Load Balancer ➀ 11:32
Spring Cloud Gateway - Load Balancer ➁ 19:22
섹션 3. E-commerce 애플리케이션
섹션 4. Users Microservice ➀
섹션 소개 미리보기 01:00 Users Microservice 개요 미리보기 04:02
Users Microservice - 프로젝트 생성 09:14
Users Microservice - welcome() 메소드 18:27
Users Microservice - H2 데이터베이스 연동 05:08
Users Microservice - 사용자 추가 10:35
Users Microservice - JPA ➀ 17:58
Users Microservice - JPA ➁ 12:02
Users Microservice - Spring Security 연동 19:51
섹션 5. Catalogs and Orders Microservice
섹션 소개 미리보기 00:55 Users Microservice - 사용자 조회 ① 미리보기 04:47
Users Microservice와 Spring Cloud Gateway 연동 10:14
Users Microservice - 사용자 조회 ② 06:18
Users Microservice - 사용자 조회 ③ 19:45
Catalogs Microservice - 개요 07:24
Catalogs Microservice - 기능 구현 ① 15:28
Catalogs Microservice - 기능 구현 ② 10:44
Orders Microservice - 개요 05:41
Orders Microservice - 기능 구현 ① 20:33
Orders Microservice - 기능 구현 ② 20:07
섹션 6. Users Microservice ➁
섹션 소개 미리보기 00:51 Users Microservice - 인증과 권한 기능 개요 미리보기 17:46
Users Microservice - AuthenticationFilter 추가 16:19
Users Microservice - loadUserByUsername() 구현 11:28
Users Microservice - Routes 정보 변경 06:11
Users Microservice - Routes 테스트 09:19
Users Microservice - 로그인 처리 과정 15:45
Users Microservice - 로그인 성공 처리 12:24
Users Microservice - JWT 생성 10:02
Users Microservice - JWT 처리 과정 16:40
Users Microservice - AuthorizationHeaderFilter 추가 19:06
Users Microservice - 테스트 14:39
섹션 7. Configuration Service
섹션 소개 미리보기 01:52 Spring Cloud Config 미리보기 10:00
Local Git Repository 12:12
Spring Cloud Config - 프로젝트 생성 08:48
Users Microservice에서 Spring Cloud Config 연동 ① 05:59
Users Microservice에서 Spring Cloud Config 연동 ➁ 21:24
Spring Cloud Gateway에서 Spring Cloud Config 연동 ① 05:09
Spring Cloud Gateway에서 Spring Cloud Config 연동 ② 12:50
Profiles을 사용한 Configuration 적용 09:16
Remote Git Repository 06:23
Native File Repository 06:26
섹션 8. Spring Cloud Bus
섹션 소개 미리보기 01:09 Spring Cloud Bus 개요 미리보기 13:08
RabbitMQ 설치 - MacOS 05:55
RabbitMQ 설치 - Windows 10 04:40
AMQP 사용 11:16
Spring Cloud Bus 테스트 14:44
섹션 9. 설정 정보의 암호화 처리
섹션 소개 미리보기 01:25 대칭키와 비대칭키 미리보기 07:26
대칭키를 이용한 암호화 ① 11:15
대칭키를 이용한 암호화 ② 13:40
비대칭키를 이용한 암호화 ① - keytool 08:45
비대칭키를 이용한 암호화 ② 21:18
섹션 10. Microservcie간 통신
섹션 소개 미리보기 00:45 Communication types 미리보기 06:26
RestTemplate 사용 ① 04:23
RestTemplate 사용 ② 26:20
FeignClient 사용 ① 06:07
FeignClient 사용 ② 12:14
FeignClient 예외 처리 ① 05:41
FeignClient 예외 처리 ② 07:44
ErrorDecoder를 이용한 예외 처리 16:35
데이터 동기화 문제 ① 08:00
데이터 동기화 문제 ② 09:34
섹션 11. 데이터 동기화를 위한 Apache Kafka의 활용 ①
섹션 소개 미리보기 00:58 Apache Kafka 개요 미리보기 07:52
Apache Kafka 설치 06:12
Apache Kafka 사용 - Producer/Consumer 20:54
Apache Kafka 사용 - Kafka Connect 09:51
Orders Microservice에서 MariaDB 연동 12:22
Kafka Connect 설치 ① 13:07
Kafka Connect 설치 ② 13:08
Kafka Source Connect 사용 14:01
Kafka Sink Connect 사용 15:40
섹션 12. 데이터 동기화를 위한 Apache Kafka의 활용 ②
Orders Microservice와 Catalogs Microservice에 Kafka Topic의 적용 미리보기 13:40 Catalogs Microservice 수정 미리보기 11:47
Orders Microservice 수정 10:29
Kafka를 활용한 데이터 동기화 테스트 ① 13:40
Multi Orders Microservice 사용에 대한 데이터 동기화 문제 05:37
Kafka Connect를 활용한 단일 데이터베이스를 사용 05:42
Orders Microservice 수정 - MariaDB 07:23
Orders Microservice 수정 - Orders Kafka Topic 09:18
Orders Microservice 수정 - Order Kafka Producer 19:09
Kafka를 활용한 데이터 동기화 테스트 ② 07:39
섹션 13. 장애 처리와 Microservice 분산 추적
섹션 소개 미리보기 01:08 CircuitBreaker와 Resilience4J의 사용 미리보기 15:00
Users Microservice에 CircuitBreaker 적용 22:18
분산 추적의 개요 Zipkin 서버 설치 12:10
Spring Cloud Sleuth + Zipkin을 이용한 Microservice의 분산 추적 ① 07:45
Spring Cloud Sleuth + Zipkin을 이용한 Microservice의 분산 추적 ② 20:14
섹션 14. Microservice 모니터링
섹션 소개 미리보기 00:22 Micrometer 개요 미리보기 09:35
Micrometer 구현 12:39
Prometheus와 Grafana 개요 09:29
Prometheus와 Grafana 설치 13:26
Prometheus와 Grafana의 연동과 Dashboard 구성 14:08
섹션 15. 애플리케이션 배포를 위한 컨테이너 가상화
섹션 소개 미리보기 01:35
컨테이너 가상화 13:06
Docker 컨테이너 17:43
컨테이너 생성과 실행 12:24
Docker 이미지 생성과 Public registry에 Push 17:04
섹션 16. 애플리케이션 배포 - Docker Container
섹션 소개 미리보기 02:40 애플리케이션 배포 구성 미리보기 15:44
RabbitMQ 11:24
Configuration Service 21:45
Discovery Service 13:07
Apigateway Service 12:17
MariaDB 18:38
Kafka 12:49
Zipkin 03:20
Monitoring 11:42
Deployed Services 04:13
User Microservice 17:09
Order Microservice 18:04
Catalog Microservice 06:27
Test 03:52
Multi Profiles 05:30
강의를 마치며 02:08
섹션 17. Appendix: Microservice Architecture 패턴
Event Sourcing + CQRS + Saga Pattern 19:51
강의 게시일 : 2021년 03월 29일 (마지막 업데이트일 : 2023년 02월 19일)
수강평 총 307개
수강생분들이 직접 작성하신 수강평입니다.
4.9
307개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
제이티시 thumbnail
5
정말 찬사를 보내고 싶은 명강의입니다. 저는 신입 개발자로 사수없이 혼자서 MSA 구축하라는 업무지시 받고나서, 진짜 단순하고 작은 문제 하나에서도 2-3일씩 헤매느라 진도가 매우 느렸습니다. 그런데 이 강의 하나로, 제가 고민하던 문제 30개, 50개 이상을 단번에 치고 나갈 수 있었습니다. 강사님께 정말 감사의 말씀을 드리고 싶네요. 제 입장에선 100만원 이상의 값어치를 했습니다.
2021-11-23
장원익 thumbnail
5
지금껏 fastcampus, inflearn 등 여러 강의 플랫폼에서 많은 강의를 들었는데, 가장 최고의 강의입니다.. 들으면서 놀랍기까지 한 강의네요. 강사님의 딕션과 설명의 흐름 그리고 큰 그림.. MSA를 떠나 완벽합니다.
2021-04-13
Goboo thumbnail
5
스프링과 도커 컨테이너 기반 마이크로 서비스에 대한 전반적인 내용을 체험 할 수 있게 해주는 알찬 강의 입니다. 시중에 판매 되고 있는 스프링 마이크로 서비스 관련 책들을 보는것보다 훨씬 더 유익한 강의 라고 생각 됩니다. AWS , GCP, AZURE 와 같은 클라우드에 private docker repository 구축 및 사용과 쿠버네티스 강의도 있었으면 하는 바램 입니다. 좋은 강의 만들어 주셔서 감사합니다.
2021-04-25
thghu thumbnail
5
강의 퀄리티가 정말 높다고 생각합니다. 수주일 동안 인터넷에서 어렵게 모았던 자료들보다 실속있고 디테일한 정보들이 많았고, 설명을 잘 해주셔서 쉽게 적용해볼 수 있었어요. API gateway 관련 내용이 필요해 보고 있지만 나머지 강의들도 기대되고 마저 들어야겠네요.
2021-04-05
Cho thumbnail
5
강사님 좋은 강의를 만들어 주셔서 감사합니다. 이 강의를 듣기 전까지 클라우드, 마이크로 서비스 등등 관련 책도 보고 얘기는 수도없이 많이 들었고, 만들어도 보았지만, 단편적인 지식들이 머릿속에서 뒤죽박죽이었답니다. 이 강의를 들을수록 머릿속이 깔끔하게 정리되는 느낌입니다. 아직 30%밖에 못들었지만, 계속 다음이 궁금해져 새벽까지 듣곤 합니다. 강의 구성은 챕터별로 왜? 어떻게? 무엇을 해야할지 처음에 명확하게 설명을 해 주신후 실제 코드로 구현해 주십니다. 필요한 엑기스만 뽑아서 해 주시고, 동영상 길이도 적당합니다. 구현 후에도 의도적으로 조금씩 수정을 해 주시면서 중요한 부분을 반복할 수 있도록 유도 해 주시네요. 아직 30% 밖에 못 들었지만 이 강의 후속으로 처음에 강사님이 그리셨던 그림대로 CI/CD, Cluster(쿠버네티스), 모니터링까지 준비해 주시길 간곡히 부탁드립니다. 감사합니다.
2021-04-10
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!