부트캠프/단기심화2기 TIL

[TIL] - Microservice Architecture 기본 학습

byungmin 2024. 11. 21. 23:57
Ch2 - MSA 학습 (Spring Cloud, 서킷브레이커, API Gateway, Config 등)

 

배운 것

제공 받은 MSA 강의를 듣고 있다. 오늘 공부한 내용은 서킷브레이커, API Gateway, 보안구성, Config 설정에 대해 공부했다. 꽤 이전부터 소프트웨어 아키텍처 방식이 Anti-fragile, Cloud Native 개념이 주목받고 있다. 시스템이 로컬에서 클라우드로 이전되었고 확장성과 안정성이 더 강화되었으며 이로 인해 지속적인 변경사항에 유연하게 대응할 수 있게 됐다.

 

Cloud Native를 구성하는 요소
  • Microservices: 독립적으로 배포 가능한 작은 서비스들로 구성.
  • Containers: 애플리케이션과 그 종속성을 캡슐화하여 일관된 환경 제공.
  • CI/CD: 지속적인 통합 및 배포를 통해 빠르고 안정적인 릴리스 지원.
  • DevOps: 개발과 운영 간 협업을 강화하여 자동화와 효율성을 높임.

The main technologies in Cloud-Native DevOps

 

 

 

Spring Cloud 구성
  • 마이크로서비스 아키텍처: 애플리케이션을 작고 독립적인 서비스로 분리하여 개발, 배포, 확장이 용이하도록 지원한다.
  • 서비스 디스커버리: Eureka Server를 통해 서비스 등록 및 검색을 지원한다. 마이크로서비스들은 Eureka에 자신을 등록하고 다른 서비스의 위치를 찾을 수 있다.
  • API 게이트웨이: Spring Cloud Gateway를 통해 클라이언트 요청을 적절한 마이크로서비스로 라우팅하고 인증, 로깅 등의 공통 기능을 제공한다.
  • 구성 관리: Spring Cloud Config로 중앙 집중식 구성 관리를 지원하여 여러 환경과 서비스에 걸쳐 일관된 구성을 유지할 수 있다.
  • 회복성과 장애 허용: Resilience4j를 통해 Circuit Breaker 패턴을 구현하여 서비스 간 통신의 안정성을 높인다.
  • 분산 추적: Spring Cloud Sleuth로 마이크로서비스 간 요청 흐름을 추적할 수 있다.
  • 보안: Spring Cloud Security를 통해 OAuth2, SSO 등의 보안 기능을 제공한다.
  • 로드 밸런싱: 서비스 인스턴스 간 워크로드를 분산하는 로드 밸런싱 메커니즘을 제공한다.

Spring Cloud architecture highlights

 

하루 회고

첫 번째 프로젝트 이후 새로 배우는 것들이 많아졌다. 이번 단기 심화를 신청한 이유도 MSA 관련 내용을 배우고 프로젝트를 하기 위함인데, 처음 강의를 보며 들었던 생각은, 아키텍처를 구성하기 위해 필요한 기술들과 알아야 할 개념들이 많다는 것이다. 강의를 듣는 주간이라 조금 느슨하게 하려고 했는데, 더 집중해서 공부해야겠다.