Python에서 코드 스타일은 가독성을 높이고 유지보수를 용이하게 만드는 중요한 요소입니다. PEP 8은 Python 코드의 일관성을 유지하기 위한 스타일 가이드로, Python 개발자들이 따라야 할 권장사항을 제공합니다. 이번 포스트에서는 PEP 8의 주요 내용을 살펴보고, 이를 자동으로 검사할 수 있는 flake8
도구에 대해 알아보겠습니다.
1. PEP 8의 주요 내용
PEP 8은 코드 스타일을 정의하는 다양한 규칙을 포함하고 있습니다. 여기에서는 주요 항목을 정리해 보겠습니다.
(1) 공백 및 들여쓰기 (Whitespace & Indentation)
- 4개의 공백(space) 사용: 들여쓰기에는 4개의 공백을 사용하며, 탭(tab)은 사용하지 않습니다.
- 연속된 여러 줄을 작성할 경우: 수직 정렬이나
\
를 사용할 수 있지만, 가급적()
를 활용하는 것이 좋습니다. - 연산자 앞뒤 공백: 연산자(=, +, -, *, /, etc.) 앞뒤에는 공백을 추가합니다.
# 올바른 예시
x = (a + b) * (c - d)
def my_function():
print("Hello, world!")
# 잘못된 예시
y=(a+b)*(c-d)
def another_function():
print("Bad indentation") # (탭 사용은 금지)
(2) 코드 길이 제한 (Line Length)
- 79자 이하: 일반 코드의 최대 길이는 79자로 제한하는 것이 좋습니다.
- 주석은 72자 이하: 주석(comment)은 72자를 넘지 않도록 작성하는 것이 권장됩니다.
- 긴 문장은 줄 바꿈 사용: 긴 코드는
()
로 감싸 여러 줄에 나누어 작성할 수 있습니다.
# 올바른 예시
my_variable = (
"This is a very long string that exceeds the character limit, "
"so it is split into multiple lines for readability."
)
(3) 함수 및 클래스 정의
- 함수명은 소문자 + 언더스코어:
def my_function():
- 클래스명은 카멜케이스:
class MyClass:
- 두 줄 띄우기: 최상위 함수와 클래스 정의 전후에는 두 줄을 띄웁니다.
# 올바른 예시
class MyClass:
pass
def my_function():
pass
2. PEP 8 자동 검사: flake8
PEP 8 규칙을 일일이 확인하는 것은 어렵기 때문에, 자동으로 검사해 주는 도구를 활용하는 것이 좋습니다. flake8
은 코드 스타일을 점검하는 강력한 도구로, 간단한 명령어로 PEP 8 위반 사항을 찾을 수 있습니다.
(1) flake8
설치하기
pip3 install flake8 --user
(2) flake8
사용법
flake8 my_script.py
예를 들어, a.py
파일을 검사하면 다음과 같은 결과가 나올 수 있습니다:
a.py:1:2: E225 missing whitespace around operator
a.py:3:1: W191 indentation contains tabs
a.py:4:1: W391 blank line at end of file
위 오류들은 다음과 같은 문제를 나타냅니다:
E225
: 연산자 주변에 공백이 없음W191
: 탭을 사용한 들여쓰기W391
: 파일 끝에 불필요한 공백 줄 포함
3. vim
을 이용한 자동 코드 포맷팅
vim
을 사용하는 경우, .vimrc
파일을 설정하여 PEP 8 스타일을 준수하도록 만들 수 있습니다.
(1) .vimrc
설정 예시
set smartindent
set tabstop=4
set expandtab
set shiftwidth=4
set textwidth=79
이 설정을 적용하면:
smartindent
: 자동 들여쓰기 활성화tabstop=4
: 탭 크기를 4칸으로 설정expandtab
: 탭 대신 공백 사용shiftwidth=4
: 자동 들여쓰기 크기를 4칸으로 설정textwidth=79
: 79자 이상이면 자동 줄 바꿈
결론
PEP 8은 Python 코드의 가독성을 높이고 협업을 원활하게 만드는 중요한 스타일 가이드입니다. 이를 준수하면 유지보수성이 뛰어난 코드를 작성할 수 있으며, flake8
을 활용하면 자동으로 코드 스타일을 검사할 수 있습니다. 또한, vim
환경에서도 설정을 통해 일관된 코드 스타일을 유지할 수 있습니다.
Python 개발자로서 PEP 8을 숙지하고 준수하는 것은 필수적인 역량이므로, 이를 적극적으로 활용해보세요!
답글 남기기