Til8
title: 2025-08-06 author: 강병호 date: 2025-09-06 category: TIL/강병호/2025/08 layout: post —
# MSA
최근 디지털 서비스의 변화속도의 빨라짐, 클라이언트들의 요구의 다양성, 서비스의 업데이트 빈도수에 따라 기업들은 변화에 빠르게 대응할 수 있는 구조
를 추구하게 되었다.
이에 대한 다양한 대응방식이 있는데 그 중 하나인 마이크로서비스 아키텍처 (MSA)가 존재한다.
마이크로 서비스는 하나으 ㅣ어플리케이션을 작고 독립적인 서비스들의 집합으로 구성하는 아키텍처이다. 이는 각 서비스가 도메인에 대한 책임을 가지고 다른 서비스는 API를 통해 통신되도록 구성하낟.
MSA 특징
- 독립적인 배포 및 스케일링 가능
- 각 서비스는 자기 데이터베이스를 가짐 (데이터 독립성)
- 조직적으로도 각 서비스는 소규모 팀이 책임
- 서비스 간 통신은 주로 HTTP REST API, gRPC, 메시지 브로커(Kafka, RabbitMQ 등)를 통해 이루어짐
MSA 시스템 구성 요소
- API Gateway : 클라이언트의 요청을 받아 적절한 마이크로 서비스로 전달하며 해당 과정에서 인증/인가, 로깅, 요청 라우팅 등의 기능을 수행한다.
- 서비스 디스커버리 : 동적으로 서비스 위치를 찾아주는 역할
- 마이크로서비스 : 유저 서비스, 결제 서비스 등 서비스별로 독립적으로 배포된다.
- 공통 인프라 : 로깅, 모니터링, 트레이싱, 장애 감지 등의 서비스
구조도
+-------------------+
| API Gateway |
+--------+----------+
|
+---------------+--------------------+
| | | +--------v-----+ +-------v-------+ +----------v----------+ | User Service | | Order Service | | Payment Service | +--------+-----+ +-------+-------+ +----------+----------+
| | |
+---v---+ +---v---+ +---v---+
| DB | | DB | | DB |
+-------+ +-------+ +-------+