
272
2
부
구현
TIP
여러 마이크로서비스를 넘나들며 지속적으로 변경하고 있다면 마이크로서비스 경계가 잘못된 위치에 있을
가능성이 높다. 이러한 일이 발생하면 마이크로서비스를 다시 합치는 것을 고려해볼 만하다.
그러면 일상적인 작업의 일부로 여러 리포지터리에서 가져와
pull
다시 푸시
push
해야 하는 번거로
움이 따른다. 경험에 따르면, 이 작업은 여러 리포지터리를 지원하는
IDE
를 사용하거나(지난
5
년 동안 필자가 사용했던 모든
IDE
가 지원하는 기능이다) 명령줄의 작업을 간편하게 해주는
래퍼 스크립트
wrapper
script
를 작성해 단순화할 수 있다.
적용 대상
마이크로서비스별 단일 리포지터리 방식을 사용하는 것은 대규모 팀과 마찬가지로 소규모 팀
에서도 잘 작동하지만, 마이크로서비스 경계를 넘어 많은 변경을 하고 있다면 적합하지 않을
수 있다. 서비스 경계를 넘어 많은 변경을 하는 것은 앞서 말했듯이 무언가 잘못됐다는 경고 신
호로 간주될 수 있지만, 그럼에도 다음에 논의할 모노레포 패턴이 더 적합할 수 있다. 또한 버
전 산출물로 패키징되는 코드에 의존해야 하므로 모노레포 방식을 사용하는 것보다 코드 재사
용이 더 복잡해질 것이다.
7.3.37.3.3
패턴
모노레포모노레포
모노레포 방식을 사용하면 여러 마이크로서비스 (또는 다른 유형의 프로젝트)