# Android module graph
프로젝트를 진행하다보면 모듈이 점점 더 많아지고, 모듈간의 복잡한 의존성이 얽혀 있을 수 있습니다. 이러한 상황에서 새로운 팀원이 들어올 때 프로젝트 구조를 파악하는 데 시간이 오래 걸릴 수 있습니다. 이를 해결하기 위해 모듈 의존성 그래프를 자동으로 생성하는 방법을 공유하려고 합니다. (Gradle을 사용하는 프로젝트에 적용할 수 있습니다.)
1️⃣ 라이브러리
프로젝트의 모듈 의존성을 이미지로 변환해주는 라이브러리가 유명합니다.
( https://github.com/vanniktech/gradle-dependency-graph-generator-plugin )
그러나 이번에는 "Mermaid"로 의존성 그래프를 생성해주는 라이브러리인 "Module Graph"를 소개해 드리겠습니다. 이 라이브러리를 사용하면 프로젝트의 모듈 의존성을 Mermaid 형식의 그래프로 변환하여 시각적으로 나타낼 수 있습니다.
( https://github.com/iurysza/module-graph )
2️⃣ Mermaid란?
Mermaid은 Markdown으로 다이어그램을 그려주는 라이브러리로, GitHub에서도 Mermaid을 지원하여 확인할 수 있습니다. 😃
이미지로 생성된 다이어그램이 복잡해질수록 확대해서 보아야 하는 불편함이 있습니다. 그러나 Mermaid를 사용하면 다이어그램을 생성했을 때 확대해도 깨지지 않고, 전체적인 구조를 쉽게 파악할 수 있는 장점이 있습니다.
- https://mermaid.js.org/
- https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/
3️⃣ 설치 방법
1. 프로젝트 단위의 Gradle 파일에 플러그인을 아래와 같이 추가해주시면 됩니다.
```kotlin
plugins {
id("dev.iurysouza.modulegraph") version "0.5.0"
}
```
2. 그래프 설정을 해주시면 됩니다.
```kotlin
moduleGraphConfig {
readmePath.set("./README.md")
heading.set("### Dependency Diagram")
showFullPath.set(false) // optional
orientation.set(Orientation.LEFT_TO_RIGHT) //optional
linkText.set(LinkText.NONE) // optional
theme.set(Theme.NEUTRAL) // optional
}
```
여기서 ReadMe 파일 이름을 설정하고, 어떤 제목 아래에 그래프를 설정할지 명시해주시면 됩니다.
4️⃣ 사용 방법
위의 설정을 완료하면 “./gradlew createModuleGraph” 명령어를 실행하여 그래프를 생성해주시면 됩니다.
5️⃣ 팁
모듈이 변경될 때마다 명령어를 실행하는 것을 잊어 그래프 업데이트를 놓치지 않도록 하는 방법이 있습니다. 바로 Intellij의 플러그인을 사용하는 것인데요. 해당 플러그인을 사용하면 Gradle Sync가 완료된 후에 그래프를 생성하도록 설정할 수 있습니다.
아래 코드를 참고해주세요.
https://gist.github.com/yunjaena/88a926535bfff91f0b03611dd87212e1
안녕하세요, 원티드 소셜 회원님!✨ 프로젝트에서 모듈간의 복잡한 의존성을 관리하는 방법을 자세히 설명해주신 게시물을 잘 보았습니다. 특히 Gradle을 사용한 모듈 의존성 그래프의 생성 방법까지 세부적으로 공유해 주셔서 개발자 분들에게 많은 도움이 될 것 같아요. 이런 유익한 정보를 공유해 주셔서 감사드립니다!👍 새로운 팁이나 정보 있으면 언제든지 공유해 주세요. 항상 좋은 정보를 기다리고 있을게요!😊