본문 바로가기
정리

MA와 MSA 아키텍처

by dyddyd0 2025. 4. 19.

 

MA (Monolithic Architecture)

  • 하나의 애플리케이션에서 제공하는 모든 서비스를 하나의 백엔드 서버에서 처리하는 아키텍처
  • ex : 결제, 회원가입, 리뷰 등의 기능을 하나의 Spring Boot 서버에서 함께 개발
  • → 소규모 프로젝트에 적합함
        → 구조가 단순하고 모든 기능이 한 프로젝트에 몰려있어 개발이 빠름.
        → 빌드, 배포를 한 번에 진행할 수  있어 편리함.
        → 비교적 저렴하게 서버 한대로 운용 가능.
        → 팀 규모가 작아도 커뮤니케이션 부담이 없어 감당할 수 있음.
  • 모든 서비스가 하나의 코드베이스와 배포 단위를 공유함
  • 단점: 규모가 커지면 유지보수 어려움, 일부 기능 수정 시 전체 재배포 필요
        → 기능이 많아질수록 구조가 복잡해지고, 하나의 기능이 전체 서비스에 영향을 줄 수 있음.

 

 

MSA (Microservice Architecture)

  • 하나의 애플리케이션에서 제공하는 서비스를 여러 개의 독립된 백엔드 서버(마이크로서비스)로 나누는 아키텍처
  • ex : 결제, 회원가입, 리뷰 등의 기능을 각각 다른 서버로 개발 및 배포
  • 각 서비스는 독립적인 코드베이스, 데이터베이스, 배포 단위를 가질 수 있음
  • → 대규모 프로젝트에 적합함
        → 기능별로 나누어져있어 서비스의 확장과 유지보수가 좋음.
        → 기능별로 팀을 나누어 각 팀이 서로의 코드를 몰라도 팀별 분산 개발이 가능함.
        → 특정 기능을 수정할 때 전체코드를 재배포하지 않고 필요 부분만 배포가능함 → 빠른 릴리즈
        → MA와 다르게 장애가 발생하면 전체 서비스가 죽는게 아니라 특정 서비스만 죽음 → 장애 격리
  • 단점: 통신 복잡성 증가, 운영/관리 복잡도 상승 (예: API Gateway, 서비스 간 인증 등 필요)

 

 

감이 안잡힌다면 배민 MSA 도입도 한번 찾아보자

배민 마이크로서비스 여행기

반응형

'정리' 카테고리의 다른 글

스프링  (0) 2025.04.22
프로세스와 스레드  (0) 2025.04.22
SSO에 대해 알아보자  (1) 2025.04.18
socket과 webSocket  (0) 2025.04.17
index의 개념  (0) 2025.04.16