앞날 창창보
article thumbnail

멀티모듈은 정말 자유자재로 필요에 의해 만들어지는 것을 볼 수 있다.

 

이번 글에서는 어떤 상황에서 module 분리를 고려해야하는지에 대해 고민한 것을 짧게 공유하고자 한다.

어떤 상황에서 module 분리를 고려해야 할까?


모듈은 패키지보다 더 큰 개념으로, 패키지에서 분리의 필요성을 느낄 경우에 module로의 분리가 필요하다. 그렇다면 패키지에서 분리, 구분의 필요성을 느끼는 경우가 무엇이 있을까?

 

1. 참조 불가 수준의 코드 분리

2. 실행의 분리

 

찾아보고 고민해봤을 때 이 두가지가 있다고 느껴졌다. 1의 경우에는 Layer 별로 모듈을 구분하며, 레이어의 룰들을 모듈에 잘 녹여서 참조의 흐름을 일관성있게 가져갈 수 있다. 그리고, dependency도 레이어에 맞는 것들만 가져갈 수 있다는 것이 아주 큰 장점이라고 느껴졌다. 그리고 2의 경우는 하나의 서비스 아래에서 완전히 라이프 사이클이 다른 프로젝트를 구분하는 용도로 사용하는 것이라고 느껴졌다. 런타임을 완전히 구분할 수 있어서, 장애 전파를 막을 수 있고, 빌드 시간 단축등의 효과를 누릴 수 있다.

 

자신이 처한 상황에서 가능한 모든 비용을 고려해봤을 때, 1) 모듈로 레이어를 구분할 때 비용과 구분하지 않고 개발할 때의 비용을 잘 비교하고, 2)실행이 독립적으로 일어나면 효과를 누릴 수 있는 지 고민해보고 선택하면 좋을 것 같다.

 
 
 
 

검색 태그