
아키텍처
경계를 빌드로 못 박으면, 경계를 옮기는 일도 빌드가 붙잡습니다
두줄요약
Gradle 멀티모듈로 경계를 강하게 고정하면 잘못된 의존은 막을 수 있지만, 경계를 옮기는 비용도 커졌습니다. 그래서 함께 바뀌는 리듬을 기준으로 모듈 경계를 다시 설계하는 방법을 정리했습니다.
핵심 내용
- Gradle 멀티모듈로 경계를 컴파일러에 맡기면 잘못된 의존은 막을 수 있지만, 경계를 바꾸는 리팩토링 비용도 함께 커짐
- 프로젝트 초기에 그은 모듈 경계는 대체로 틀리며, 함께 바뀌는 리듬을 기준으로 경계를 다시 설계할 필요
- 애매할수록 덜 쪼개고, 경계 조정 자체를 정상 작업으로 다뤄야 잘못된 경계와의 동거를 줄일 수 있음
적용해볼 점
- 물리 모듈 분리를 경계의 견고함과 유연성 사이의 트레이드오프로 보기
- 코드 모양보다 함께 바뀌는 변화 리듬을 기준으로 모듈 경계 판단하기
- 경계 조정을 특별한 예외가 아닌 주기적 정비 작업으로 취급하기
