2024. 8. 19. 00:01ㆍCS/git
특정 라이브러리를 처음 다운로드 했을 때, 코드가 몇백 줄이 넘어가면 어디서부터 보아야 할지 막막한 경우가 많다. 이 경우 사용하기 좋은 시각화 툴을 하나 소개하고자 한다.
Pyreverse
Pylint는 Python 코드를 분석하고 코드 품질을 향상시키기 위한 다양한 기능을 제공하는 정적 코드 분석 도구이다. Pyline 안에 포함된 Pyreverse라는 도구는 Python 코드의 구조를 분석하고 이를 시각적으로 표현해주는 기능을 제공한다. Pyreverse는 주로 UML 다이어그램을 통해 클래스와 모듈의 관계를 시각화하는 데 좋다.
설치 및 환경설정
Pyreverse를 설치하기 위해서는 Graphviz가 있어야 한다. 아래와 같이 설치해 주자.
Windows
https://graphviz.org/download/
Download
Source Code Source code packages for the latest stable and development versions of Graphviz are available, along with instructions for anonymous access to the sources using Git. Executable Packages Packages marked with an asterisk(*) are provided by outsid
graphviz.org
위 링크를 이용하자.
Mac / Linux
Mac / Linux는 CLI를 통한 설치가 가능하다.
brew install graphviz
sudo apt-get install graphviz
설치가 완료되었으면 dot -V 명령어를 통해 버전을 확인할 수 있다.
다음으로, Pylint를 설치해 주자. pip으로 아래와 같이 간단히 설치할 수 있다.
pip install pylint
사용방법
원하는 라이브러리 MyProjectName에 대하여 아래와 같은 명령어로 사용할 수 있다.
pyreverse -o png -p MyProjectName my_module.py
필자는 git clone을 이용해 받은 모듈 improved-diffusion(https://github.com/openai/improved-diffusion)에 대해, 아래와 같은 명령어를 넣어 보았다.
GitHub - openai/improved-diffusion: Release for Improved Denoising Diffusion Probabilistic Models
Release for Improved Denoising Diffusion Probabilistic Models - openai/improved-diffusion
github.com
pyreverse -o png -p improved-diffusion/ improved_diffusion
이때 명령어 적용을 위해서는 해당 git repository로 경로를 이동해야 하고, __init__.py를 포함한 모듈만 사용이 가능하다.
시각화 결과는 아래와 같다.
패키지 시각화
클래스 시각화
클래스 시각화는 잘 보이지는 않는데, 고해상도 이미지 파일(png)로 저장된다. 두 시각화 구조 모두 해당 repository 내에 저장된다.
'CS > git' 카테고리의 다른 글
git의 세 가지 영역과 커밋(commit) (feat. 쿠팡) (0) | 2024.05.13 |
---|---|
버전 관리의 개념과 종류(local VCS, CVCS, DVCS) (0) | 2024.05.12 |