Jihun Oh

Python 코드 정적 분석 도구 본문

Engineering/Python

Python 코드 정적 분석 도구

Jihun Oh 2025. 6. 15. 17:17

정적 분석 도구 (Static Analysis Tool) 란?

  • 코드를 실행하지 않고 분석하여 문법 오류, 스타일 문제, 버그 가능성, 타입 오류, 코드 품질 저하 등을 미리 발견하는데 사용
  • 목적은 오류 예방, 코드 품질 개선, 일관성 유지

 

주요 python 정적 분석 도구들

 

 

추천 사용 조합 (실무 기준)

 

차이점 요약

 

 

  • 최신 트렌드는 ruff
  • ruff는 rust로 작성된 매우 빠른 linter이자 formatter
  • flake8, black 등 기존 라이브러리들의 규칙들을 대부분 지원해서 ruff 하나만 있어도 프로젝트 관리하는데 문제가 없음
  • 설정
# pyproject.toml
...
[tool.ruff]
line-length = 140 # 최대 길이를 140으로 늘려봤습니다.
 
[tool.ruff.lint]
select = [
    "F",  # pyflakes
    "I",  # isort
    "UP",  # pyupgrade
]
ignore = ["E501"]

 

  • CLI에서 사용하기
ruff check --fix ## apply fixes to resolve lint violations
ruff format

 

  • Pre-commit에 hook을 등록하여 사용 가능.
  • VScode에 ruff 익스텐션을 설치한 뒤 formatOnSave를 켜놓고 사용 가능. pyproject.toml이 있고 그 안에 ruff 설정이 있으면 익스텐션이 자동으로 설정을 포함시켜 동작.

'Engineering > Python' 카테고리의 다른 글

itertools  (0) 2025.04.05
re  (0) 2025.04.05
collections (defaultdict, Counter, OrderedDict, deque, namedtuple)  (0) 2024.05.15
generator  (0) 2024.04.14
set, tuple  (0) 2024.04.14