CLASS : 배달 프로젝트로 배우는 NestJS 심화 (MSA)
ONLINE   #백엔드 아카데미 #NestJS
코드팩토리의 백엔드 아카데미 CLASS 2 :
배달 프로젝트로 배우는 NestJS 심화 (MSA)
프로그래밍 강의 누적 수강생 22,000명 / 평점 5.0 신화
코드팩토리와 함께하는 NestJS 백엔드 아카데미
기본 정보
∙ 2개의 대주제 (약 25시간 분량)∙ 입문 - 실전
강의 특징
∙ 1회 결제로 평생 소장∙ 강의 무제한 업데이트
강의 공개
∙ 1차 공개 : 24년 11월 04일 (월)∙ 2차 공개 : 24년 12월 02일 (월)
∙ 전체 공개 : 24년 12월 30일 (월)
해당 CLASS 는 [MSA까지 한 번에 끝내는 NestJS 패키지] 일부 강의로 구성되었습니다.
전체 과정을 한번에 구매하실 경우 더욱 저렴하게 수강 가능합니다.
잠깐!
Microservice Architecture, 혹시 이런 오해를 하고 계시지는 않나요?
답변 자세히 보기
과거에는 MSA 기술의 접근성과 편의성이 낮아 중소규모 서비스에 적용하는 것이 단점이 많았습니다. 하지만 현재는 정보와 매니지드 서비스들이 늘어나 진입 장벽이 낮아졌습니다. 적절한 기술을 적용하면 소규모 팀과 프로젝트에서도 MSA를 충분히 활용할 수 있으며, 이 강의에서 그 부분을 자세히 다룹니다.
답변 자세히 보기
DDD는 MSA 이전부터 존재한 대규모 서비스 디자인 패러다임입니다. MSA가 주로 대규모 프로젝트에 사용되다 보니 DDD와 함께 사용하는 경우가 많지만, MSA를 반드시 DDD로 설계해야 하는 것은 아닙니다.
답변 자세히 보기
MSA는 개념이지 특정 기술에 종속되지 않습니다. MSA는 Microservice Architecture의 약자로, 라이트웨이트한 프레임워크가 유리합니다. 따라서 NestJS가 Spring보다 MSA 구축에 유리한 점이 많습니다. NestJS는 처음부터 마이크로서비스를 고려해 설계된 프레임워크로, MSA를 훨씬 자연스럽게 구현할 수 있습니다.
코드팩토리의 백엔드 아카데미를 통해
NestJS 기반 MSA에 대해 제대로 경험하세요.
MSA 학습 프로세스 미리보기
MSA 관련 이론 학습
소규모 팀과 프로젝트에 적합한 NestJS MSA 적용
대규모 팀과 프로젝트에 적합한 DDD를 적용한 Polyrepo MSA 적용
MSA 운영을 위한 오케스트레이션, 모니터링, 로깅 및 옵저버빌리티
자신의 프로젝트에 맞는 MSA 아키텍처를 설계하고 적절한 기술을 적용할 수 있는 능력을 갖추게 될 것입니다
Point 1
배달 프로젝트를 통해
MSA 적용 및 대규모 애플리케이션 운영을 5단계에 걸쳐 학습합니다.
Monorepo 환경의 MSA부터 DDD기반 Polyrepo 환경의 MSA 전환,
그리고 CQRS, SAGA 패턴과 배포 및 운영까지 MSA를 완전히 정복할 수 있습니다.
배달 앱 프로젝트에서 MSA 구축은 두 단계로 진행됩니다.
소규모 팀과 프로젝트부터 대규모 팀과 프로젝트까지 적용할 수 있는 MSA 방법론을 학습합니다.
-
NestJS MSA
기본기 다지기NestJS의 MSA 모듈을 사용하여 다양한 기본 통신 방법을 학습합니다. -
Domain Driven Design 및 고급 아키텍처 적용DDD, Hexagonal Architecture, Clean Architecture를 학습하고 프로젝트에 적용해 봅니다.
-
컨테이너화 및
쿠버네티스 운영 학습서비스를 컨테이너화하여 쿠버네티스로 운영하고, Helm차트를 사용해 효율적 관리하는 방법을 학습합니다.
-
CQRS 및 SAGA 패턴 적용DDD와 마이크로서비스의 핵심인 CQRS 패턴과 다중 마이크로서비스의 트랜잭션 관리를 위한 SAGA 패턴을 학습합니다.
-
배포 및 운영 & Service Mesh다양한 AWS 매니지드 서비스를 통해 인프라 설정 배포와 Service Mesh로 통신 최적화를 진행합니다.
-
• Role Based Access Control
• 효율적 대용량 영화 파일 업로드
• 영화 파일 인코딩 큐 작업
• 인기 동영상 리스트 캐싱
• 고객응대 실시간 채팅
• 영상 카탈로그 Pagination 일반화 및 최적화
• CI/CD 파이프라인 구현 및 운영
1. 팀과 프로젝트 규모별로 적합한 두 가지 MSA 학습
왜 중요한가요?
NestJS는 기본적으로 마이크로서비스 아키텍처(MSA)를 고려하여 설계된 프레임워크입니다. 일반적으로 MSA를 구축하면 아키텍처가 상당히 복잡해지지만, NestJS는 모노레포지토리(Monorepository)로 가볍게 MSA를 구현할 수 있도록 모듈 설계가 되어 있습니다. 이를 통해 파일 구조부터 네트워킹까지, 모놀리식 아키텍처와 비교했을 때 코드 상에서의 차이점을 최소화하며 MSA를 구현할 수 있습니다.
모노레포 아키텍처는 효율적인 코드 관리와 일관성 있는 개발 환경을 제공하여 MSA 구현 시 복잡성을 줄여주는 역할을 합니다.
왜 중요한가요?
마이크로서비스 아키텍처(MSA)는 대규모 프로젝트의 복잡성과 대규모 팀의 소통 및 협업 문제를 해결하기 위해 만들어졌습니다. 따라서 전통적인 MSA는 대규모 팀과 대규모 프로젝트를 전제로 합니다. 도메인 주도 설계(DDD)와 현대의 인기 패턴을 적용한 MSA는 대규모 팀에서 개별 도메인을 효율적으로 관리하고 유지보수할 수 있도록 도와줍니다.
폴리레포 기반 MSA 아키텍처는 대규모 시스템에서 효율적인 운영과 유지보수를 가능하게 합니다.
2. MSA 핵심은 운영 ! 오케스트레이션, 모니터링, 로깅 그리고 Observability
3. 데이터 일관성과 트랜잭션 관리를 위한 3가지 핵심 패턴
-
데이터를 변경하는 작업(Command)과
데이터를 조회하는 작업(Query)을 분리하는 패턴
왜 중요한가요?
CQRS 패턴은 읽기와 쓰기 작업을 분리하여 각각을 최적화할 수 있어, 대규모 시스템에서 성능을 극대화하고 효율적인 데이터 처리를 제공합니다. 이를 통해 더 빠르고 유연한 시스템을 개발할 수 있습니다. -
분산 시스템에서 여러 마이크로서비스 간의
트랜잭션을 관리하기 위한 패턴
왜 중요한가요?
SAGA 패턴은 분산 시스템에서 마이크로서비스 간 트랜잭션을 효과적으로 관리해 데이터 일관성과 무결성을 유지합니다. 이를 통해 복잡한 분산 환경에서도 안정적이고 신뢰성 있는 시스템을 구축할 수 있습니다. -
모든 상태 변경을 이벤트로 기록하여
순차적 이벤트로부터 시스템 상태를 도출하는 패턴
왜 중요한가요?
Event Sourcing 패턴은 히스토리가 중요한 데이터 관리나 대규모 트래픽 처리를 필요로 하는 시스템에서 데이터 일관성과 무결성을 보장합니다. 이를 통해 복잡한 시스템에서도 모든 변경 내역을 정확히 추적하고, 중간 통계를 효율적으로 유지하며, 리소스를 최적화할 수 있습니다.
강사 소개
아무리 좋은 강의가 있어도
완강을 하지 못한다면 의미가 없습니다.
강의를 효율적으로 학습하기 위해서는 "왜?"라는 질문이 매우 중요합니다.
단순히 "이렇게 배웠으니까"가 아니라, 왜 특정 방식으로 개발해야 하는지 이해하는 것이 필요하죠.
제 강의에서는 항상 "왜 이렇게 해야 할까?"에 대한 답을 명확히 제공하려고 노력합니다.
덕분에 많은 수강생들이 다른 강의에서는 이해하지 못했던 부분도 쉽게 이해할 수 있었다고 말합니다.개발자는 항상 새로운 것을 배워야 하는 직업입니다.
하지만 배우는 과정이 항상 즐겁지만은 않죠?
여러분이 포기하지 않도록 재미있는 프로젝트를 통해 실무 위주의 강의를 구성했습니다.
단순히 도큐멘테이션을 읽어주는 강의는 하지 않습니다.
덕분에 제 강의는 온라인 강의임에도 완강률이 매우 높습니다.
이번 강의에서도 여러분이 끝까지 즐겁게 학습할 수 있도록 최선을 다하겠습니다.
함께 재미있게 배우며 성장해봅시다!
지금까지 이런 과정은 없었다. 함께 만들어 나갈 코드팩토리 백엔드 아카데미
코드팩토리 백엔드 아카데미 로드맵
콘텐츠 미리보기
백엔드 개발 로드맵
패스트캠퍼스에서 졸업하세요!
코드팩토리 아카데미는 개발 업계 종사자를 위해
난이도 / 주제별 체계적인 로드맵을 제공해드릴 예정입니다.
커리큘럼
아래의 모든 강의를 이 강의 하나로 모두 들을 수 있습니다.지금 한 번만 결제하고 모든 강의를 평생 소장하세요!
CLASS 2