MSA ( MicroSerivices Architecture )

박태현·2026년 1월 20일

Web & Network

목록 보기
4/6

모놀리식 아키텍처


모든 기능이 하나의 애플리케이션으로 구성된 아키텍처

( 하나의 코드베이스, 빌드, 배포, DB )

특징

  • 구조가 단순하다.

  • 개발 및 배포가 쉽습니다.

  • 트랜잭션 관리가 쉽습니다.

단점

  • 규모가 커질수록 유지보수가 복잡하다.

  • 부분 수정도 전체 배포를 해야합니다.

  • 한 기능에 장애가 발생하면 전체 서비스에 영향을 미칩니다.

MSA ( MicroSerivices Architecture )


서비스를 기능 단위로 쪼개어 독립적인 서비스로 운영하는 아키텍처

( 서비스별 코드베이스, 배포, DB, 서비스 간 통신은 네트워크 )

[ 사용자 ][ API Gateway ]
     ↓
 ├─ 회원 서비스 → 회원 DB
 ├─ 주문 서비스 → 주문 DB
 ├─ 결제 서비스 → 결제 DB
 ├─ 알림 서비스 → 알림 DB

특징

  • 서비스 단위를 분리할 수 있습니다.

  • 독립적인 배포와 확장이 가능합니다

    ( 개별 서비스 배포가 가능하고, 배포 시 전체 서비스에 대한 중단이 발생하지 않습니다. )

  • 장애를 격리할 수 있습니다.

  • 서비스별 기술 스택을 변경할 수 있습니다.

단점

  • 구현 및 운영 난이도가 복잡합니다.

    서비스가 분리되어 있기에 테스트와 트랜잭션 복잡도가 증가합니다.

  • 서비스 호출이 모두 API 기반이기 때문에 네트워크 비용이 있으며, Latency가 발생할 수 있습니다.

  • 데이터 정합성을 맞추기 어렵습니다. ( Saga 패턴, 이벤트 소싱 기법 사용 )

모놀리식 아키텍처와 MSA 아키텍처


모놀리식 아키텍처에서는 하나의 애플리케이션 안에서 여러 기능이 함께 동작하므로, 컴포넌트 간의 통신이 단순한 메서드 호출로 이루어집니다.

하지만, MSA( Microservice Architecture )에서는 기능 단위로 서비스가 분리된 분산 시스템 구조이기 때문에, 서로 다른 서비스 간에 통신 방식을 구현해야 합니다.

이처럼 서로 다른 프로세스 간에 데이터를 주고받는 통신을 IPC( Inter-Process Communication , 프로세스 간 통신 )라고 합니다.

MSA 환경에서 사용되는 IPC 방식은 통신 방식에 따라 아래와 같이 구분할 수 있습니다.

  • 동기식 통신: REST API, Apache Thrift, gRPC

  • 비동기식 통신: AMQP, STOMP, 메시지 브로커( Kafka .. )

이 중에서도 REST API는 구현이 간단하고 범용성이 높아 가장 널리 사용되는 통신 방식으로, 많은 MSA 환경에서 기본적인 서비스 간 통신 수단으로 활용됩니다.

또한, MSA에서는 여러 마이크로서비스가 외부에 직접 노출되지 않도록, API 서버 앞단에 API Gateway를 두는 구조를 많이 사용합니다.

API Gateway는 클라이언트의 요청을 단일 엔드포인트로 받아, 내부의 각 마이크로서비스로 적절히 라우팅하는 역할을 수행합니다.

이를 통해 클라이언트는 내부 서비스 구조를 알 필요 없이 단일 진입점을 통해 시스템을 사용할 수 있으며, 마이크로서비스 아키텍처의 복잡도를 효과적으로 감출 수 있습니다.

API Gateway는 MSA 환경에서 아래와 같은 역할을 수행하며, 전체 시스템의 확장성과 관리 효율성을 높입니다.

  • 인증 및 인가: 요청에 대한 사용자 인증과 권한 검증
  • 로깅 및 모니터링: 트래픽 및 요청 흐름에 대한 기록과 관찰
  • 부하 분산: 다수의 서비스 인스턴스로 요청을 분산 처리

이 결과, 개발자는 각 마이크로서비스의 핵심 비즈니스 로직에 집중할 수 있고, 시스템 전반의 유지보수와 확장도 보다 용이해집니다.

profile
꾸준하게

0개의 댓글