본문 바로가기
Programming

[Programming] - MSA(Micro Service Architecture란

by nam_ji 2024. 3. 6.

MSA란

마이크로 서비스 아키텍처는 작고 독립적인 서비스들의 집합으로 구성된 애플리케이션 구조이다.

모놀로식 아키텍처와 마이크로 서비스 아키텍처 비교 및 장단점

모놀로식 아키텍처

  • 모놀로식 아키텍처는 전통적인 개발 방식으로 하나의 프로젝트에 모든 기능을 함께 포함합니다. 이렇게 하면 코드 베이스가 커질수록 개발 및 배포에 복잡성이 증가합니다.
  • 모놀로식 아키텍처의 경우 모듈 단위로 쪼개는 것이 아닌 하나의 프로젝트로 전체 애플리케이션을 묶어서 개발하는 방식입니다.
  • 위의 경우 회원, 상품, 주문 뿐 아니라 여러 개의 비즈니스 로직이 추가된다면 코드베이스가 커지게 되는 구조입니다.
  • 모놀로식 아키텍처 장단점
    • 장점
      1. 초기 개발에 유리하며 빠르게 프로토 타입을 개발할 수 있스빈다.
      2. 필요한 모든 기능을 한 번만 호출하기 때문에 복잡한 통신 없이 직접 사용할 수 있습니다.
    • 단점
      1. 코드 베이스가 커질수록 복잡해지고 유지관리 및 확장이 어려워집니다.
      2. 일부 기능을 수정하거나 업데이트를 하려면 전체 애플리케이션을 재배포해야합니다.
  • 모놀로식 아키텍처를 사용하기에 적합한 상황
    • 간단한 소규모 프로젝트 (사이드 프로젝트)
    • 프로토 타입 제작 및 단기 프로젝트

마이크로 서비스 아키텍처

  • MSA는 여러 개의 작은 서비스로 구성되어 각 서비스가 독립적으로 개발되고 배포되는 구조입니다.
  • MSA로 구성되어 있는 애플리케이션의 경우 전체 시스템이 분산되어 있어 개발, 배포가 독립적으로 가능하며 확장성과 유지관리가 용이해집니다.
  • MSA의 겨우 애플리케이션을 작은 독립적인 서비스로 분리하고, 각 서비스는 모듈 또는 프로젝트로 나눠서 개발 및 관리를 진행합니다. 이렇게 개발을 진행할 경우 독립적으로 개발 및 배포가 가능하여 개별적인 배포 주기를 가질 수 있습니다.
  • MSA의 장단점
    • 장점
      1. 서비스 간 독립성으로 인해 확장성과 유연성이 높아집니다.
      2. 기능 고립성이라는 특징 때문에 일부 서비스가 실패하더라도 전체 시스템에 큰 영향을 미치지 않습니다.
    • 단점
      1. 서비스 간 통신이 필요하며, 서로 간 연결 구축 및 관리의 복잡성이 증가합니다.
      2. 초기 개발 및 통신 등에 시간이 소요됩니다.
  • MSA를 사용하기에 적합한 상황
    • 대규모 및 복잡합 프로젝트
    • 시스템을 독립적으로 개발하고 확장해야 하는 경우