카테고리 없음

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 기능 대체 가능

📚 공식 문서

⚠️ 개인적으로는 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 툴로 각광받고 있음