본문 바로가기

About/Python

[Python] 파이썬 코드 스타일(PEP-8)을 따라야하는 이유

PEP 8이란?


https://peps.python.org/pep-0008/

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code PEP 8 Title Style Guide for Python Code Author Guido van Rossum , Barry Warsaw , Nick Coghlan Status Active Type Process Created 05-Jul-2001 Post-History 05-Jul-2001, 01-Aug-2013 Contents This document gives coding con

peps.python.org

PEP 8은 "Style Guide for Python Code"로 파이썬 코드를 어떻게 구상해야할 지 알려주는 스타일 가이드입니다. PEP 8은 파이썬 구문의 많은 특수성(다른 어머에서 일반적으로 적용되지 않는)을 고려하여 작성되었으며, PEP-8은 파이썬 구문을 실제로 만든 파이썬 개발자가 만들었으므로 이만큼 좋은 표준을 찾기 어렵습니다.

PEP 8을 따라야하는 이유


PEP 8 스타일 가이드를 따라야 하는 이유는 다음과 같습니다.

1. 검색 효율성(Grepability)

코드에서 토큰을 grep (텍스트 검색 명령어) 할 수 있는 기능입니다. 즉 특정 파일이나 파일의 일부에서 특정 문자열을 찾는 기능입니다.
PEP-8에서는 키워드 인자(keyword argument)에 값을 할당할 때는 띄어쓰기를 사용하지 않지만, 변수에 처음 값을 할당할 때는 띄어쓰기를 사용하도록 권고하고 있습니다. 이를 활용하여 검색 조건을 변경할 수 있습니다.
예시를 들어보겠습니다.

1
2
3
4
5
6
def some_func(kw1):
    print(kw1)
 
if __name__ == "__main__":
    kw1 = "Hello"
    some_func(kw1=kw1)
cs


다음과 같이 소스코드가 있을 때 kw1에 값을 할당하는 곳을 찾고 싶다고 가정했을 때 다음 grep 명령어를 실행하면 어떤 파일의 몇번째 줄에서 할당하는지 알려줍니다.

1
2
3
4
$ grep -nr "kw1=" .
./some_code.py:6:    some_func(kw1=kw1)
$ grep -nr "kw1 ="
./some_code.py:5:    kw1 = "Hello"
cs

 

1~2번 라인은 "kw1="을 검색했기 때문에 kw1 파라미터에 값을 할당하는 위치를 알려줍니다.
반면 3~4번 라인은 "kw1 ="을 검색했기 때문에 kw1 변수에 값을 할당하는 위치를 알려줍니다.
이처럼 PEP 8 표준을 따른다는 가정하에 위처럼 다양하게 이용할 수 있습니다.

2. 일관성

코드가 일정한 포맷을 가지면 훨씬 쉽게 읽을 수 있습니다. 신규 입사자 교육 시에 매우 중요한 부분이기도 합니다. 새로운 개발자나 경험이 많지 않은 개발자를 채용한 경우에도 여러 저장소의 코드에 익숙해야합니다.
이 때 레이아웃, 문서화, 이름 작명 규칙 등의 모든 저장소에서 동일하다면 훨씬 쉽게 익숙해질 것입니다.

3. 코드 품질

코드를 구조화하여 살펴보면 한 눈에 코드를 이해하고 버그와 실수를 쉽게 찾을 수 있습니다. 이 외에도 코드 품질 도구를 사용하면 잠재적인 버그를 찾을 수도 있습니다.


PEP 8 과 같은 스타일 가이드를 따르는 것이 좋은 코드를 생산하는 것이라고 할 수는 없지만, 좋은 코드는 PEP 8과 같은 코드 표준을 준수할 것이라 생각합니다. 또한 파이썬 개발자로서 파이썬스로운 코드(Pythonic Code)를 작성하기 위해서도 가장 널리 알려진 PEP 8를 따르는 것이 좋아보입니다.

참고