Monolithic Architecture 란?

위와 같이 구성되어 있는 애플리케이션을 보자.
특징을 보았을 때 게시판 서비스의 모든 기능을 포함하고 있다.
그렇기 떄문에 간단한 구조를 가지고 있기에 쉽고 빠르게 개발할 수 있다.
이런 구조로 개발하면 계속 되지 않을까? 라는 생각을 가지고 있을 것이다.
Monolithic Architecture 의 단점

그렇지만 .. 만약 게시글의 조회 수가 급등했다고 생각을 해보자.
게시글의 부하가 많아져서 서버의 성능이 나오지 않아 제대로 기능들이 작동하지 않을 것이다. 그렇다면 이러한 이슈를 해결하기 위해 고민 해보았을 때 나는 2가지로 생각이 들었다.
하지만 게시글의 기능만 트래픽이 심해져 Scale Up 과 Scale Out을 하였을 떄 단점이 무엇일까?
간단히 생각해보면 게시글과 관련 없는 다른 기능들도 같이 배포돼서 필요없는 리소스를 점유하게 되어 있는 것이다. 그렇다면 이렇게 하는 것은 어떤가?
Microservcie Architecture 란?

다음과 같이 서비스 자체를 6개로 나누는 것이다.
이렇게 나누는 것이 Microservice Architecture라고 한다.
그렇다면 게시글의 기능만 트래픽이 심해져 있을때 이 게시글 서비스를 담당하는 서버만
Scale up 또는 Scalue Out 을 통하여 관리 할 수 있게 된다.
그러면 전부 Microservice Architecture를 사용하면 되는데 왜 안할까?
Microservcie Architecture의 단점
하지만 이와 같이 서비스를 잘게 쪼개게 된다고 생각을 가정하면
가 있을 것이다. 그렇기 때문에 빠르게 개발하고 진행하기에 어려움을 가질 수 있다.
결론

다음과 같이 표를 만들어 Monolithic Architecture 와 Microservice Architecture의 장단점을 표로 정리하였다.
우리가 처한 환경과 서비스의 목적 및 요구사항에 맞춰 적잘한 아키텍쳐를 생성하여 진행하면 될 것 같다.