[기술면접] architecture - Monolithic
1. Monolithic Architecture
일반적인 서비스 구조, MSA가 아니면 monolithic이다.
예를들어, 모든 기능들이 뭉쳐있는 하나의 어플리케이션 서버와 데이터베이스로 이루어진 형태
- 만약 아래와 같은 정도의 기능이라면 MSA로 굳이 나눌 필요는 없다.
- 그러나 아래와 같이 수평적으로 어플리케이션이 확장되면서 많은 이슈가 생긴다.
그 문제들은 아래와 같다.
1. 빌드 시간이 길어진다
작은 규모에서는 문제 되지 않던 빌드 시간이 길어진다.
현재 CI / CD (지속적 통합 / 지속적 배포) 가 강조되면서 빌드/배포 시간을 줄이는 것이 중요하다.
2. 개발 언어에 종속적이다
상황에 맞게 유연한 기술을 사용하지 못함
개발 언어로 자바를 선택했으면 전체 서비스가 자바로 이루어 져야 함
3. 선택적 확장이 불가하다
원하는 서비스만 확장이 불가능하다.
한 부분의 기능만 업데이트 해도 되는데 전체를 빌드하고 배포해야 하는 상황이 발생한다.
4. 하나의 서비스가 모든 서비스에 영향을 준다.
한개 서비스에 트래픽이 몰리면, 서버 전체가 마비될 수 있는 상황이 발생할 수 있다.