멀티 모듈은 개발 조직이 점점 커짐에 따라 필연적으로 요구됩니다.
멀티 모듈 프로젝트는 왜 필요하고, 어떻게 쓰면 좋을까에 대해서 소개하고자 합니다.
가정을 해봅시다.
프로젝트 초기에는 빠른 시장 검증이 필요했기 때문에 핵심 기능에 중점을 두고 빠르게 개발 및 수정하는 작업이 이뤄졌습니다. 그러나 프로젝트는 성장하며 많은 사용자들이 서비스를 이용하게 되었고, 이로 인해 버그가 늘어나고 새로운 기능 요구가 증가했습니다. 이에 따라 추가적인 개발자들을 영입하게 되었고, 초기에는 고려하지 못했던 아키텍처와 코드 리팩토링이 필요한 시점에 도달했습니다.
프로젝트 중기에는 안정화된 코드와 도입된 아키텍처로 인해 코드 리뷰 및 협업이 상대적으로 수월했습니다. 그러나 코드 양이 늘어남에 따라 코드 병합 시 컨플릭트가 늘어나고, 다른 개발자들의 코드를 수정하는 일이 빈번해졌습니다. 이로 인해 논리적인 안정장치로는 부족하다고 생각되어 물리적인 안정장치가 필요하게 되었습니다.
멀티 모듈 프로젝트 도입을 고려하는 이유
위 가정에 대한 어려움을 최소화하고자 함입니다. 멀티 모듈은 프로젝트를 여러 개의 독립된 모듈로 나누어 개발하게 함으로써 코드 병합 시 발생할 수 있는 문제를 줄이고, 개발자들 간의 협업을 향상시킬 수 있는 강력한 도구입니다.
본편에서는 멀티 모듈의 구체적인 이점과 구현 방법에 대해 자세히 살펴보겠습니다. 여기에는 모듈 간의 의존성 관리, 더 나은 코드 구조화, 테스트 용이성 등이 포함됩니다. 이러한 측면들은 멀티 모듈 아키텍처를 통해 프로젝트를 효율적으로 관리하고 확장성을 확보하는데 중요한 역할을 합니다.
멀티 모듈 프로젝트의 장/단점
그럼 어떻게 하면 좋을까요?
사실 클린 아키텍쳐를 이미 도입하고 계시다면 멀티 모듈 프로젝트를 이미 사용하고 있는게 맞습니다.
클린아키텍쳐에서는 코드의 목적에 따라 계층 별로 모듈을 생성하고 코드를 분리하여 운영하기 때문입니다.
제가 생각하는 멀티 모듈 구성 방법은 다음과 같습니다.
이 방법 외에도 여러가지 구성하는 방법이 있을 것이라고 생각합니다. 구성 방법에는 정답이 없고 그 프로젝트 상황에 맞는 적합한 방법을 사용하는 것이 더 중요하다고 생각합니다.
정리
멀티 모듈 프로젝트에는 프로젝트 마다 다양한 모듈이 있을 것이라고 생각합니다.
좋은 멀티 모듈은 의도와 목적에 맞게 잘 분리되어 개발 및 유지보수가 용이한 구조로 되어 있을때 좋은 멀티 모듈이라고 생각합니다.
다음 편에서는 멀티 모듈을 직접 구현해보도록 하겠습니다.
감사합니다.
나만의 안드로이드 앱 만들기(고급자 편) - 멀티 모듈 프로젝트 구성하기 (1) | 2023.12.26 |
---|