자, Python 프로젝트를 좀 더 깔끔하게 관리하고 싶으신가요? 저도 한때 코드가 엉망이 되는 바람에 엄청 고생했던 기억이 나네요. 그래서 Black, Isort, Flake8 이 세 친구를 만나게 된 거죠! 이 셋이 있으면 코드 품질 유지, 협업, 유지보수가 정말 쉬워져요. 지금부터 제가 직접 써먹은 방법을 알려드릴게요. 마치 제가 옆에서 코딩하는 것처럼 말이죠!
먼저, 이 녀석들이 뭔지 간단히 설명해 드릴게요. Flake8은 코드 스타일 가이드라인을 지키는지, 혹시 버그가 숨어있는지, 코드가 너무 복잡하지는 않은지 살펴주는 린터(Linter)예요. 마치 코드의 문법 교정 선생님 같은 존재죠. PyFlakes, pycodestyle, McCabe 세 가지 도구를 하나로 묶은 슈퍼 린터라고 생각하면 돼요.
그리고 Black과 Isort는 포매터(Formatter)입니다. 코드를 자동으로 예쁘게 정리해주는 친구들이죠. Black은 들여쓰기나 줄 바꿈 같은 걸 알아서 깔끔하게 맞춰주고, Isort는 import 문들을 알파벳 순서대로 정렬해줘요. 덕분에 코드 읽기가 훨씬 편해졌어요. Black은 특히 설정을 거의 건드릴 필요가 없어서 정말 편리하더라고요. 저처럼 귀찮은 걸 싫어하는 분들께 강력 추천합니다!
자, 이제 실제로 사용하는 방법을 알려드릴게요. 먼저 requirements.txt 파일에 black, isort, flake8를 추가해야 합니다. 이게 없으면 위 세 친구를 사용할 수 없으니까 꼭 추가해야 해요! 그리고 pyproject.toml 파일을 만들어 설정을 해야 하는데, 이 파일이 없으면 새로 만들면 됩니다. 저는 처음에 이 파일을 만드는 걸 깜빡해서 꽤 애를 먹었던 기억이 나네요.
pyproject.toml 파일에는 이렇게 설정을 써 넣으면 됩니다. line-length는 코드 한 줄의 최대 길이를 정하는 건데, 저는 88로 설정했어요. target-version은 프로젝트에서 사용하는 Python 버전을 적어주는 거구요.
[tool.black]
line-length = 88
target-version = ['py39', 'py310']
[tool.isort]
profile = "black"
line_length = 88
이제 명령어를 실행해볼까요? black .을 실행하면 현재 디렉토리의 모든 Python 파일이 Black으로 포맷됩니다. isort .는 import 문을 정리해주고, flake8 .은 코드를 검사해서 문제점을 알려줍니다. 정말 간단하죠? 저는 처음에 이 명령어들을 실행하는 순서를 잘못 알고 삽질을 좀 했었는데... 여러분은 저처럼 삽질하지 마세요!
여기서 꿀팁 하나 더! pre-commit이라는 훌륭한 도구를 사용하면 Git에 commit 하기 전에 자동으로 코드를 검사하고 정리할 수 있어요. 저는 이 기능 덕분에 코드 품질을 꾸준히 유지할 수 있었답니다. .pre-commit-config.yaml 파일을 만들고 아래 내용을 추가해주세요. 중요한 건 Black, Isort, Flake8의 버전을 항상 최신 버전으로 유지하는 거예요. 최신 버전을 확인하고 수정하는 걸 잊지 마세요!
repos:
- repo: https://github.com/psf/black
rev: 23.1.0 # Black의 최신 버전 확인 필수
hooks:
- id: black
- repo: https://github.com/pycqa/isort
rev: 5.12.0 # Isort의 최신 버전 확인 필수
hooks:
- id: isort
- repo: https://github.com/pycqa/flake8
rev: 6.0.0 # Flake8의 최신 버전 확인 필수
hooks:
- id: flake8
그리고 pre-commit install 명령어를 실행하면 설치가 완료됩니다. 이제 commit 할 때마다 자동으로 코드 검사와 포맷이 실행되니 정말 편리하죠? 하지만 Black은 코드 스타일을 완전히 바꿔버릴 수 있으니, 변경 사항을 꼼꼼하게 확인해야 해요. Flake8의 경고 레벨도 프로젝트 상황에 맞게 조절하는 게 좋고요.
마지막으로, pyproject.toml 파일을 사용해서 설정을 관리하는 걸 꼭 기억하세요. 이렇게 하면 팀원들과 설정을 공유하기도 쉽고, 버전 관리도 편리해집니다. Black, Isort, Flake8을 잘 활용하면 코드 품질을 확실히 높일 수 있으니, 꾸준히 사용해서 깔끔하고 효율적인 코딩 생활을 만들어 보세요! 궁금한 점 있으면 언제든지 물어보세요!

댓글
댓글 쓰기