마이크로서비스 아키텍처(MSA)는 거대한 단일 애플리케이션을 독립적으로 배포 가능한 작은 서비스의 조합으로 나누는 개발 방법입니다. 이를 통해 각 서비스는 독립적으로 개발, 배포, 확장이 가능해져 유연성과 확장성을 크게 향상시킬 수 있습니다. 특정 서비스의 장애가 전체 시스템에 영향을 미치는 것을 방지하여 안정성 또한 높아집니다.
What is Spring Cloud and Jenkins ?
Spring Cloud: Spring Boot 기반의 애플리케이션에서 MSA를 구축하는 데 필요한 다양한 패턴을 쉽게 구현할 수 있도록 도와주는 프레임워크입니다. 복잡한 분산 시스템 환경에서 발생하는 문제들을 해결하기 위한 다양한 컴포넌트를 제공합니다.
Jenkins: 대표적인 오픈소스 CI/CD 도구입니다. 소스 코드의 컴파일, 테스트, 패키징, 배포 등 CI/CD 파이프라인의 모든 단계를 자동화할 수 있으며, 수많은 플러그인을 통해 다양한 개발 및 운영 환경과 유연하게 연동할 수 있습니다.
이런 분들께 추천드려요.
✅
Spring Boot 경험은 있지만, 분산 시스템 및 MSA에 대한 이해를 넓히고 싶은 개발자.
✅
수동 배포 과정의 비효율성을 느끼고 배포 자동화(CI/CD)를 직접 구축해보고 싶은 분
✅
DevOps 문화에 관심이 많고, 개발부터 운영까지 아우르는 역량을 키우고 싶은 주니어 개발자
✅
안정적이고 확장 가능한 서비스 아키텍처 설계 및 구축 역량을 갖춰 커리어 전환을 꿈꾸는 분
2가지 강의를 순서대로 학습해보세요.
#1. Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
이 강의에서는 먼저 모놀리식 아키텍처의 한계를 이해하고 MSA의 기본 개념을 학습합니다. 그 후 Spring Cloud가 제공하는 핵심 컴포넌트들을 하나씩 배우며 직접 MSA를 구축해 나갑니다.
Service Discovery (Eureka): 여러 마이크로서비스들이 서로를 동적으로 찾아 통신할 수 있도록 도와주는 방법을 배웁니다.
API Gateway (Spring Cloud Gateway): 모든 클라이언트 요청의 단일 진입점을 제공하고, 라우팅, 인증/인가 등의 공통 기능을 처리하는 방법을 익힙니다.
Centralized Configuration (Config Server): 여러 서비스에 흩어져 있는 설정 파일들을 중앙에서 통합 관리하는 방법을 학습합니다.
Resilience (Resilience4j): 특정 서비스의 장애가 다른 서비스로 전파되는 것을 막는 서킷 브레이커 패턴을 구현합니다.
⭐⭐⭐⭐⭐
스프링 클라우드를 이해하는데 굉장히 큰 도움이 되었습니다. 구체적예제로 실습과이론에서 천천히 설명해주셔서 (앞에 마이크로서비스는 조금 빨라서 걱정했으나) 이해에 아주 큰 도움이 되었습니다. 감사합니다^^.
⭐⭐⭐⭐⭐
msa 프로젝트에 대한 흐름을 익힐 수 있었고 혼자서도 msa 프로젝트를 구축해볼 수 있게 되었습니다. 강의를 수강하지 않았더라면 독학으로는 절대 못했을것 같아요 ㅠㅠ 강의 촬영해주셔서 감사합니다!!
#2. Jenkins를 이용한 CI/CD Pipeline 구축
MSA 개발이 완료되었다면, 이제 변경 사항을 빠르고 안정적으로 사용자에게 전달할 차례입니다. 이 강의에서는 Jenkins를 설치하고 초기 설정을 진행하는 것부터 시작하여, 실제 운영 가능한 CI/CD 파이프라인을 단계별로 구축합니다.
Jenkins 기본 설정 및 플러그인 관리: Jenkins를 운영하기 위한 기본 지식과 핵심 플러그인 사용법을 익힙니다.
CI Pipeline 구축: GitHub(또는 다른 Git 저장소)의 소스 코드 변경을 감지하여 자동으로 코드를 빌드하고 테스트하는 파이프라인을 만듭니다.
CD Pipeline 구축: CI 파이프라인을 통과한 결과물을 Docker 이미지로 빌드하고, Docker Hub와 같은 이미지 저장소에 푸시한 뒤, 실제 서버 환경에 자동으로 배포하는 과정을 구현합니다.
Pipeline as Code (Jenkinsfile): Jenkinsfile을 작성하여 파이프라인을 코드로 관리함으로써, 파이프라인의 버전 관리, 재사용성, 협업 효율성을 높이는 방법을 배웁니다.
⭐⭐⭐⭐⭐
진짜 CI/CD 강의뿐만아니라 개인적으론 Docker + Kubernetes의 가장 기초적인 지식도 같이 섞여있어서 굉장히 유익했습니다. 그리고 현업에서 종사하시는분의 마인드가 보이는 강의라서 기초이면서도 굉장히 이해도 잘가고 도움도 많이 됬습니다. 강의 고민하시는분들 무조건무조건무조건무조건무조건무조건무조건무조건추천합니다.
⭐⭐⭐⭐⭐
설명 디테일하셔서 너무 좋습니다. 단순한 명령어 하나에 대한 설명부터 실습까지 친절하게 보여주시니 따라가기 수월했습니다. 저는 maven이 아니라 gradle 빌드로 진도를 나가서 중간중간 구글링을 했지만 그럼에도 좋았습니다. Spring Cloud 강의도 잘 듣고, 이후에 나올 WebFlux 강의도 수강하겠습니다.
Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해 배울 수 있는 강의입니다.
본 강의는 클라우드 네이티브 애플리케이션을 구성하는 4가지 핵심 요소(MSA, CI/CD, DevOps, Container) 중 하나인 CI(Continuous Integration, 지속적인 통합)과 CD(Continuous Deployment, 지속적인 배포) 파이프라인에 대한 다루는 강의입니다. 본 강의를 통해 CI/CD 도구인 Jenkins를 이용하여 로컬 환경과 클라우드 환경에 자신만의 자동화 파이프라인을 구축하고, 배포하는 데에 필요한 과정을 이해하고 실습해 볼 수 있습니다.