모놀리식 구조

강성훈·2022년 5월 26일
0
post-thumbnail

모놀리식 구조란

모놀리식 아키텍처란, 마이크로서비스의 각광에 따라 마이크로서비스가 아닌 전통의 아키텍처를 지칭하는 의미로 생겨난 단어입니다. 서비스에만 집중할 수 있는 구조로 되어 있습니다. 다시 말해 하나의 거대한 context를 가지는 아키텍처를 모놀리식 아키텍처라고 합니다.

모놀리식 아키텍처를 갖는 product의 특징은 내부 요소간의 의존성을 크게 가질 수 있다는 점입니다. 이는 필연적으로 Coupling이 강력하게 유지되는 결과를 초래합니다. 

coupling(의존도): 의존도는 어떤 모듈이 다른 모듈에 의존하는 정도를 나타내는 것입니다.

또한 비즈니스 컴포넌트들이 하나의 결합 구조를 가지고 있습니다. 이는 비즈니스 로직이 서비스에 최적화된 코드를 만들어내는데 좀 더 집중할 수 있도록 돕습니다. 그러나 복합적인 예외를 만들 수 있는 위험성을 내포하게 됩니다.

뭐가 좋을까?

이는 하나의 거대한 컨텍스트에 UI, service 로직, DB등을 가지고 있는 아키텍처로, 개발 초기 단순한 아키텍처와 개발하는데 좋습니다.
또한 쉽게 고가용성 서버 환경을 구축할 수 있습니다.
그리고 E2E test에 용이합니다.

문제점

프로젝트가 커지면 커질수록 애플리케이션 구동 시간이 늘어나고, 빌드 배포 시간도 길어집니다.
작은 수정 사항에도 불과하고 전체를 빌드하고, 다시 배포시켜야합니다.
많은 양의 코드가 몰려있어, 개발자가 전부 이해하기 힘들고, 그로인해 유지보수가 어렵습니다.
일부분의 오류가 모든 부분에 영향을 미치게 됩니다.

예시로, 하나의 기능에서 오류가 발생하였을 때, 이를 의존하고 있는 또 다른 기능 또한 똑같은 오류를 발생시킵니다. 즉 이렇게 되면 어디서 오류가 발생했는지 원인을 찾기가 어렵습니다.

profile
고등학생 주니어 개발자

0개의 댓글