| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- event
- 백준
- 헥사고날
- BOJ
- DTO Projection
- 공통 언어
- Spring Cloud
- 안드로이드 스튜디오
- rabbitmq
- JPA
- Ubiquitous Language
- Domain Driven
- Context map
- Hexagonal Architecture
- Domain-Driven
- 컨텍스트 맵
- 이벤트 기반
- subdomain
- 클린 아키텍처
- EC2
- Rabbit MQ
- spring boot
- android studio
- 헥사고날 아키텍처
- clean architecture
- Thymeleaf
- CSRF
- Spring
- nopasswd
- hexagonal
- Today
- Total
취미겸생업
[Spring boot] MSA, Spring Cloud 개요 본문
MSA
기존 모놀리식 아키텍처
정의

- 모놀리식 아키텍처는 하나의 큰 코드베이스로 구성된 애플리케이션
- 모든 기능이 하나의 애플리케이션 내에 포함
특징
- 장점
- 간단한 배포: 모든 코드가 하나의 코드베이스에 포함되어 있어 배포가 단순
- 단일 데이터베이스: 하나의 데이터베이스를 사용하여 데이터 일관성을 쉽게 유지할 수 있음
- 단점
- 확장성 부족: 특정 기능을 확장하려면 전체 애플리케이션을 확장해야함
- 긴 개발 주기: 작은 변경 사항도 전체 애플리케이션을 다시 배포해야함
- 유연성 부족: 새로운 기술 도입이 어렵고, 특정 모듈에 종속적임
MSA 개요
Micro Services Architecture(MSA)
- 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 개발, 배포, 유지보수를 용이하게 하는 소프트웨어 아키텍처 스타일
- 각 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 배포되고 확장될 수 있음
- 서비스 간의 통신은 주로 HTTP/HTTPS, 메시지 큐, gRPC 등을 통해 이루어짐
주요 특징
- 장점
- 확장성: 각 서비스는 독립적으로 확장 가능, 특정 기능에 대한 성능 최적화가 용이
- 작은 팀 구성: 각 서비스는 작은 팀이 독립적으로 개발하고 관리할 수 있음
- 독립적 배포: 개별 서비스의 변경 사항을 독립적으로 배포할 수 있음
- 유연성: 서비스별로 적합한 기술 스택을 선택할 수 있음
- 단점
- 복잡성: 서비스 간 통신, 데이터 일관성 유지, 트랜잭션 관리 등의 복잡성이 증가
- 운영비용: 각 서비스의 모니터링, 로깅, 장애 대응 등을 개별적으로 관리해야 하므로 운영 비용이 증가
- 데이터 관리: 분산된 데이터베이스로 인해 데이터 일관성 유지가 어려울 수 있음
- 네트워크 지연: 서비스 간의 통신이 네트워크를 통해 이루어지므로 지연 시간이 발생할 수 있음
Spring Cloud
Spring Cloud 개요
Spring Cloud란

