

모든 기능이 한 APP 내에 있다.
빠른 랜딩이 필요한 싱글 프로젝트에서는 용이할 수 있다.
하나의 큰 코드베이스로 구성된 애플리케이션, 모든 기능이 하나의 애플리케이션 내에 포함
하나를 변경하면 모두 변경해야 하고, 고려해야 하는 단점
- 확장성 부족: 특정 기능을 확장하려면 전체 애플리케이션을 확장해야함
접근이 많아질 때 등등 code, infra의 문제가 발생할 수 있음- 긴 개발 주기: 작은 변경 사항도 전체 애플리케이션을 다시 배포해야함
- 유연성 부족: 새로운 기술 도입이 어렵고, 특정 모듈에 종속적임
자원을 많이 소모하고, 관리할 것도 많다.
MSA를 도입하기 위해서는 수업의 내용처럼 많은 것들이 사용되며, 정책 설정을 해야 할 것이 많습니다. 빠르게 프로젝트의 프로토 타입을 만들어야 한다면 모놀리틱 아키텍쳐를 사용하고, 후에 부분, 부분 전환하는 것도 방법일 것입니다.
우리는 이 수업을 통해 MSA를 구성하기 위해서는 어떤 기능들이 필요한지 배웠습니다. 만약 스프링 클라우드가 아닌 다른 프레임워크로 MSA를 개발 한다고 해도 우리는 지금까지 공부했던 기능들이 있어야 함을 알 수 있습니다.
개발에 정답은 없습니다. 개발팀이 추구하는 방향에 따라 개발의 크기, 기능의 구성 등 정말 다양한 사항들이 결정될 것입니다. 개발된 레거시의 구조, 신규 프로젝트에서의 합의된 구조를 잘 파악하고 따라 가는것도 중요합니다. 그래야 개발이 완료되었을 때 유지보수도 수월 할 것이며, 추가 투입 인원이 있다면 보다 수월하게 프로젝트에 진입할 수 있을 것입니다.
이미 개발된 프로젝트의 패턴에 따라 본인이 익숙한지 아닌지 파악 후 본인이 사용할 수 있는지 확인하는 것이 좋다. 기존 패턴을 활용해 CRUD를 만들어보고 개발할 기능을 덧붙이는 방식이 좋다.