## `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/)