[Architecture] MSA (vs MA)

2024. 10. 22. 18:14·CS

오늘은 애플리케이션을 구성하는 방법론인 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

 

저작자표시 비영리 변경금지 (새창열림)

'CS' 카테고리의 다른 글

[CS] JVM Memory Structure  (6) 2025.08.15
[Tomcat] Tomcat의 핵심 컴포넌트와 동작 과정에 대해 분석해보자  (7) 2025.08.09
[CS] HTTP, HTTPS의 개념과 차이점에 대해 알아보자  (0) 2023.12.01
[CS] I/O 속도 개선을 위한 ios_base::sync_with_stdio(false), cin.tie(NULL), '\n'  (1) 2023.08.15
[CS] 면접을 위한 CS 전공지식 노트 정리(chapter4 데이터베이스)  (1) 2023.06.05
'CS' 카테고리의 다른 글
  • [CS] JVM Memory Structure
  • [Tomcat] Tomcat의 핵심 컴포넌트와 동작 과정에 대해 분석해보자
  • [CS] HTTP, HTTPS의 개념과 차이점에 대해 알아보자
  • [CS] I/O 속도 개선을 위한 ios_base::sync_with_stdio(false), cin.tie(NULL), '\n'
SeungbeomKim
SeungbeomKim
[IT(PS, CS, SW, etc.) 지식 기록] Github : https://github.com/daily1313/
  • SeungbeomKim
    개발 블로그
    SeungbeomKim
  • 전체
    오늘
    어제
    • 분류 전체보기 (403)
      • 일상 (34)
        • 여행 (17)
        • 회고록 (9)
        • 리뷰 (8)
      • PS (138)
        • 그리디 알고리즘[Greedy] (25)
        • 정렬 알고리즘[Sort] (18)
        • 문자열 알고리즘[String] (14)
        • 동적 계획 알고리즘[DP] (17)
        • 깊이 우선 탐색, 너비 우선 탐색[DFS, BFS.. (34)
        • 재귀[Recursion] (2)
        • 백트래킹[Backtracking] (5)
        • 브루트포스 알고리즘[Bruteforce] (16)
        • 자료 구조[Data Structure] (4)
        • 분할 정복 알고리즘[Divide & Conquer.. (3)
      • CS (29)
      • Network (11)
      • Database (8)
        • Elasticsearch (3)
      • Linux (3)
      • JavaScript (4)
        • AngularJS (1)
      • Java (101)
        • Effective Java (9)
        • Java Concept (21)
        • Spring (62)
        • Design Pattern (4)
      • Python (2)
      • Vscode (1)
      • DevOps (44)
        • AWS (27)
        • Git (7)
        • Docker (7)
        • Nginx (1)
      • 자격증 (10)
        • SQL (4)
      • 사이드 프로젝트 (3)
        • MatJido (3)
      • 기타 (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 소개
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    AWS
    docker
    메타코딩
    이펙티브 자바
    sqld
    Effective Java
    백트래킹
    정보처리기사
    정보처리기사 실기
    springboot
    컴퓨터구조
    일본여행
    정보처리기사 필기
    Wi-Fi
    다이나믹 프로그래밍
    BFS
    dfs
    Spring
    너비 우선 탐색
    dp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
SeungbeomKim
[Architecture] MSA (vs MA)
상단으로

티스토리툴바