- Published on
PyCharm에서 File Watcher를 활용해 ruff 자동 적용하기
- Authors
- Name
- hongreat
- ✉️hongreat95@gmail.com
Python 프로젝트를 개발할 때 코드 스타일을 자동으로 정리해주는 도구는 생산성과 코드의 일관성을 유지하는 데 매우 중요합니다. 특히 ruff는 매우 빠르고 다양한 lint 규칙을 한 번에 처리할 수 있는 포매터로 각광받고 있습니다.
이 글에서는 PyCharm의 File Watcher 기능을 활용하여 ruff를 저장 시 자동으로 실행하도록 설정하는 방법을 기록 합니다.
1. 사전 준비
ruff 설치 (가상환경 기준):
pip install ruff
PyCharm에서 해당 Python 가상환경이 프로젝트에 설정되어 있어야 합니다.
PyCharm File Watcher 설정 방법 Preferences (Settings) > Tools > File Watchers 메뉴로 이동합니다.
2. 설정
아래와 같이 설정합니다.(하단에 환경변수 복사 가능한 코드블럭이 있습니다.)

2.1 Files to Watch
Name: 자유롭게 작성 합니다.
File Type: Python
Scope: Project Files
2.2 Tool to Run on Changes
2.2.1 Program
$PyInterpreterDirectory$/ruff
2.2.2 Arguments
format $FileDir$
2.2.3 Output paths to refresh
$FileDir$
2.2.4 Working directory
적용할 디렉토리의 경로를 설정합니다. 예를 들어, 프로젝트 루트 디렉토리라면 $ProjectFileDir$
를 사용합니다.
3. 작동 확인 및 참고 사항
위와 같이 설정하면 Python 파일을 저장할 때마다 ruff format 명령어가 실행되어 해당 디렉토리 내의 파일들이 자동으로 포매팅됩니다.
ruff는 black이나 isort처럼 사용법이 간단하면서도, 하나의 도구로 linting과 포맷팅을 동시에 처리할 수 있다는 점에서 특히 유용합니다.
를 인자로 넣은 이유는 저장 중인 파일이 포함된 디렉토리 전체를 포맷하기 위함입니다. 개별 파일만 포맷하고 싶다면 을 사용해도 됩니다.
는 현재 설정된 Python 인터프리터의 경로를 자동으로 가져오기 때문에 별도의 절대 경로 설정 없이 ruff를 실행할 수 있습니다.
4. black isort 적용
예전에 black과 isort를 적용하는 방법을 포스팅한 적이 있습니다. 이와 유사하게 File Watcher를 설정하면 됩니다.