Skip to Content
Suffering builds character
Daily클라우드 네이티브MSA1.모노리스 아키텍처(Monolithic)

1.모노리스 아키텍처(Monolithic)

하나의 단위나 코드베이스로 작성되어 동작하는 애플리케이션 아키텍처

Monolith 단단히 짜여 하나로 되어 있는, 돌덩이 하나의

💡
Tip

모노리스, Monolith

모노리스(Monolith)는 SF 작품 《2001 스페이스 오디세이》에 나오는 돌기둥 모양의 신비한 물체를 말한다. 원래 이 단어는 “하나의, 또는 고립된 바위”라는 의미의 그리스어, 라틴어에서 유래한 일반 명사로, 둘기둥, 기념 따위를 가리키는 말

1-1. 장점

  1. 낮은 학습 곡선(Learning Curve)

  2. 단순함

1-2. 단점

1. 규모가 커질수록 관리가 어려워짐

기존에 개발된 수많은 기능들이 하나의 단일 코드 베이스에서 동작하기 때문에 새로운 기능이 추가될 때마다 기존의 코드에 대한 영향도를 파악하고 테스트하기가 어렵고 복잡해짐

DB 역시 하나의 공유 DB(Shared DB)에서 동작하기 때문에 DB가 멈추면 전체 서비스가 멈추게됨

2. 오래 걸리는 빌드 및 서비스 릴리즈 시간

1번과 마찬가지로 애플리케이션이 단일 코드베이스에서 동작하기 때문에 다소 사소할 수 있는 기능이 추가되어도 추가된 부분만 빌드하는 것이 아닌 전체 코드를 빌드해야하며, 그에 따라 빌드 시간이 가면 갈수록 길어짐

3. 다양한 기술 사용이 제한됨

이것은 상황에 따라 단점이 될 수도 있고, 장점이 될 수도 있음

만약 팀이 각자 서로 다른 기술을 보유한 상황이라고 가정할 때, 빠른 시간 내에 개발이 필요할 경우라고 하더라도 하나의 코드 베이스이기 때문에 다양한 기술을 혼합해서 사용하기가 어렵기 때문에 단점이라고 볼 수 있음

반대로 팀원이 자주 바뀌지 않고 다소 오래갈 수 있는 경우라면 개발 생산성 증가를 위해 단일 기술로 적용하는 것이 관리 측면에서 오히려 장점이 될 수도 있음

정리하면,
모놀리식 아키텍처는 상대적으로 작은 규모의 서비스 혹은 프로토타입과 같이 시제품 테스트 용도의 개발에 적합하다고 볼 수 있음

Last updated on