카테고리 없음

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

근즈리얼 2021. 3. 5. 21:01
728x90

모놀리식 아키텍쳐와 마이크로 서비스 아키텍쳐에 대해 간략하게 정리해 보겠습니다.

우선 모닐리식 아키텍쳐와 마이크로 서비스 아키텍쳐는 서로 반대되는 개념입니다.

 

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

- 전통의 아키텍쳐를 의미한다.

- 하나의 서비스 또는 애플리케이션이 하나의 거대한 아키텍쳐를 가질 때 모놀리식 아키텍쳐라고 한다.

 

장점

1. 어떤 서비스던지 개발되어 있는 환경이 같아서 복잡하지 않다.

2. 쉽게 고가용성 서버 환경을 만들 수 있다.

3. End-to-End 테스트가 용이하다. (클라이언트의 입장에서 테스트 해보기)

 

단점

1. 프로젝트의 규모가 커진다면 어플리케이션의 구동시간이 늘어나고 빌드, 배포시간이 늘어난다.

2. 조그마한 수정사항이 있더라도 수정 후 전체를 다시 배포해야하는 부담이 있다.

3. 많은 양의 코드가 몰려있어 개발자가 모두 이해할 수 없고 유지 보수가 힘들다.

4. 기존부터 있던 개발자가 아니라면 그 코드를 이해하기 어렵다.

5. 일부의 문제가 전체에 영향을 미칠 수 있다.

6. 기능별로 알맞은 기술, 언어, 프레임워크를 선택하기가 까다롭다.

 

마이크로 서비스 (MicroService)

- 애플리케이션을 상호 독립적인 최소 구성 요소로 분할하는 아키텍쳐이다.

- 모든 요소가 독립적이며 연동되어 동일한 태스크를 완수한다.

 

장점

1. 기능별로 마이크로서비스를 개발하고, 작업 할당을 서비스 단위로 하면 개발자가 해당 부분을 온전히 이해할 수 있다.

2. 새로 추가되거나 수정사항이 필요하면 그 마이크로 서비스만 빠르게 빌드 후 배포할 수 있다.

3. 해당 기능에 맞는 기술, 언어 등을 선택하여 사용할 수 있다.

4. 일부분의 오류가 있다면 해당 기능에만 오류가 발생하고 그 부분만 빠르게 고쳐 정상화가 가능하다.

 

단점

1. 여러 작은 서비스가 분산되다 보니 관리하기가 힘들다.

2. 서로를 호출하며 전체 서비스가 이루어지기 때문에 무조건 다른 서비스를 호출하는 코드가 추가되고 그 부분이 모놀리식 아키텍쳐와 비교했을 때 조금 까다롭다.

3. 마이크로 서비스들끼리 계속 통신을 하다 보니 모놀리식 아키텍쳐에 비해 통신관련 오류가 잦을 수 있다.

4 기능 하나하나의 테스트는 용이할 수 있으나 전체를 테스트하는데 어려움이 있다.

728x90