본문 바로가기
won2dev-log
HomeArchiveTagsCategoriesAboutProjects
HomeArchiveTagsCategoriesAboutProjects
won2dev-logwon2dev-logwon2dev-log

비전공 개발자의 로그 | won2dev-log

Navigation
  • Home
  • Archive
  • About
  • Projects
Categories
  • Docs
  • TIL
  • Automation
  • Git · GitHub
  • Project
Tags
  • TIL
  • Java
  • Spring
  • Backend
  • n8n
더보기
About

기록을 거름 삼아 공유는 성장을 만든다.

LicensePrivacy
© won2dev 2026. All rights reserved.
Home›TIL›TIL - MSA 핵심 요소 정리
TIL

TIL - MSA 핵심 요소 정리

won2dev·2026년 04월 15일
#TIL#Spring

학습 키워드

  • MSA (Microservices Architecture)
  • Service Discovery (Eureka)
  • API Gateway (Spring Cloud Gateway)
  • Load Balancing (FeignClient)
  • Circuit Breaker (Resilience4j)
  • Config (Spring Cloud Config)

학습 한 내용

기존 모놀리식은 서버 하나에 모든 기능을 넣었다면, MSA는 기능을 서비스 단위로 쪼개서 여러 서버에 나눠 올리는 것이다. 서버가 많아지면 관리가 힘든데, 이를 해결해 주는 필수 도구들을 정리했다.

Eureka (서비스 위치 저장소)

  • 역할: API 서버들의 주소록
  • 설명: 서버가 켜질 때 내 이름은 USER-SERVICE이고 주소는 192.168.0.5:8080라고 유레카에 등록한다. 다른 서비스들은 유레카만 보고 서로를 찾아간다.

Spring Cloud Gateway (단일 진입점)

  • 역할: 서비스들의 정문
  • 설명: 클라이언트는 수십 개의 서비스 주소를 알 필요 없다. 게이트웨이 주소 하나로 요청을 보내면, 게이트웨이가 주소를 보고 적절한 서비스로 연결해 준다. 여기서 JWT 인증 같은 공통 필터 처리를 적용할 수 있다.

FeignClient (서비스 간 호출 및 로드밸런싱)

  • 역할: 서비스끼리 대화할 때 쓰는 무전기
  • 설명: 주문 서버가 상품 서버의 데이터를 가져와야 할 때 사용한다. 인터페이스에 어노테이션만 붙이면 실제 호출 코드를 알아서 짜준다. 여러 대의 상품 서버가 있을 때 골고루 요청을 나눠주는 로드밸런싱 기능이 포함되어 있다.

Resilience4j (장애 대응 서킷 브레이커)

  • 역할: 시스템의 두꺼비집
  • 설명: 어떤 서비스 하나가 고장 나서 응답이 안 오면, 시스템 전체가 마비될 수 있다. 이때 Resilience4j가 고장 난 서버로의 요청을 차단하고 미리 준비한 대체 로직(Fallback)을 실행해 시스템 전체가 죽는 걸 막는다.

Spring Cloud Config (중앙 설정 관리)

  • 역할: 서버 설정값들의 중앙 통제실
  • 설명: DB 주소나 API 키 같은 설정값을 서버마다 일일이 수정하지 않고, 중앙 서버 한 곳에서 관리한다. 설정이 바뀌면 서버 재시작 없이 실시간으로 반영할 수 있다.

MSA는 결국 잘 쪼개고, 잘 연결하고, 잘 버티는 것 이 핵심이다. 스프링 클라우드가 제공하는 도구들은 이 복잡한 과정을 자동화해준다. 특히 Resilience4j처럼 서버 하나가 맛이 갔을 때 해당 요청을 차단하고 fallback으로 기본값을 주는 기능은 안정성이 중요한 프로젝트에 필수적이다.

공유하기
이전 글Git 요약 (1) - Rebase, Stash, Squash Merge다음 글 TIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트

목차

  • 학습 키워드
  • 학습 한 내용
  • Eureka (서비스 위치 저장소)
  • Spring Cloud Gateway (단일 진입점)
  • FeignClient (서비스 간 호출 및 로드밸런싱)
  • Resilience4j (장애 대응 서킷 브레이커)
  • Spring Cloud Config (중앙 설정 관리)

카테고리

TIL

태그

#TIL#Spring

최근 글

Git 요약 (1) - Rebase, Stash, Squash MergeTIL - (4) Spring 어노테이션 정리: Mockito를 활용한 단위 테스트TIL - (3) Spring 어노테이션 정리: Lombok Getter, Setter와 생성자TIL - (2) Spring MVC와 WebFlux의 차이: 블로킹과 논블로킹TIL - (1) Spring 아키텍처, Go랑 비교하며 이해한 것들