123
3
장
모놀리스 분해
이에 따른 변경 비용도 많이 발생했다. 결국 팀은 서비스를 다시 하나의 모놀리식 시스템으로
병합해 팀원들이 경계가 있어야 하는 위치를 더 잘 이해할 수 있는 시간을 제공했다.
1
년 후 팀
은 모놀리식 시스템을 마이크로서비스로 분할할 수 있었고 경계가 훨씬 더 안정적인 것으로 판
명됐다. 이러한 상황이 필자가 본 유일한 예는 아니다. 시스템을 조기에 마이크로서비스로 분
해하면 많은 비용이 들게 된다. 특히 해당 도메인을 처음 접하는 경우에는 더욱 그렇다. 여러
측면에서 마이크로서비스로 분해하려는 기존 코드베이스를 보유하는 것이 처음부터 마이크로
서비스로 진행하는 것보다 훨씬 쉽다.
3.43.4
무엇을 먼저 나눌까? 무엇을 먼저 나눌까?
마이크로서비스가 좋은 아이디어라고 생각하는 이유를 확실히 파악해야 이 이해를 바탕으로
어떤 마이크로서비스를 먼저 만들어야 할지 우선순위를 정할 수 있다. 애플리케이션을 확장하
고 싶은가? 현재 시스템의 부하 처리 능력을 제한하는 기능이 가장 높은 순위를 차지할 것이
다. 출시 시간을 단축하고 싶은가? 시스템의 변동성을 살펴보고 가장 자주 변경되는 기능을 찾
아내 마이크로서비스로 작동하는지 확인하라.
CodeScene
(
https
://
www
.
codescene
.
com
)
과 같은 정적 분석 도구는 코드베이스의 불안정한 부분을 신속하게 찾아준다. [그림
3
-
1
]은
CodeScene
뷰를 통해 오픈 소스 아파치 주키퍼
Apache
Zookeeper
프로젝트의 핫스팟을 보여주는
예다.
하지만 어떤 ...