formatter라는 것은 코드를 이쁜 형태로 변환해주는 친구를 뜻합니다. 같은 코드를 작성하더라도 사람마다 코드를 작성하는 스타일이 조금씩 다릅니다. 혼자서 개인 프로젝트를 하거나, 평생 혼자 그 코드를 유지보수할 것이라면 사실 자신만의 스타일대로 코드를 작성해도 상관없습니다. 나만 알아보면 되니까요.
그런데 회사에서 여러 사람과 함께 프로그램을 만들어간다거나, 누군가를 위한 예제 코드를 만들거나 하려면 표준적인 코드 스타일로 코드를 작성하는 것이 좋습니다. PEP8에서 권장하는 방식대로 모든 팀원이 코드를 작성하면 좋겠지만, 모든 사람이 숙달되어 있지 않는 한 그 권장 스타일을 그대로 따르면서 코딩을 하는 것은 매우 어려운 일입니다.
다행히 이것을 도와주는 도구가 있습니다. 바로 formatter입니다. formatter에는 autopep8, Black, yapf 등 여러 선택지가 있지만, 이 중에서 우리는 가장 인기있는 Black으로 코드 스타일을 통일시켜보도록 하겠습니다.
Black 사용 전
우선 엉망으로 파이썬 코드를 작성해보겠습니다. 이렇게 작성하면 사수 뿐만 아니라 부사수에게도 쌍욕 먹을 수 있습니다.^^; 실행은 될 수 있겠지만, 누가 보더라도 지저분한 코드라고 생각할 것입니다.
Black 사용 후
vscode를 사용하고 있다면 프로젝트의 root에 .vscode 폴더를 만들고, 그 안에 settings.json 파일을 만든 후 아래 코드를 삽입하면, 코드를 작성하고 저장할 때마다 자동으로 Black 포맷터에 의해 코드가 이쁘게 정리됩니다.
.vscode/settings.json
{
"editor.formatOnSave": true,
"python.formatting.provider": "black",
}
포맷터를 사용하니 PEP8에서 권장하는 것과 같이 클래스 위 아래를 두 줄 씩 띄워주었고, 클래스 내 메서드 사이에는 한 줄을 띄워줬습니다. 또한 문자열을 나타낼 때 쌍따옴표를 사용하는 것으로 통일시켜주었네요. 그리고 불필요한 띄어쓰기도 모두 없애주었습니다. if문에서 조건식과 같은 줄에 콜론(:) 뒤에 코드가 작성된 것도 다음 줄로 내려주었네요.
Black으로 우리 팀의 파이썬 코드 스타일을 통일시켜보는 것은 어떨까요? ㅎㅎ
'Dev > python' 카테고리의 다른 글
[python] super().__init__()의 의미 (0) | 2023.06.15 |
---|---|
[python] 다른 경로에 있는 모듈 불러와서 사용하기, PYTHONPATH 환경변수 세팅 (0) | 2023.06.15 |
[python] 추상 클래스(abstract class) 이해하기 (0) | 2023.06.14 |
[python] 객체의 속성을 읽고 쓰고 삭제하는 getattr, setattr, delattr 함수 (0) | 2023.06.13 |
[python] 타입 힌트와 관련하여 중요한 모듈인 typing을 알아보자 (0) | 2023.05.24 |
[python] 오늘 날짜, 어제 날짜, 일주일 전 날짜 구하는 방법(datetime 모듈) (0) | 2023.05.19 |
[pandas] 데이터프레임의 특정 컬럼의 평균값 구하는 방법, df['컬럼명'].mean() (0) | 2023.05.18 |
[python] 내부망(폐쇄망)에 .whl 파일을 통해서 패키지 설치하는 방법 (0) | 2023.05.17 |