설치 경로와 프로젝트 범위
공식 문서는 독립 실행 도구·Python 패키지 등 설치 경로를 안내합니다. 프로젝트가 이미 버전과 설정을 고정했다면 이를 먼저 확인하세요. uv 프로젝트에서 개발 의존성으로 준비할 경우의 예시는 다음과 같습니다.
uv add --dev ruff
uv run ruff --version
독자가 사용할 명령 예시이며 실제 패키지를 설치한 로그가 아닙니다. 전역 Ruff와 프로젝트 Ruff가 다를 수 있으므로 명령을 실행하는 환경과 버전도 함께 확인합니다.
검사와 변경 명령 비교
| 명령 예시 | 목적 | 파일 변경 |
|---|---|---|
| ruff check . | 린트 진단 | 기본적으로 읽기 검사 |
| ruff check . --fix | 적용 가능한 자동 수정 | 있음 |
| ruff format . | 코드 포맷 | 있음 |
| ruff format . --check | 포맷 일치 검사 | 없음 |
안전한 자동 수정과 위험할 수 있는 수정의 분류도 구분합니다. --unsafe-fixes를 오류를 없애는 기본 옵션으로 붙이지 마세요. 자동 수정 결과가 프로그램의 요구사항까지 검증한 것은 아닙니다.
자체 코드로 역할 이해
import os
print( 1+2 )
직접 만든 이 예시에서 os는 사용되지 않는 import이고, print의 공백은 포맷 문제입니다. 린트가 unused import를 지적하는 것과 formatter가 공백을 정리하는 것은 다른 결과입니다. 이는 코드 구조를 검토한 설명이며 실제 Ruff 출력·수정 결과를 제시한 것은 아닙니다.
예제의 계산 결과가 같아 보여도 실제 프로젝트에서는 import의 부수 효과나 설정을 확인해야 합니다. 파일 변경 뒤에는 diff와 필요한 동작 검사를 읽으세요. 포맷 통과를 기능 테스트 통과로 바꾸지 않습니다.
pyproject 설정과 적용 범위
공식 문서는 pyproject.toml 등의 설정과 디렉토리별 적용을 설명합니다. 검사 규칙·대상 Python·제외 경로·포맷 설정을 먼저 읽고 현재 버전에 맞는 문법을 사용하세요. 상위 폴더에서 실행할 때와 하위 프로젝트에서 실행할 때 적용 범위가 달라질 수 있습니다.
한 팀의 규칙 목록을 다른 프로젝트에 그대로 넣으면 새로운 지적이나 불필요한 변경이 늘어날 수 있습니다. 이번 과제에 필요한 진단과 원래 프로젝트 규칙을 구분한 뒤 변경합니다.
CI와 첫 점검의 완료 기준
처음에는 작은 연습 파일이나 변경 범위에서 진단·포맷 차이를 읽고, CI에는 버전과 검사 명령을 명시하는 방식으로 준비할 수 있습니다. 자동 수정 명령과 실패만 알려주는 검사를 같은 CI 단계로 가정하지 마세요.
Ruff는 타입 검사 전체를 대신하는 도구가 아닙니다. 공식 속도·규칙 수 소개도 자신의 프로젝트에서 측정한 벤치마크로 표현하지 않습니다. 실제 Ruff 설치·실행·파일 수정·CI·성능은 검수하지 않았습니다. 공식 명령과 자체 코드의 진단/포맷 구분을 확인했습니다.
목적별 가이드
| 하려는 일 | 가이드 |
|---|---|
| Python 프로젝트와 환경부터 준비하기 | uv 첫 사용 |
| 잠금과 환경 일치 검사 이해하기 | uv lock·sync |