본문 바로가기
IT

모놀리식 아키텍처 뜻 MSA 차이는?

by 얼리컴티 2023. 6. 5.
반응형

마이크로서비스와 대처중인 기술, 모놀리스 아키텍처에 대해서 상세하게 알아봤습니다.


애플리케이션의 아키텍처 스타일에는 여러가지가 있는데 그 중 대표라고 한다면 마이크로서비스, 그리고 모놀리식이 있습니다. 트렌드나 경쟁사의 특징을 따르기보다는 목표와 비즈니스의 요구사항에 따라서 좌우될 수 있는 부분이라고 할 수 있겠습니다.

 

물론 요즘에는 마이크로서비스가 떠오르면서 여러 프로젝트에 활발히 채택되고 있는 것이 현실이라 합니다. 새롭게 구축하는 앱 또한 마이크로서비스를 기반으로 전환해야 한다는 이야기가 자주 나오고 있다곤 합니다. 이와는 별개로 모놀리식은 소프트웨어 개발을 위한 기본 접근 방식으로서 이러한 베이스를 토대로 애플리케이션을 제작하고 있다 할 수 있겠습니다.

 

이렇게나 서로 다른 차이점을 가지고 있는 두 스타일 때문에 어떤 것을 사용해야 하는지에 대해서 대립되고 있다고 합니다. 그렇다면 모놀리식이 어떠한 시스템인지, 그리고 마이크로서비스 즉, MSA와는 어떤 차이점을 가지고 있는 것인지 이번 포스팅을 통해서 살펴보도록 하겠습니다.

 

 

여기서 모놀리식은 모든 비즈니스 관련 사항을 함께 결합한 하나의 코드 베이스를 갖춘 단일 컴퓨팅 네트워크의 일부를 뜻합니다. 모든 모듈이 서비스 내부의 프러덕트 형태로 종속되어 있고 서비스에만 집중할 수 있는 구조로만 구성이 되어 있다는 특징을 가지고 있습니다.

 

하나의 서비스나 앱이 하나의 거대한 아키텍처를 가질 때 이러한 요소가 포함된 플랫폼이 바로 모놀리식 아키텍처라 할 수 있겠습니다. 각 비즈니스 컴포넌트들이 하나의 강한 결합 구조를 지니며 통일성을 가지고 있고 로직이 서비스에 최적화된 코드를 만들 때 좀 더 집중할 수 있는 비즈니스 로직과는 달리 예외를 만들 수 있어 위험성 내포 가능성이 있습니다.

 

반응형

 

그렇다면 모놀리식 아키텍처를 택함으로써 어떠한 이점을 얻을 수 있는 것일까가 궁금한 요점이라고 할 수 있을 것 같은데, 생각보다 여러 장점들이 존재했습니다. 애플리케이션 제작에 필요한 베이스를 토대로 하고 있는 만큼 단일 코드 베이스가 기본적으로 존재해서 높은 단순성을 보여주고 단일 프로젝트로 배포하면 쉽게 가능하기 때문에 쉬운 배포성도 함께 지니고 있습니다.

 

거기에 디버깅이 쉽고 테스트와 모니터링도 동시에 편하게 할 수 있어 결론적으로 모놀리식 아키텍처는 전반적으로 간편한 베이스를 지니고 있다는 특징을 가지고 있습니다. 그에 비해서 시간이 지남에 따라서 앱이 커질 경우 간편한 관리로는 관리가 어려워질 수 있고 전체 앱의 확장만 가능하다거나 대규모 팀 작업이 어렵고 기술 사용이 제한된 등의 의외의 허점이 존재해서 이 부분은 관련한 개발자들의 직접적인 개선이 필요해보일 것으로 예상됩니다.

 

 

모놀리식 아키텍처는 간편하고 단순하다는 큰 특징을 가지고 있는 반면에 단점이 존재하는데, 그렇다면 앞서 언급된 대립중인 마이크로서비스는 어떠할까?가 궁금할 수 있는데 앱을 작은 서비스로 분할하고 각 서비스가 독립으로 운영된다는 차이점이 있어서 스스로가 운영한다는 독특한 시스템이라 할 수 있겠습니다. 그렇다보니 모놀리식과는 다른 점이 존재합니다.

 

확장성이 커서 유연하다거나 독립적인 제작 및 배포가 가능하고 단일 실패 지점 제거를 통한 최소한의 허점을 없앤다거나 전체 서비스의 중단 위험이 감소되는 등의 민첩성이 높은 전반적인 시스템을 자랑하고 있습니다. 그럼에도 일반적으로 작업하는 것은 훨씬 복잡하고 어려운 구조를 요구하고 있어 어느 정도 전문성이 있는 것이 아니라면 왠만해선 모놀리식이 더 좋다고 할 수 있겠습니다.

 

이렇게 모놀리식과 MSA는 확장성부터 복잡성, 지연 시간, 신뢰성 등에서 서로 다른 차이점을 보이고 있기 때문에 결론적으로는 내가 어떤 부분에서 앱을 제작할 수 있는 것일지를 명확하게 구분하면서 생각해볼 필요가 있다고 무엇보다 중요하게 알려주고 있다고 할 수 있을 것 같습니다.


이렇게해서 모놀리식 아키텍처에 대한 전반적인 내용과 이와 대립하고 있는 MSA, 마이크로서비스에 대해서도 함께 살펴봤습니다. 결론적으로 편리함인가 아니면 전문성인가 둘 중 하나를 잘 고려해서 선택하는 것이 좋다고 할 수 있겠습니다. 그럼 다음 시간에도 또 다른 이야기 가지고 찾아오겠습니다. 감사합니다.

 

2023.06.04 - [IT] - LLM이란? 모델 인공지능 머신러닝에 대하여!

2023.06.03 - [IT] - 서버리스란? 서비스 사례와 장단점은?

2023.06.02 - [IT] - 네트워크 슬라이싱이란? 원리부터 문제점까지!

2023.05.31 - [IT] - 폴라리스 오피스 툴 무료 특징과 단점은?

반응형

댓글