https://radon.readthedocs.io/en/latest/
파이썬 코드를 짜고 프로그램을 만들다 보면, 과연 내가 프로그램을 잘 만들었나, 고민이 되는 순간이 많습니다. PEP8에 따라서 열심히 만들었다지만, 그래도 이쁜 코드랑 튼튼한 코드는 다르니까 정량적으로 내 프로그램의 잘 만든 정도를 평가하고 싶어집니다. 보통 시간복잡도 등을 이용해서 열심히 코드 하나하나 분석을 해서 코드 복잡도를 평가하는데, 이럴 때 사용하는 평가 방법을 code metrics 라고 합니다.
암튼 이 code metrics를 python code 대상으로 평가해주는 package가 바로 제일 위 링크의 Radon. Radon에서는 아래 4가지 방법으로 코드를 평가하는데요,
- Raw Metics: LOC, 주석 등 고전적인 코드 평가수치
- Cyclomatic Complexity: 반복/조건문의 깊이를 기반으로 한 프로그램 복잡도
- Halstead Metrics: 연산자 개수를 기반으로 한 프로그램 복잡도
- Maintainability Index: 위 세 조건을 통합
자세한 내용은 Radon 페이지를 참조하면 잘 나와있지만, 아무튼 A, B, C 이런 순서로 코드를 평가해서 A에 가까울수록 내 코드가 탄탄하고 알아보기 쉽게, 복잡하지 않게 짜여져있다는 것이 핵심입니다.
아래는 간단한 사용법. 사용법을 잘 설명해둔 블로그가 없는데, 아마 별 사용법이 복잡한게 없어서 그런 것 같습니다.
# 설치
$ pip install radon
# Raw metrics 측정, summary 출력, init 무시, data folder 무시.
$ radon raw -s -e __init__.py -i data [path]
# Cyclomatic Complexity 측정, 평균값도 계산 (-s), init 무시 (-e), data folder 무시 (-i).
$ radon cc -a -e __init__.py -i data [path]
# Halstead Metrics 측정
$ radon hal -e __init__.py -i data [path]
# Maintainability 측정
$ radon mi -e __init__.py -i data [path]
'개발 > 파이썬' 카테고리의 다른 글
일급객체란? (0) | 2022.09.13 |
---|---|
NumPy & Pandas 자주 쓰는 문법 요약 (0) | 2022.09.13 |
Python logging & logger 모듈 (0) | 2022.09.13 |
Pyreverse, Python 다이어그램 diagram 패키지 (0) | 2022.09.13 |
댓글