## `Monolithic Architecture`?
![[Pasted image 20231205123122.png]][출처](https://www.geeksforgeeks.org/monolithic-vs-microservices-architecture/)
하나의 시스템이 서비스 전체 기능을 처리하도록 설계된 것. 웹 서비스 관점에서 보면 하나의 [[IT 용어 정리 📕#WAS|WAS]]가 모든 기능을 처리하는 것이다. 이 글은 웹 서비스 관점으로 작성되어 있다.
#Monolithic_Architecture
## Monolithic Architecture의 특징
### 초기 개발이 간단함(+)
모든 기능이 하나의 애플리케이션에서 클래스로 구현되기 때문에 기능 추가가 쉬우며(1), 전체 구조도 쉽게 이해할 수 있고(2), 기능들 간의 통신을 신경 쓰지 않고 개발할 수 있다.(3) 배포도 애플리케이션 하나만 배포하면 되기 때문에 편하다.(4)
### 유지보수의 어려움(-)
애플리케이션이 커져 기능이 많아질 수록 유지보수가 어려워진다. 하나의 애플리케이션에 모든 기능이 있기 때문에 기능 하나를 조금만 수정해도 다시 배포해야 하며, 잘못 수정할 경우 전체 시스템에 영향을 미친다.
### 비효율적인 확장(-)
모든 기능이 동일한 환경에서 실행되므로 특정 기능의 성능을 개별적으로 확장하기 어렵다. 호출 횟수가 높은 기능을 확장하려면 전체 애플리케이션을 확장해야 하므로 비효율적이다.
## 참조
- [Monolithic vs Microservices Architecture](https://www.geeksforgeeks.org/monolithic-vs-microservices-architecture/)