ETC

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

로아다 2024. 2. 19. 10:32
728x90
반응형

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

모놀리식 아키텍처의 구조 예시

- 전통적인 개발 아키텍처다.

- 하나의 프로젝트에 모든 기능들이 싹 다 들어가 있다.

 

 

🔎 모놀리식 아키텍처 장점

- 중앙에 집중된 구조이기때문에 모든 기능의 처음부터 끝까지 테스트를 더 빠르게 할 수 있다.

- 하나의 프로젝트에 비즈니스 로직, UI, 콘텐츠 등 모든 구성 요소가 다 들어가 있기때문에 디버깅이 편하다.

- 소규모 프로젝트라면 단순하면서도 견고한 구조를 만들 수 있다.

 

 

🔎 모놀리식 아키텍처 단점

- 대규모 프로젝트라면 하나의 프로젝트가 점점 거대해져 구조를 제대로 파악하지 않으면 하나의 장애가 발생할 경우 다른 영역까지 영향을 끼칠 가능성이 높다.

- 아무리 작은 부분을 수정하더라도 전체 프로젝트가 망가질 수 있다. (의존성이 높기 때문)

- 배포가 잦은 환경이라면 하나만 수정하더라도 통으로 컴파일해서 재배포를 해야하는 번거로움이 존재한다.

 

 

 

 

💡 MSA(MicroService Architecture)란?

모놀리식과 마이크로서비스의 차이

- 모놀리식 아키텍처와 다르게 아주 작은 서비스 단위로 나눠서 각 서비스를 독립적으로 구성한다.

- 중앙 집중적인 모놀리식 아키텍처와 다르게 경량화된 API나 메시지로 직접 통신하면서 접근하는 방식이다.

 

 

 

🔎 마이크로서비스 아키텍처 장점

- 서비스를 아주 작은 단위로 나누기 때문에 규모를 확장하는데에 있어서 유연하다.

- 서비스를 독립적으로 개발하고 배포할 수 있어서 작업 시간이 단축된다.

- 배포가 빠르고 잦은 만큼 애자일 방식(요구사항 변동에 있어서 유연한 방식의 개발 모형)을 실천하기 편하다.

- 서비스 일부분에 문제가 생기면 시스템 전체가 장애나는 모놀리식 아키텍처와 다르게 하나의 서비스가 다운되더라도 다른 서비스에는 문제가 없다.

- 자체 DB를 서비스마다 가지고 있기 때문에 데이터 무결성을 유지하는데에 더 도움이 된다.

 

 

 

🔎 마이크로서비스 아키텍처 단점

- 서비스가 잘게 나누어져 있어 분산된 서비스가 서로 API를 호출하는 과정에서 통신 비용과 지연 시간이 든다.

- 작게 서비스가 나누어져 있기 때문에 인프라 구축에 큰 비용이 들 수 있다.

- 여러개의 서비스로 나누어져 있어서 장애가 발생했을 때 어디서 발생했는지 찾기가 힘들다.

- DB가 서비스마다 분리가 되어있어 트랜잭션 관리하기가 까다롭다.

- 서비스가 커질 수록 구조가 복잡해지기때문에 관리를 잘하지않으면 오히려 성능이 저하될 수 있다.

- 구현 난이도가 높다.

 

 

 

 

 

 

 

[출처]

https://www.inflearn.com/pages/infcon-2023-tech-msa

 

[INFCON Tech Series #5] 모놀리식 vs 마이크로서비스 아키텍처, 우리 팀에 맞는 선택은? - 인프런 | 스토

비즈니스에 적합한 아키텍처 찾기 #MSA #Monolithic #웹개발 #INFCON #인프콘 [사진] 개발자들이 함께 모여 서로의 경험과 인사이트를 나누는 축제, 인프콘! 8월 15일, 드디어 많은 분들이 기다려 주

www.inflearn.com

 

728x90
반응형