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

 

마이크로서비스 아키텍처(Microservice Architecture)와 모놀리식 아키텍처(Monolithic Architecture)의 장단점을 비교하고, 각각 어떤 상황에서 각각이 적합한지에 대해 알아보겠다.

모놀리식 아키텍처 (Monolithic Architecture)

모놀리식 아키텍처는 전통적인 개발 방식으로 하나의 프로젝트에 모든 기능을 함께 포함한다. 이렇게 하면 코드 베이스가 커질수록 개발 및 배포에 복잡성이 증가한다.

아래는 모놀리식 아키텍처의 예시이다.

출처 : http://clipsoft.co.kr/wp/blog/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98msa-%EA%B0%9C%EB%85%90/

모놀리식 아키텍처의 경우 위의 그림과 같이 모듈단위로 쪼개는 것이 아닌 하나의 프로젝트로 전체 애플리케이션을 묶어서 개발하는 방식이다. 이의 경우 회원, 상품, 주문뿐만 아니라 여러 개의 비즈니스 로직이 추가된다면 코드베이스가 커지게 되는 구조이다.

아래는 모놀리식 아키텍처의 장단점을 추려보았다

모놀리식 아키텍처의 장점
- 초기 개발에 유리하며 빠르게 프로토타입을 개발할 수 있다.
- 필요한 모든 기능을 한 번만 호출하기 때문에 복잡한 통신 없이 직접 사용할 수 있다.

모놀리식 아키텍처의 단점
- 코드 베이스가 커질수록 복잡해지고 유지관리 및 확장이 어려워진다.
- 일부 기능을 수정하거나 업데이트를 하려면 전체 애플리케이션을 재배포해야한다.


모놀리식 아키텍처를 사용하기에 적합한 상황

- 간단한 소규모 프로젝트( 사이드 프로젝트 )
- 프로토타입 제작 및 단기 프로젝트 

마이크로서비스 아키텍처 (Microservice Architecture)

MSA는 여러 개의 작은 서비스로 구성되어 각 서비스가 독립적으로 개발되고 배포되는 구조이다.
MSA로 구성되어 있는 애플리케이션의 경우 전체 시트템이 분산되어 있어 개발, 배포가 독립적으로 가능하며 확장성 유지관리가 용이해진다.

아래는 MSA에 대한 예시이다.

출처:http://clipsoft.co.kr/wp/blog/%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98msa-%EA%B0%9C%EB%85%90/

MSA의 경우 위의 그림과 같이 애플리케이션을 작은 독립적인 서비스로 분리하고, 각 서비스는 모듈 또는 프로젝트로 나눠서 개발 및 관리를 진행한다. 이렇게 개발을 진행할 경우 독립적으로 개발 및 배포가 가능하여 개별적인 배포 주기를 가질 수 있다.

아래는 MSA의 장단점을 추려보았다.

MSA의 장점
- 서비스 간 독립성으로 인해 확장성과 유연성이 높아진다.
- 기능 고립성이라는 특징 때문에 일부 서비스가 실패하더라도 전체 시스템에 큰 영향을 미치지 않는다.

MSA의 단점
- 서비스 간 통신이 필요하며, 서로 간 연결 구축 및 관리의 복잡성이 증가한다.
- 초기 개발 및 통신 등에 시간이 소요된다.

+ Recent posts