여씨의 개발이야기

[입문] Monolithic Architecture vs Microservice Architecture 본문

☁ Cloud/🐳 Docker&K8s

[입문] Monolithic Architecture vs Microservice Architecture

yeossi 2022. 1. 6. 16:20

모놀리식 아키텍쳐 vs 마이크로 서비스

1. Monolithic Architecture

전통적인 서버 사이드 시스템에서 사용하는 아키텍쳐로, 하나의 서버에 다양한 시스템이 구성되어있다. 그렇기 때문에 서로 의존성을 갖고있다. 

1-1. 장점

- 개발이 빠르다. 만들어진 하나의 어플리케이션에서 기능을 확장해나가는 식으로 개발해나갈 수 있다.

- 전통적인 방식이기 때문에 다양한 레퍼런스가 있다. 그렇기 때문에 운용 또한 비교적 수월하다.

- 테스트 및 배포 파이프라인 구성이 쉽다.

1-2. 단점

- 이러한 아키텍처에서 서비스들은 서로 의존성이 있기 때문에 시스템의 일부가 수정되어도 전체를 build, test, packaging하는데 번거로움이 있다. 

- 그렇기 때문에 유지보수 또한 힘들며, 오류가 한 번 발생하면 전체에 영향을 미치게 된다.

 

2. Microservice Architecture(MSA)

모든 기능이 각각의 어플리케이션인 아키텍처를 말한다. 각각 다른 서버에서 실행되며 API를 이용하여 통신할 수 있다. 서비스들은 비즈니스 단위로 나뉘어지며 최소한의 중앙 집중식 구성이 되어야한다. 

1-1. 장점

- 의존성이 최소화된다. 어플리케이션을 구성하는 서비스들이 모두 컨테이너로 나뉘어지기 때문이다.

- 모듈을 새로 추가할 때 비교적 자유롭다.

1-2. 단점

- 이러한 아키텍쳐를 구성하는데 초기에 상당한 투자가 필요하다. 각 서비스마다 사용하는 DB나 언어가 다를 수 있기 때문에 개발하기가 복잡하다.

'☁ Cloud > 🐳 Docker&K8s' 카테고리의 다른 글

[입문] Docker와 K8s(Kubernetes)  (0) 2022.01.06
[입문] DevOps란?  (0) 2022.01.06
Comments