-
Notifications
You must be signed in to change notification settings - Fork 1
기술문서 ‐ 멀티 모듈
xb205 edited this page Aug 27, 2023
·
1 revision
의존성을 관리하지 못하면, 아무리 객체지향적으로 잘 작성된 코드라도 변경할 수 없는 상태가 되는데, 이를 자바 API 디자인 에서는 객체지향 스파게티
라고 부른다.
변경할 수 없는 코드가 되는 이유는 어디까지, 누가, 순환참조 등의 이유로 변경범위를 측정할 수 없기 때문이다.
자바에서 하나의 모듈안에 있는 클래스의 의존성을 표현할 수 있는 방법은 패키지 밖에 없는데, 패키지는 의존성을 강제할 수 없기때문에, 애플리케이션이 발전함에 따라 코드가 점차 객체지향 스파게티
가 되는것을 막을 수 없다.
멀티모듈을 사용하면 의존하는 대상과 의존방향을 쉽게 파악할 수 있고 이는 코드의 의존 그래프가 꼬이는것을 방지해줘 변경과 발전에 유연한 코드를 만들 수 있도록 도와준다.
멀티 모듈을 사용하면서 발생하는 문제중 하나로 중복코드
가 있는데, 이는 상태에 따라서, core 모듈로 관리할 수 있다
상태
진짜 중복 코드 : 코드가 앞으로도 항상 같은 방향으로 발전한다. (우리의 경우에는 id 생성기)
가짜 중복 코드 : 코드가 지금은 완전히 똑같지만, 앞으로 다른 방향으로 발전할 수 있다. (BaseEntity)
core 모듈이 비대해질경우, core모듈이 변경될때마다 애플리케이션은 많은 비용을 치뤄야 한다. 따라서, 진짜 중복인지 가짜 중복인지 세심히 판단후 진짜 중복인경우만 core모듈 하위에 배치해야한다.