6.1 마이크로서비스와 분산 아키텍처
지금까지 Node.js를 이용해 간단한 e-commerce 서비스를 만들어 보았습니다. 모든 요구 사항을 충족했음에도 시간이 흐를수록 기능은 복잡해지고 처리해야 할 용량은 증가할 것입니다. 초기에는 소수 인원으로 구현할 수 있었지만, 점차 많은 인원이 필요할 것이고 많은 인원이 복잡한 시스템을 유지 보수하는 과정에서 다양한 문제점도 발생할 것입니다. 기업에서는 이렇게 발생한 다양한 문제점을 줄이려고 빠른 개발보다는 안정적인 개발을 추구하려고 할 텐데, 그러면서 서비스 업데이트 주기는 느려질 것입니다. 결국 기존 시스템이 새로운 서비스의 방해 요소가 될 것입니다.
실제로 적은 인원의 스타트업 기업보다 풍부한 인력을 보유한 대기업의 업데이트 주기가 오히려 더 느린 경향이 있습니다. 이러한 문제점의 근본 원인은 무엇일까요? 바로 모놀리식 아키텍처가 지닌 한계 때문입니다. 그럼 마이크로서비스 아키텍처가 이러한 문제점을 어떻게 해결할 수 있는지 알아보겠습니다.
▲ 그림 6-1 모놀리식 아키텍처와 마이크로서비스 아키텍처