제가 입사했을 때만 해도 마이크로서비스 아키텍쳐는 생소한 개념이었고 그러다보니 당연스럽게도 모놀리식으로 서비스를 구성하고 운영했었습니다.
그러다 마이크로서비스 아키텍쳐가 유행을 타기 시작했고 모놀리식과 마이크로서비스 중 어떤게 더 좋은건가, 우리는 어떤걸 선택해야 하는가에 대한 고민들이 많이 나왔었습니다.
모놀리식과 마이크로서비스 아키텍쳐 중 뭐가 더 좋은가는 사실 결론을 지을 수 없다고 생각합니다.
다만, 현재 운영중인 서비스 상황에 따라 모놀리식이 더 좋을수도 혹은 마이크로서비스가 더 좋을수도 있는데요
공유드린 글에서는 다음과 같은 질문을 던졌을 때 모두 "Yes" 라면 마이크로서비스 아키텍쳐를 선택하는게 좋다고 합니다.
✔️ 어플리케이션이 크고 복잡해질 가능성이 높은가?
✔️ 팀원이 서비스에 대한 이해도가 높고, 서비스의 요구 사항이 명확한가?
✔️ 운영중인 서비스가 가용성과 확장성을 갖춰야 하는가?
✔️ 마이크로서비스에 대한 경험이나 지식이 충분한가?
저는 여기에 추가로 생각해봐야 될 점으로 "마이크로서비스로 변경을 위한 비용을 감수할 수 있는가?" 입니다.
마이크로서비스는 기존에 구축된 내용을 A-Z 까지 변경할수도 있기 때문에 이를 위한 시간과 장비에 대한 비용이 꽤 크게 발생할 수 있습니다.
특히나 변경으로 인해 발생할 수 있는 이슈를 검토하고 안정성을 검증하기 위한 시간 투자가 많이 필요할텐데 이러한 투자 없이 빠르게 변경하려고만 한다면 오히려 더 큰 이슈를 야기할 수 있습니다.
공유드린 글에 모놀리식과 마이크로서비스 아키텍쳐에 대한 특징과 장단점등이 자세히 얘기되고 있으니 관심있으신 분들은 한번 읽어보시면 좋겠습니다.