Ruff v0.16.0
요약
Python 린팅 도구인 Ruff가 v0.16.0으로 업데이트되며 기본 활성화 규칙이 59개에서 413개로 대폭 증가했습니다. 이번 업데이트는 구문 및 런타임 오류를 포함한 더 많은 규칙을 기본 제공하여 별도 설정 없이도 코드 품질을 높여줍니다.
핵심 포인트
- Ruff 기본 활성화 규칙이 59개에서 413개로 대폭 확대됨
- 구문 오류 및 즉각적인 런타임 오류를 잡아내는 규칙 포함
- uvx 명령어를 통해 최신 버전의 Ruff를 간편하게 실행 가능
- LLM 및 코딩 에이전트가 문제를 해결하기에 매우 적합한 출력 형식 제공
2026년 7월 25일 - Link Blog
Ruff v0.16.0. Astral은 며칠 전인 7월 23일에 그들의 Python 린팅 (linting) 도구인 Ruff의 중요한 새 버전을 출시했습니다. 저의 다양한 CI 작업들이 새로운 Ruff 기본 체크 항목들과 고정되지 않은(unpinned) "ruff" 개발 의존성 (dev dependency) 때문에 모두 실패하기 시작하면서 오늘 이 소식을 알게 되었습니다.
Brent Westbrook의 발표 포스트 내용:
Ruff는 이전 버전의 59개에서 증가하여 이제 기본적으로 413개의 규칙 (rules)을 활성화합니다.
Ruff의 기본 규칙 세트가 v0.1.0에서 마지막으로 수정된 이후, Ruff의 규칙 수는 708개에서 968개로 증가했습니다. 이러한 규칙 중 다수는 구문 오류 (syntax errors) 및 즉각적인 런타임 오류 (runtime errors)를 포함한 심각한 문제들을 잡아내지만, 이전에는 기본적으로 활성화되지 않았습니다. 새로운 규칙 세트를 통해 Ruff는 별도의 Ruff 설정 없이도 이러한 문제들과 다른 많은 문제들을 사용자에게 알려줄 것입니다.
어떤 Python 프로젝트에서든 이를 시도해 볼 수 있는 한 줄 명령어는 다음과 같습니다:
uvx ruff@latest check .
저는 저의 가장 큰 세 가지 프로젝트인 Datasette, sqlite-utils, 그리고 LLM에 대해 최신 Ruff를 실행해 보았고, 새로운 기본 규칙을 위반하는 수백 개의 사소한 문제들을 발견했습니다.
세 프로젝트 모두 매우 포괄적인 테스트 스위트 (test suites)를 갖추고 있으며, CI에서 Python 3.10부터 Python 3.14까지 실행되므로 이러한 업그레이드는 상당히 안전합니다. 다음 명령어가 업그레이드의 대부분을 수행했습니다:
uvx ruff@latest check . --fix --unsafe-fixes
sqlite-utils에 대해 해당 명령어를 실행한 결과는 다음과 같습니다:
Found 1618 errors (1538 fixed, 80 remaining).
설명적인 예시로, 남아 있는 문제 중 세 가지를 소개합니다. Ruff는 각 문제를 설명하는 데 아주 훌륭한 역할을 합니다:
DTZ005 `datetime.datetime.now()` called without a `tz` argument
--> tests/test_duplicate.py:17:10
|
...
Astral이 OpenAI로 새롭게 자리를 잡았다는 점을 고려하면, 이 출력 결과는 코딩 에이전트 (coding agent)가 문제를 해결하는 데 필요한 모든 것을 제공한다는 점이 놀랍지 않습니다.
저는 Codex (GPT-5.6 Sol high)를 사용하여 LLM과 sqlite-utils를 업그레이드했고, Claude Code (Opus 5 포함)를 사용하여 Datasette을 업그레이드했습니다.
최근 기사
- OpenAI의 Hugging Face를 향한 우발적 사이버 공격은 실제로 일어난 SF 소설이다 - 2026년 7월 22일
- Claude Code 팀의 Cat 및 Thariq와 함께하는 Fireside Chat - 2026년 7월 21일
- Kimi K3, 그리고 pelican benchmark에서 우리가 여전히 배울 수 있는 것 - 2026년 7월 16일
AI 자동 생성 콘텐츠
본 콘텐츠는 Simon Willison Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기