모놀리식 아키텍처와 MSA 아키텍처

MINSANG YU·2022년 6월 20일
0
post-thumbnail

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

모놀리식 아키텍처란 소프트웨어 프로그램의 전통적인 모델로, 애플리케이션 전체가 하나의 서비스 형태로 개발되어 있는 것을 의미한다.

장점

  1. 구조가 단순해 개발 및 유지 보수가 용이하다.
  2. 큰 서비스 하나로 이루어져있기 때문에 빌드, 배포, 테스트가 용이하다.

단점

  1. 서비스 규모가 커질수록 코드의 복잡도가 증가해 개발 및 유지 보수가 어려워진다.
  2. 서비스 규모가 커질수록 빌드, 배포 시간이 오래 걸리는데, 작은 수정사항에도 서비스 전체를 다시 빌드하고 배포해야하므로 효율성이 떨어진다.
  3. 기존 서비스에 새로운 기능이나 기술 스택을 추가하기 어렵다.
  4. 서비스의 어느 한 부분에서 오류가 발생할 경우 시스템 전체의 오류로 이어질 수 있다.

이러한 단점들로 인해 서비스의 규모가 커지면서 개발과 유지관리에 소요되는 시간과 비용이 늘어나자, 이를 해결하기 위해 서비스 경량화 구조 기반의 아키텍처인 MSA가 각광받게 된다.


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

마이크로 서비스 아키텍처란 경량화되고 독립적인 여러 개의 서비스를 조합하여 하나의 애플리케이션을 구현하는 아키텍처를 말한다.

장점

  1. 각 서비스를 독립적으로 배포할 수 있기 때문에 수정 사항이 생기면 수정이 된 서비스만 개별적으로 빌드하고 배포해 효율성이 좋다.
  2. 새로운 기능이나 기술 스택을 추가하는데 제약 사항이 적어 확장성이 용이하다.
  3. 서비스에서 오류가 발생 할 경우 다른 서비스에 영향을 주지 않기 때문에 대응하기 쉽다.
  4. 서비스가 독립적으로 개발되기 때문에 유지 보수에 용이하다.

단점

  1. 기본적인 구조가 모놀리식 아키텍처에 비해 복잡해 개발과 관리가 어렵다.
  2. 모놀리식 아키텍처의 경우 하나의 데이터베이스를 사용하기 때문에 DBMS에서 제공하는 트랜잭션 관리 기능을 이용하지만, MSA 아키텍처는 데이터베이스가 서비스 단위로 분산되어 있기 때문에 데이터 트랜잭션 관리가 까다롭다.
  3. 서비스끼리 호출이 필요할 때 API를 사용하기 때문에 통신 비용과 지연 시간이 증가한다.
  4. 서비스가 분산되어 있기 때문에 통합 테스트가 어렵다.

이처럼 모놀리식 아키텍처와 MSA 아키텍처 모두 각각의 장단점이 있지만, 대부분의 기업에서 제공하는 서비스의 규모는 MSA 아키텍처로 구성될 때 이점이 많기 때문에 최근 추세는 기존 모놀리식 아키텍처로 구성된 프로젝트를 MSA로 전환하는 것이 각광받고 있다.


출처

https://www.atlassian.com/ko/microservices/microservices-architecture/microservices-vs-monolith
https://www.samsungsds.com/kr/insights/1239180_4627.html

profile
쉿! 공부중

0개의 댓글