카테고리 없음
Chapter 1-4 Ruff 설치 및 사용 가이드
Chansman
2025. 5. 23. 10:26
🧪 Ruff 설치 및 사용 가이드
🔧 Ruff란?
- Ruff는 Rust로 작성된 초고속 linter + formatter 도구입니다.
- formatter: 코드 스타일 자동 정리 도구 → (앞서 배운 black과 동일 역할)
- linter: 정적 분석 도구. 코드 내 오류나 불필요한 구문을 자동 탐지 및 경고
🔗 공식 깃허브: https://github.com/astral-sh/ruff
📥 설치:
poetry add --group=dev ruff==0.8.2
💡 lint의 어원은 "보풀 제거기"에서 유래된 용어로, 1970년대 C 언어용 분석 도구에서 시작되었습니다.
⚙️ Ruff 기능 요약
- formatter: black 대체 가능
- linter: flake8 호환 기반의 코드 검사
- import 정렬: isort 기능 대체 가능
📚 공식 문서
- Linter: https://docs.astral.sh/ruff/linter/
- Formatter: https://docs.astral.sh/ruff/formatter/
⚠️ 개인적으로는 black을 formatter로 유지하고, lint + import sort 만 ruff에게 맡기는 방식 추천
🧪 Ruff 사용 예시
❌ 사용하지 않는 import 경고
import os, sys
- 검사 실행:
ruff check
- 자동 수정:
ruff check --fix
🔕 특정 라인 검사 무시하기
import os, sys # noqa
- # noqa 주석으로 해당 줄의 lint 검사 제외 가능
🔁 Import 정렬
import sys, os
print(sys)
print(os)
- 정렬 실행:
ruff check --select I --fix
Rules | Ruff
Ruff supports over 800 lint rules, many of which are inspired by popular tools like Flake8, isort, pyupgrade, and others. Regardless of the rule's origin, Ruff re-implements every rule in Rust as a first-party feature. By default, Ruff enables Flake8's F r
docs.astral.sh
pyproject.toml 파일설정
[tool.ruff]
target-version = "py313"
✅ Recap
- ✅ Ruff는 빠르고 강력한 formatter + linter입니다.
- ✅ poetry를 통해 손쉽게 설치 가능
- ✅ 불필요한 import 자동 제거 및 코드 스타일 일관성 유지
- ✅ --fix 옵션으로 자동 수정 가능
- ✅ # noqa를 통해 예외 처리도 유연하게 가능
- ✅ black과 함께 또는 단독으로 사용 가능하며, import 정렬까지 포함한 All-in-one 툴로 각광받고 있음