MicroService Architecture(MSA)

김형준 Kim Hyeong Jun·2023년 2월 27일
0

Monolith 아키텍쳐와 상반되는 개념이다.

Monolithic Architecture

모든 모듈은 하나의 서비스 내부에 종속되어 있으며 서비스 자체에 집중할 수 있는 구조로 되어있다.

즉, 다른 역할을 하는 모듈들이 모여서 하나의 프로젝트를 이룬다는 것이다.

장점

  • 단순한 구조
  • 개발환경과 방법의 통일성
  • 개발, 빌드, 배포가 간편
  • End to End 테스트가 쉬움

E2E(End-to-End) 테스트란 사용자 중심으로 처음부터 끝까지 어플리케이션 흐름을 테스트하는 소프트웨어 테스트 방법 중 하나

단점

  • 프로젝트 규모가 커질수록 복잡도가 가파르게 증가
  • 코드 전체를 이해하기 힘듬
  • 빌드 시간의 증가
  • 새로운 기술을 적용하기 위해 프로젝트 전체를 수정해야할 수도 있음

MicroService Architecture

작은 서비스 여러개가 모여 하나의 시스템을 제공하는 아키텍처를 뜻한다.

각 서비스는 작고 독립적이며 느슨하게 결합되어 있다. 때문에 서비스들을 독립적으로 배포할 수 있으며, 전체 프그램을 빌드한 뒤에 재배치하지 않고도 기존 서비스들을 업데이트 할 수 있다.

장점

  • 프로그램 수정, 개선이 빠름
  • 독립적으로 개발가능
  • 서비스 하나가 다운되더라도 서비스 전체가 다운되는 것이 아님
  • 서비스를 독립적으로 확장가능
  • 리소스의 유연한 운용 가능

단점

  • 서비스간의 통신이 복잡함
  • 서비스끼리의 테스트가 어려움
  • 복잡하고 독립적인 구조로 인해 통합적인 유지관리가 어려워질 수 있음

요약

마이크로서비스 아키텍처란 작은 서비스들을 각각 배포하고 연결하여 하나의 전체 서비스를 구성 아키텍처를 의미한다. 코드의 수정과 추가가 용이하고, 각각의 서비스를 구성하는 코드를 어떻게 짤지에 대해 자유롭다는 장점이 있다. 하지만 운영의 복잡도가 아주 높아진며, 문제가 발생했을 시에 어떤 서비스에 문제인지 파악하기 어려워진다는 단점이 있다.


Reference

마이크로서비스가 뭔데 유행임
MicroService Architecture란? - 호롤리한 하루
Microservice Architecture란? - Dope

profile
I want be a developer🙂

0개의 댓글