최근에 클래스 다이어그램을 그릴 일이 있었는데 draw.io로 그리려고 했는데 여간 귀찮은 게 아닌게 다른 방법은 없나 찾아보니 python 라이브러리인 pyreverse로 뚝딱 만들 수 있다는 걸 알게 됐다.
draw.io를 사용해서 class diagram을 그리면 위와 같이 그릴 수 있다.
하지만 이번에는 pyreverse, pylint를 사용하여 정말 간단하게 그릴 수 있었다.
1. pyreverse, pylint 설치
pip install pyreverse
pip install pylint
pylint를 설치하면 pyreverse도 같이 설치된다.
2. pyreverse 실행
pyreverse -o png ./
pyreverse -o [확장자명] [경로]
경로에는 diagram을 그릴 폴더의 __init__.py가 있는 폴더의 경로를 넣어주면 된다.
하지만
보통은 pylint만 설치해도 된다고 하는데 나는 이런 에러가 발생했다...
3. graphviz 설치
sudo apt install graphviz
graphviz를 pip install로 설치했지만 동일한 에러가 발생해서 찾아보니 apt install로 설치 해 줘야 했다.
우분투에서 실행하는 거라 위 별 다른 설정 없이 apt install 명령어로 graphviz를 설치하면 에러 없이 아래처럼 UML diagram이 저장된다!
ultralytics의 repo를 clone 해서 위 명령어를 입력 해 주면 이렇게 class들의 관계가 그려진 이미지가 저장이 된다.
classes.png로 저장된 그림을 확대 해 보면 이렇게 관계가 명확히 보인다!
이거 아니었으면 draw.io로 열심히 그렸을텐데.. 🥹👍
말고도 packages.png라는 파일도 저장이 되는데 class들 간의 관계 뿐 만 아니라 package 단위로도 관계성을 볼 수 있도록 저장이 된다.