Skip to content

기술문서 ‐ 멀티 모듈

xb205 edited this page Aug 27, 2023 · 1 revision

멀티 모듈

의존성을 관리하지 못하면, 아무리 객체지향적으로 잘 작성된 코드라도 변경할 수 없는 상태가 되는데, 이를 자바 API 디자인 에서는 객체지향 스파게티 라고 부른다.

변경할 수 없는 코드가 되는 이유는 어디까지, 누가, 순환참조 등의 이유로 변경범위를 측정할 수 없기 때문이다.

자바에서 하나의 모듈안에 있는 클래스의 의존성을 표현할 수 있는 방법은 패키지 밖에 없는데, 패키지는 의존성을 강제할 수 없기때문에, 애플리케이션이 발전함에 따라 코드가 점차 객체지향 스파게티 가 되는것을 막을 수 없다.

멀티모듈을 사용하면 의존하는 대상과 의존방향을 쉽게 파악할 수 있고 이는 코드의 의존 그래프가 꼬이는것을 방지해줘 변경과 발전에 유연한 코드를 만들 수 있도록 도와준다.

문제점

중복코드

멀티 모듈을 사용하면서 발생하는 문제중 하나로 중복코드 가 있는데, 이는 상태에 따라서, core 모듈로 관리할 수 있다

상태

진짜 중복 코드 : 코드가 앞으로도 항상 같은 방향으로 발전한다. (우리의 경우에는 id 생성기)
가짜 중복 코드 : 코드가 지금은 완전히 똑같지만, 앞으로 다른 방향으로 발전할 수 있다. (BaseEntity)

core 모듈이 비대해질경우, core모듈이 변경될때마다 애플리케이션은 많은 비용을 치뤄야 한다. 따라서, 진짜 중복인지 가짜 중복인지 세심히 판단후 진짜 중복인경우만 core모듈 하위에 배치해야한다.

Clone this wiki locally