Logo 파이썬

linter — flake8·pylint·ruff

다람쥐 | 04.27 | 조회 88 | 좋아요 0

포매터가 「스타일」을 다루면 linter는 「잠재적 버그·나쁜 패턴」을 찾습니다.

사용 안 한 변수, 정의 안 된 이름, 위험한 패턴 등을 사전 검출.



flake8.

가장 인기 있는 전통 linter.

pip install flake8.

flake8 myfile.py로 실행.

PyFlakes(에러 검출) + pycodestyle(PEP 8) + McCabe(복잡도) 통합.

빠르고 유용.



pylint.

더 엄격하고 광범위.

flake8보다 많은 검사를 하지만, 「false positive」(실제론 문제 없는데 경고)도 많음.

큰 프로젝트는 pylint 설정 조정에 시간 들이기도.



ruff.

다시 등장.

50배 빠르고 flake8 대부분 규칙을 지원 + 자동 수정(--fix)도 가능.

새 프로젝트는 거의 ruff.

ruff check로 검사, ruff check --fix로 자동 수정.



통합 — pre-commit.

위 도구들을 git commit 전 자동 실행 → 잘못된 코드는 커밋 자체가 안 됨.

「CI에서 발견되어 다시 푸시」하는 시간 낭비를 막음.

모던 파이썬 프로젝트의 표준 설정.




한 줄 요약


linter는 잠재적 버그·나쁜 패턴 검출.

flake8(전통)·pylint(엄격)·ruff(빠름·표준화 중).

pre-commit으로 commit 전 자동 실행이 모던 표준.




더 알아볼 것


- mypy — 타입 검사

- bandit — 보안 검사

- ruff 룰 카탈로그

공유하기
목록보기

목록보기
신고하기

신고 사유를 선택해 주세요.