Ruff 패키지를 사용해 코드 linter와 formatter를 적용한 경험을 공유해보고자 합니다. 코드 작성을 마친 후, Ruff를 통해 한 번 검토를 거치면 코드가 훨씬 읽기 쉽고 깔끔해지며, 필요 없는 함수나 import 구문도 제거되어 최적화된 코드가 완성됩니다.
저뿐만 아니라 다른 사람들과 협업할 때에도 통일된 코드 스타일을 유지하는 것이 중요합니다. Ruff를 통해 이를 손쉽게 구현할 수 있을 것 같아, 설치와 사용 방법을 정리해 보았습니다. 아래는 제가 따라 한 튜토리얼을 참고해 보시면 도움이 될 것입니다. 튜토리얼 중 제가 필요한 기능만 뽑아봤습니다!!
Ruff 설치하기
먼저 pip를 통해 Ruff 패키지를 간단히 설치합니다.
pip install ruff
예시 프로젝트 구조는 다음과 같습니다.
numbers
├── __init__.py
└── numbers.py
numbers.py의 예시 코드는 아래와 같습니다.
from typing import Iterable
import os
def sum_even_numbers(numbers: Iterable[int]) -> int:
"""Given an iterable of integers, return the sum of all even numbers in the iterable."""
return sum(
num for num in numbers
if num % 2 == 0
)
Ruff Linter 적용하기
ruff check 명령어를 통해 현재 디렉터리 내 모든 파일에 대해 Ruff linter를 실행할 수 있습니다. linter란 코드의 오류를 찾아내고, 더 나은 코드 품질을 위해 개선할 수 있는 부분을 알려주는 도구입니다. 예를 들어, 사용되지 않는 import 구문 등을 자동으로 찾아줍니다.
ruff check
위 명령어를 실행하면 다음과 같은 메시지가 나타납니다.
numbers.py:3:8: F401 [*] `os` imported but unused
|
1 | from typing import Iterable
2 |
3 | import os
| ^^ F401
|
= help: Remove unused import: `os`
Found 1 error.
[*] 1 fixable with the `--fix` option.
위 오류를 자동으로 수정하려면 다음과 같이 실행합니다.
ruff check --fix
결과는 다음과 같습니다.
Found 1 error (1 fixed, 0 remaining).
사용하지 않은 import os 구문이 제거된 것을 확인할 수 있습니다.
from typing import Iterable
def sum_even_numbers(numbers: Iterable[int]) -> int:
"""Given an iterable of integers, return the sum of all even numbers in the iterable."""
return sum(
num for num in numbers
if num % 2 == 0
)
Ruff는 기본적으로 현재 디렉터리를 대상으로 실행하지만, 특정 파일이나 경로를 지정할 수도 있습니다.
ruff check numbers/numbers.py
Ruff Formatter 적용하기
ruff format 명령어를 통해 Ruff formatter를 실행할 수 있습니다. formatter는 줄바꿈, 주석 처리 등 코드 스타일을 깔끔하게 정리해 주는 역할을 합니다.
ruff format
실행 결과, 파일이 다시 정돈되고 코드 스타일이 개선된 것을 확인할 수 있습니다.
from typing import Iterable
def sum_even_numbers(numbers: Iterable[int]) -> int:
"""Given an iterable of integers, return the sum of all even numbers in the iterable."""
return sum(num for num in numbers if num % 2 == 0)
기본 88자 줄 길이 제한에 맞춰 코드가 다시 포맷되었음을 `git diff` 등을 통해 확인할 수 있습니다.
요약
Ruff는 코드의 일관성을 유지하고 코드 리뷰 시간을 절약하는 데 큰 도움을 줍니다. 협업 프로젝트에서 통일된 코드 스타일을 유지하고 코드 품질을 높이기 위해 Ruff를 사용해 보세요. 간단한 linter 및 formatter 명령어로 코드 유지보수와 협업에 유용하게 활용할 수 있습니다.
ruff check - 코드 오류를 찾아내는 Linter 실행
ruff check --fix - 자동으로 수정 가능한 오류 수정
ruff format - 코드 스타일을 깔끔하게 정리하는 Formatter 실행
이 명령어들을 사용하여 여러분의 코드에 Ruff를 적용해 보세요. 협업 과정에서 얼마나 유용한 도구인지 경험하게 될 것입니다.
'인공지능' 카테고리의 다른 글
어르신들을 위한 ‘취미 공유 플랫폼’을 만든다면? 웹사이트로 시작해도 될까? (34) | 2024.11.14 |
---|---|
Windows에서 Flutter 설치하는 방법/ 공식 문서 참고 (4) | 2024.10.20 |
VSCode 터미널에서 Anaconda Prompt 사용하는 방법 (6) | 2024.10.12 |
노트북에 코딩 개발 환경 설치하기 (Windows10 기준) / VSCode + Anaconda + 리눅스 (WSL) 설치 (2) | 2024.10.12 |
AI 자격증 추천/ 1주일 안에 Google Professional Machine Learning Engineer 자격증 취득 후기 (0) | 2024.08.18 |