- 정의
- MSA 개발을 위해 다양한 도구와 서비스를 제공하는 스프링 프레임워크의 확장
- 마이크로서비스 아키텍처를 쉽게 구현하고 운영할 수 있도록 도움
- 주요 기능
- 서비스 등록 및 디스커버리: Eureka, Consul, Zookeeper
- 로드 밸런싱: Spring Cloud LoadBalancer, Ribbon
- 서킷 브레이커: Resilience4j, Hystrix
- API 게이트웨이: Spring Cloud Gateway, Zuul
- 구성 관리: Spring Cloud Config
- 분산 추적: Spring Cloud Micrometer, Zipkin, Sleuth,
- 메시징: Spring Cloud Stream
주요 모듈
- Eureka (서비스 등록 및 디스커버리)
- 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리
- 주요 특징
- 서비스 레지스트리: 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소
- 헬스 체크(Health check): 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장
https://nohumbit.tistory.com/45
[Spring boot] Spring Cloud 서비스 디스커버리 (Eureka)
서비스 디스커버리 (Eureka)마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능으로, 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스는 이를 조회
nohumbit.tistory.com
- Spring Cloud LoadBalancer (로드 밸런싱)
- 단종된 Ribbon을 대체하여 스프링 진영이 직접 개발한 클라이언트 사이드 로드 밸런서
- 주요 특징
- 비동기/논블로킹 지원: Spring WebFlux 및 WebClient와 완벽히 호환되는 가벼운 아키텍처
- 유레카 연동: Eureka 레지스트리로부터 최신 인스턴스 리스트를 동적으로 받아와 라운드 로빈 등의 알고리즘으로 부하 분산
https://nohumbit.tistory.com/46
[Spring boot] Spring Cloud 로드밸런싱
로드밸런싱로드 밸런싱이란네트워크 트래픽을 여러 서버로 분산, 특정 서버에 부하가 집중되는 것을 방지해 안정성 및 성능 향상클라이언트 사이드 로드 밸런싱클라이언트가 서버 목록을 갖고
nohumbit.tistory.com
- Resilience4j (서킷 브레이커)
- 단종된 Hystrix를 완전히 대체하는 자바 8 함수형 프로그래밍 기반의 경량 결함 허용 라이브러리
- 주요 특징
- 서킷 브레이커: 하위 서비스의 호출 실패율이 임계치를 넘으면 서킷을 열어(Open) 연쇄 장애를 차단
- 폴백(Fallback): 호출 실패나 서킷 오픈 시 미리 정의된 대체 로직을 실행하여 시스템 안정성 유지
- 모듈화 구성: 서킷 브레이커 외에도 재시도(Retry), 속도 제한(RateLimiter), 자원 격리(Bulkhead)를 필요한 만큼 골라 사용 가능
https://nohumbit.tistory.com/47
[Spring boot] Resilience4j 서킷 브레이커
서킷 브레이커 (Resilience4j)서킷 브레이커란마이크로서비스 간의 호출 실패를 감지하고 시스템의 전체적인 안정성을 유지하는 패턴외부 서비스 호출 실패 시 빠른 실패를 통해 장애를 격리하고,
nohumbit.tistory.com
- Spring Cloud Gateway (API 게이트웨이)
- 단종된 Zuul을 대체하는 스프링 공식 API 게이트웨이로, 마이크로서비스 전면에서 모든 진입 요청을 중앙 관리
- 주요 특징
- 고성능 라우팅: Spring WebFlux 기반의 비동기/논블로킹 구조로 대규모 트래픽을 효율적으로 라우팅
- 조건부 필터링(Predicates & Filters): 요청 전후에 작동하는 필터 체인을 통해 공통 인증, 권한 부여, 헤더 조작을 수행
- 복합 모니터링: 분산 추적(Micrometer) 및 메트릭 라이브러리와 결합하여 관문 통과 트래픽의 모니터링 기능 제공
https://nohumbit.tistory.com/50
[Spring boot] Spring Cloud Gateway (API 게이트웨이)
Spring Cloud Gateway (API 게이트웨이)API 게이트웨이란클라이언트의 요청에 대한 단일 진입점으로 내부 서비스로 라우팅보안, 로깅, 모니터링, 요청 필터링 등을 처리Spring Cloud Gateway(SCG)란Spring 프로젝
nohumbit.tistory.com
- Spring Cloud Config (구성 관리)
- 분산된 환경에서 중앙 집중식 설정 관리를 제공
- 주요 특징:
- Config 서버: 중앙에서 설정 파일을 관리하고 각 서비스에 제공
- Config 클라이언트: Config 서버에서 설정을 받아서 사용하는 서비스
- 설정갱신: 설정 변경 시 서비스 재시작 없이 실시간으로 반영
https://nohumbit.tistory.com/48
[Spring boot] Spring Cloud Config
Spring Cloud ConfigSpring Cloud Config란분산 시스템 환경에서 중앙 집중식 구성 관리를 제공하는 프레임워크로, 설정을 중앙에서 관리하고, 변경 사항을 실시간으로 반영할 수 있음Git, 파일 시스템, JDBC
nohumbit.tistory.com
- Spring Cloud Micrometer/Zipkin (분산추적)
- MSA와 같은 분산 시스템에서 서비스 간의 요청 흐름을 추적하고 모니터링
- 각 서비스의 호출 관계와 성능을 시각화하여 각 서비스의 호출 흐름을 명확히 파악하고, 성능 병목이나 오류를 빠르게 진단
https://nohumbit.tistory.com/49
[Spring boot] Spring Cloud 분산 추적 (Micrometer, Zipkin)
Spring Cloud Micrometer 및 Zipkin분산추적 개념MSA와 같은 분산 시스템에서 서비스 간의 요청 흐름을 추적하고 모니터링하는 방법각 서비스의 호출 관계와 성능을 시각화하여 각 서비스의 호출 흐름을
nohumbit.tistory.com
'IT > Spring Boot' 카테고리의 다른 글
| [Spring boot] Spring Cloud 로드밸런싱 (0) | 2026.06.30 |
|---|---|
| [Spring boot] Spring Cloud 서비스 디스커버리 (Eureka) (0) | 2026.06.25 |
| [Spring boot] @Scheduled (0) | 2026.06.23 |
| [Spring boot] JPA Projection (0) | 2026.04.17 |
| [Spring boot] IntelliJ Thymeleaf Live Reloading (0) | 2026.04.12 |
