
앱 서비스를 예시로 든다면, 하나의 프로젝트에서 빌드 한번으로 끝.
대신 빌드 시간이 길겠지만 어쨋든 배포에 신경쓸 부분이 훨씬 줄어듭니다.
하지만 치명적인 문제가 있다.
모놀리식 서비스를 팀 단위로 개발한다면 아래와 같은 문제를 일으킵니다.
그럼 이런 문제들을 어떻게 해결할 수 있을까?

일체형 서비스 구조로 인해 시스템 엔트로피가 자꾸만 늘어만 갔습니다.
결국 많은 서비스들이 이런 문제를 해결하기 위해 더 적합한 아키텍처를 찾아서 진화했습니다.
마이크로 서비스로 인해서 얻을 수 있는 장단점은 아래와 같습니다.
물론 단점이 없는 건 아니지만, 팀 단위 개발의 문제점이 많이 개선되었습니다.
업데이트 된다면 그 부분만 checkout해서 변경 & 빌드하면 될 것이고, 각 기능이 완벽히 분리되어 있다보니 코드의 복잡도가 훨씬 줄어듭니다.
새로온 개발자에게 작업을 인계할 때도 부담이 훨씬 줄어들게 됩니다.
결과적으로 지금까지는 마이크로 서비스에 대한 장점을 어필하고 있었습니다.
왜냐하면 오늘날에 많이 쓰이는 서비스 중심의 아키텍쳐이기 때문이죠.
하지만 마이크로 서비스가 완벽한것은 아니다.
Netflix의 마이크로서비스 아치텍쳐를 보면 입이 떡벌이지게 됩니다.

실제로 세그먼트라는 회사에서는 마이크로 서비스에서 모놀로틱 구조로 다시 돌아왔습니다.
https://tech.ssut.me/goodbye-microservice/
결론은 서비스의 특성을 잘 이해하고 구조를 선택하자.
하나의 정답 없이 서비스와 개발 문화에 따라 천차만별 변화하는 게 개발의 재미가 아닐까 싶다.