Monolithic vs Microservice 아키텍처

이상민·2021년 7월 10일
0

1. Monolithic Architecture

  • 전통적인 서버 사이드 시스템에서 사용하는 아키텍쳐

  • 시스템의 모든 기능은 하나의 애플리케이션에서 작동함

1-1. 모노리틱 아키텍처 장점

  • 개발이 더 빠르다 : 간단한 기능을 가진 애플리케이션으로 시작해 점점 기능을 추가할 수 있다

  • 성능이 더 좋다 : 마이크로 서비스와 달리 api들을 통해 통신하는 오버헤드가 없어 빠르다

1-2. 모노리틱 아키텍처 단점

  • 유지보수의 어려움 : 특히 코드가 잘 짜여지지 않은 경우, 프로세스가 긴밀히 결합되어 있어 한 기능의 수정이 다른 기능에 영향을 미칠 수 있다

2. Microservice Architecture

  • 모든 기능이 각각의 애플리케이션인 아키텍처

  • 서로 다른 서버에서 실행되고 api를 통해 통신한다

2-1. 마이크로서비스 아키텍처 장점

  • 유연한 확장성 : 각각의 구성 요소들을 따로 확장 시킬 수 있어 훨씬 유연하다

  • 디버깅 용이성 : 각각 요소들을 테스트해 문제들을 격리 시킬 수 있어 버그의 탐색이 쉽다

  • 안정성 : 특정 요소에 문제가 발생해도 다른 요소들을 정상 작동한다

  • 분업 용이성 : 특히 원격으로 작업시, 마이크로서비스별로 분업할 수 있어 분업이 더 쉬울 수 있다

2-2. 마이크로서비스 아키텍처 단점

  • 개발이 더 어렵다 : 각각의 구성요소들은 독립적으로 작동할 수 있어야하고, 요소간 통신을 위해 api를 설계하는 등 개발이 더 복잡하다

3. Monolithic vs Microservice

결국 어떤 애플리케이션을 만드는지가 중요하다. 개발 기한, 비용과 함께 위 장단점을 살펴본다면 어떤 아키텍처가 프로젝트에 더 맞을지 정할 수 있다.

참고 자료 : https://www.youtube.com/watch?v=RJkn9VHM7lc

profile
편하게 읽기 좋은 단위의 포스트를 추구하는 개발자입니다

0개의 댓글