일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 테라폼 문법
- docker
- nosql
- 도커
- iterm2 단축키
- python
- sftp란
- Shell
- 파이썬
- customize
- minikube mac 설치
- BIG-O NOTATION
- 컨테이너
- Django
- zsh
- 빅오노테이션
- minikube 설치 방법
- server
- terraform
- iterm2 shortcuts
- test
- DynamoDB
- 테라폼 기본 문법
- Bash
- AWS
- linux
- 도커컴포즈
- zshrc
- terraform 문법
- docker-compose
- Today
- Total
sklass의 s-class 프로그래밍 blog
Black formatter 본문
Black 이란?
Black은 최근 파이썬 커뮤니티에서 가장 널리 쓰이고 있는 있는 코드 포멧터입니다. 기존 코드 포멧터와 달리 Black은 설정의 여지가 거의 없어서 정해놓은 특정 포멧팅 규칙을 그대로 따라야합니다. 그래서 처음에 Black을 접햇을 때 Black이 모든 코드를 일률적으로 포멧팅하는 방식에 거부감이 느껴질 수도 있습니다. 이처럼 유연하지 않은 코드 포멧터가 개발자들 사이에서 이렇게 인기를 얻을 수 있었던 이유는 무엇일까요?
바로 팀 내에서 개발자간에 코드 스타일을 협의하고 동의 하에 표준화하는 과정 자체에 상당한 소모적이기 때문입니다. 게다가 대부분의 개발자들이 문자열을 표현하기 위해서 홑따옴표를 사용하든 쌍따옴표를 사용하든 크게 개의치 않습니다. 사실 정말 중요한 것은 하나의 코드 스타일을 기준으로 모든 개발자가 일관성 있는 코드를 작성하는 것입니다.
협업 프로젝트에서 Black을 사용하게 되면 더 이상 코드 스타일에 대해서 개발자간에 왈가왈부 할 일이 없어집니다. Black이 자신의 코드를 포멧팅 하는 방식이 좋든 싫든 더 이상 개인의 특정 선호는 중요하지 않게 됩니다.
Black 설치
Black은 아래의 명령어로 설치가 가능합니다.
$ pip install black
Black을 cli에서 실행하려면 아래의 명령어를 치면 됩니다.
$ black .
VSCode 에 연결
VSCode에서 Command + Shift + P를 한 후, Preferences: Open Workspace Settings (JSON) 이나 Preferences: Open Settings (JSON) 중 하나의 파일에 아래의 json을 추가해줍니다.
Preferences: Open Workspace Settings (JSON) -> 해당 workspace에 한해서만 세팅을 할 수 있는 JSON 파일입니다.
Preferences: Open Settings (JSON) -> VSCode 전체의 workspace에 대한 세팅을 할 수 있는 JSON 파일입니다.
{
"python.formatting.provider": "black",
"editor.formatOnSave": true,
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
},
}
- "python.formatting.provider": "black"
- formatter를 black으로 설정합니다.
- "editor.formatOnSave": true
- VSCode 에서 save를 함과 동시에 black이 적용되게 합니다.
- "source.organizeImports": true
- Black 관련은 아니지만, library를 import 할 때, 알파벳 순서와 import 순서(1. python 내장 library 2. pip으로 다운받은 외장 Library 3. 해당 프로젝트 안의 파일들) 를 save함과 동시에 적용시킵니다.
'python' 카테고리의 다른 글
conda 명령어 정리 (0) | 2021.11.14 |
---|---|
Project Packaging (0) | 2021.10.24 |
Python 정적 메소드 @classmethod, @staticmethod (1) | 2021.10.24 |
shutil (0) | 2021.09.28 |
Celery (0) | 2021.09.01 |