코드 테스트
https://mr-spock.tistory.com/43?category=794235
이론
https://www.sharedit.co.kr/posts/12547
https://enjoy-dev.tistory.com/10
이론 + 코드 + 실습
https://enjoy-dev.tistory.com/1?category=936724
소프트웨어의 모든 구성요소들을 하나의 어플리케이션에 통합개발되어 빌드 및 배포하는 형태
- 단점
1. 부분 장애가 전체 시스템의 장애로 이어 질수 있음
만약 주문 서비스의 갑작스러운 트래픽 등의 증가로 모든 자원이 고갈되어 버린다면 전체 시스템의 장애로 이어질 수도 있음
또한 통합 DB에 문제점이 발생한다면 모든 서비스의 문제로 확대됨
2. 결합도가 강함
모노로식 아키텍처는 결합도가 높아 특정 부분의 수정이 다른 부분에 영향을 미칠 수가 있음
특히 오랜 기간 프로젝트가 운영되다 보면 공통 기능이 거대해 질수 있는데 이를 수정하면 연계된 부분도 함께 확인하고 테스트 해야 함
이러한 요소는 프로젝트의 개발함에 있어 불필요한 노력이 필요함
3. 클라우드 환경에 적합하지 못함
서비스가 잘되어 인스턴스를 늘려야 할 경우 많이 사용되지 않는 기능까지 불필요하게 확장되어야 함
또한 인스턴스 자동 확장(Auto-Scale Out) 등이 제한적임 (특정 서비스만 확장이 힘듬)
Auto-Scaling : 트래픽의 부하에 따라 자동으로 서비스 인스턴스의 수를 유연성하게 조절하는 클라우드 기술임
부하가 많을 때는 인스턴스를 자동으로 늘이며, 부하가 작을때는 인스턴스를 줄여 불필요한 자원 낭비를 방지함
4. 배포가 용이하지 않음
전체 프로젝트를 배포해야하기에 항상 부담이 따름
작은 단위 기능만 독립적인 배포가 어려우며 이에 따라 DevOps 환경 혹은 지속적인 배포에 어려움이 따름