MSA 와 기존 방식의 차이

김명래·2023년 5월 3일
0

이번에 진행할 프로젝트에서 MSA 를 사용하여 개발하기로했다.
처음에는 MSA로 어떻게 개발하라는거지 ? 싶었다.

MSA 란?

MSA(MicroServiceArchitecture)는 MonolishArchitecture방식에서 Service 들을 독립적으로 모듈화 하여 개발하고 서로 RESTful 통해 통신하는 구조를 뜻 한다.

Monoish Architecture는 하나의 application으로 모든 service를 커버하는 형태이다.
즉, 나는 여태 Monolithic Architecture로 개발을 했던거였고 이를 Service 단위로 쪼개라는 의미였다.

그런데 Service 단위로 모듈화한 방식은 MSA 뿐만 아니라 SOA도 있다. 두가지 차이점을 보자.

SOA는 Service 들 사이의 커뮤니케이션을 SOAP를 통해 한다.

SOAP는 Simple Object Access Protocol의 약어로써 HTTP, HTTPS, SMTP통해 XML기반의 메시지를 통신 하는프로토콜 이다.


반면에 MSA 는 Service들간에 통신을 RESTful API를 통해 이루어진다.

왜 MSA 쓰나요 ?

기존 Monoish Architecture 환경에서 개발된 쇼핑몰에 구매작업을 수정/기능추가를 한다면 어떨까?
하나의 서비스를 수정하기 위해서는 다른 서비스의 연관성을 고려해야한다는 불편함이 있다.
따라서 다른 서비스들간에 결합도를 느슨하게 한다면 이런 수정/기능추가 작업이 매우 편리해질것이다.

갑작스럽게 트래픽이 많아진다면 어떨까 ?
트래픽이 많아져 하나의 Server(Service)에 과부하가 걸려 Vertical Scale작업을 진행하려고 한다면 매우 큰 비용지출이 필요하다. 하지만 Service 별로 관리하게 된다면 특정 Service만 늘려주면 되는것이다.

profile
독자보다 필자를 위해 포스팅합니다

0개의 댓글