CS

[Architecture] MSA (vs MA)

SeungbeomKim 2024. 10. 22. 18:14

오늘은 애플리케이션을 구성하는 방법론인 MSA와 MA에 대해 알아보고, 각각의 특징과 장단점에 대해서 설명드리겠습니다.

 

대략적인 Architecture image입니다. 사진만 봐도 Monolitic은 한 곳에 뭉쳐져 있고, MSA는 각각 Microservice로 분산되어 있는 것을 육안으로 확인할 수 있습니다.

Monolitic vs MSA

MSA (Microservice Architecture)

  • 소프트웨어 시스템을 여러 작은 독립적인 서비스로 분할하여 개발하고 배포하는 방식
  • SOA (Service Oriented Architecture)의 특징을 공통으로 가집니다
    • SOA: 대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상 일 처리에 해당 소프트웨어 기능을 서비스로 판단하고 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 가는 방법론
  • 장단점
    • 장점
      • 각 서비스를 독립된 상호 컴포넌트간의 의존성 없기에 서비스별 소스 코드 수정이 쉽고, 수정한 서비스만 배포가 가능할 뿐만 아니라 배포 시 전체 서비스의 중단이 없습니다.
      • 요구사항 처리시에 MA에 비해 손쉽게 처리 가능합니다.
      • MA에 비해 각각의 서비스가 약한 결합도를 지니기에 오류가 발생해도 전체 서비스에 영향을 주지 않습니다.
    • 단점
      • 각 서비스를 독립된 서버에 분할 배치하기 때문에, 중복되는 모듈에 대해서 그만큼 메모리 사용량이 늘어나게 됩니다
      • 다른 서비스에 대한 종속성을 가지고 있지만, 분리되어 있기에 통합 테스트에 대한 어려움이 존재할 수 있습니다.
      • MA에서는 단일 DB에서 트랜잭션 처리가 수월했지만, MSA에서는 네트워크를 통해 독립적인 서비스가 상호작용하기에 트랜잭션 처리가 어렵습니다.

 

MA (Monolitic Architecture)

  • 하나의 애플리케이션 내에 모든 로직이 들어가 있는 형태의 아키텍처
  • Tomcat 서버, WAR 파일 내에 한 애플리케이션에 사용자 관리, 상품, 주문관리 등 모든 컴포넌트들이 담겨 있습니다.
  • 장단점
    • 장점
      • 작은 크기의 애플리케이션에는 적합합니다.
      • 개발/빌드/배포/테스트가 용이하며 인프라 구조가 단순하여 운영 비용 부담이 없습니다.
    • 단점
      • 특정 컴포넌트를 수정했을 경우에, 수정된 컴포넌트만 재배포하는 것이 아니라 전체 애플리케이션을 통으로 재배포해야 하므로 잦은 배포가 있는 시스템의 경우 불리합니다.
      • 여러 Server로 나누어 일을 처리하기 위한 Scale-out이 어렵습니다.
      • 특정 프레임워크, 언어에 종속적일 수 밖에 없습니다.

 

이번에 회사에서 같은 팀 팀원분과 함께하는 사이드 프로젝트에 MSA를 도입하려고 했는데, 도입하기 전에 관련 개념을 MA와 비교하여 정리해 보았습니다.

 

다음 포스팅에서는 MSA의 핵심 컴포넌트인 API Gateway에 대해서 상세히 기록해 보도록 하겠습니다.  

 

<참고 자료>

https://wooaoe.tistory.com/57

 

[MSA] MSA란 무엇인가? 개념 이해하기

MSA가 무엇인지 자세하게 알고싶어 개인적으로 정리하는 포스팅입니다. MSA? MicroService Architecture의 줄임말 👉🏻 마이크로서비스 아키텍처에 대한 정확한 정의는 없다. 하지만 마이크로서비스란

wooaoe.tistory.com

https://metanetglobal.com/bbs/board.php?bo_table=tech&wr_id=38

 

Metanet

성공하는 기업을 위한 Digital Business Platform, 메타넷 그룹 홈페이지입니다.

metanetglobal.com

https://bcho.tistory.com/948

 

대용량 웹서비스를 위한 마이크로 서비스 아키텍쳐의 이해

마이크로 서비스 아키텍쳐 (MSA의 이해)조대협(http://bcho.tistory.com) 배경 마이크로 서비스 아키텍쳐(이하 MSA)는 근래의 웹기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍쳐 스타일로,

bcho.tistory.com