[TIL] 모놀리식 아키텍처

김민재·2025년 3월 27일

TIL

목록 보기
172/194

🗂️ 모놀리식 아키텍처(Monolithic Architecture MA)

  • 하나의 통합된 코드 베이스로 여러 비즈니스 기능을 수행하는 전통적인 아키텍처 스타일이다. 단일 애플리케이션 내에 서비스의 모든 로직이 들어가 있는 구조이다. 한 번에 배포되고 한 번에 실행된다.

ex) 여러 서비스(유저 서비스, 장바구니 서비스, 배달 서비스, DB 등) 모든 비즈니스 로직들이 하나의 애플리케이션으로 묶여 있다.

🆚 모놀리식 아키텍처 특징

  1. 단일 애플리케이션: 모든 애필리케이션 기능이 하나의 코드베이스 안에서 동작한다.

  2. 통합된 배포: 애플리케이션의 모든 구성 요소가 하나의 패키지로 묶여 배포되며, 시스템 전체를 동시에 업데이트해야 한다.

  3. 공유된 자원: 메모리, 데이터베이스 연결, 세션 정보 등이 전체 애플리케이션에서 공유된다.

  4. 단일 데이터베이스: 모든 모듈과 서비스가 동일한 데이터베이스를 통해 데이터를 저장하고 관리한다.

  5. 단일 코드베이스: 모든 코드가 하나의 코드베이스에 통합되어 관리된다.

💶 모놀리식 아키텍처 장점

  1. 단순한 개발 및 배포: 모든 구성 요소가 하나로 묶여 있기 때문에, 배포 또한 간단하며 단일 패키지로 배포할 수 있다.

  2. 코드 관리 용이: 별도의 서비스 간 통신이나 복잡한 분산 시스템을 고려할 필요가 없기 때문에 개발이 직관적이다.

  3. 성능 최적화 용이: 동일한 프로세스 내에서 모든 기능을 실행하므로, 서비스 간의 호출이나 네트워크 통신이 필요 없어서 성능 최적화가 상대적으로 쉽다.

  4. 개발 초기 비용 절감: 시스템의 규모가 작은 경우, 개발 및 운영 비용을 절감할 수 있다.

💿 모놀리식 아키텍처 단점

  1. 확장성 제한: 애플리케이션이 커지고 복잡해지면 확장성에 제약이 생긴다. 시스템의 각 구성 요소가 연관돼 있기 때문에, 일부 기능만 확장하거나 수정하기 어려운 경우가 많다.

  2. 유지보수의 어려움: 코드베이스가 커질 수록 유지보수가 어려워진다. 여러 기능이 서로 얽혀 있기 때문에, 하나의 모듈을 수정하거나 추가할 때 전체 시스템에 영향을 미칠 수 있다.

  3. 배포 및 업데이트 문제: 작은 기능 변경이나 버그 수정도 전체 시스템을 재 배포해야 한다.

  4. 기술 스택 변경 어려움: 새로운 기술을 도입하거나 기존 시스템을 개선하려면 전체 시스템을 변경해야 할 수 있다.

🌠 모놀리식 아키텍처 추천 사례

  • 소규모 애플리케이션

  • 빠르게 배포해야 할 때

profile
개발 경험치 쌓는 곳

0개의 댓글