70
1
부
기초
런타임은 하나의 개발자 머신에서 실행 가능한 마이크로서비스의 수를 제한한다. 필자의 노트
북에서
4
~
5
개의
JVM
기반 마이크로서비스를 실행할 수 있지만, 과연
10
개나
20
개를 실행할
수 있을까? 아마도 어려울 것이다. 부하가 적은 런타임이 있더라도 로컬에서 실행 가능한 수는
제한되며, 이로 인해 한 머신에서 전체 시스템을 실행할 수 없을 때는 어떻게 해야 하는지 당연
히 논의하게 될 것이다. 로컬에서 클라우드 서비스를 실행하지 못한다면 이 문제는 더 복잡해
질 수 있다.
극단적인 해결책은 더 이상 로컬에서 개발할 수 없는 상황을 벗어난 ‘클라우드에서의 개발’일
것이다. 피드백 주기가 매우 길어지므로 필자는 이 방식을 그다지 선호하지 않는다. 그 대신에
개발자가 작업해야 하는 시스템 영역의 범위를 제한하는 것이 훨씬 더 단순한 접근 방법이라고
생각한다. 하지만 모든 개발자가 어떤 시스템 영역에서나 작업해야 하는 ‘공동 소유권’ 모델을
더 수용하려 한다면 문제가 될 수도 있다.
1.6.21.6.2
기술 과다 기술 과다
마이크로서비스 아키텍처를 도입하기 위해 쏟아진 새로운 기술들은 과도한 무게를 가질 수 있
다. 그 기술 중 대부분은 ‘마이크로서비스 친화적’으로 리브랜딩됐지만, 일부 기술의 발전은 이
런 유형의 아키텍처에 수반되는 복잡성을 처리하는 데 정말로 도움이 됐다. 하지만 이 새로운
기술 장난감의 범람은 일종의 맹목적 기술 숭배로 이어질 수 있다. 필자는 마이크로서비스 아
키텍처를 채택하는 많은 회사가 그 시점이야말로 ...