등장 배경
- 데이터를 주고받을 때에는 데이터 포맷에 대한 약속이 필요함
- 내부 시스템에 전송할 때는 내부 규칙을 설정해 놓으면 그만이지만, 타 시스템과 연동 시에는 정형화된 포맷이 필요함
API 전송 파일
- xml, json, yaml, toml 등이 있음
Xml
- html과 유사한 구조
- 태그형식으로 key, value를 구분하고, 태그 안에 태그를 넣어서 부모와 자식관계의 구조를 나타냄
json
- key 두번 안들어감
- Object를 {}로 감싸주고, array는 []로 감싸줌
yaml(yml)
- 가장 가독성이 좋음
- 하이픈을 통해서 array임을 알 수 있음
- 쿠버네티스에서도 json보다는 yaml 형식을 권장
toml
# This is a TOML document.
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # First class dates
[database]
server = "192.168.1.1"
ports = [ 8000, 8001, 8002 ]
connection_max = 5000
enabled = true
[servers]
# Indentation (tabs and/or spaces) is allowed but not required
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10"
[clients]
data = [ ["gamma", "delta"], [1, 2] ]
# Line breaks are OK when inside arrays
hosts = [
"alpha",
"omega"
]
- tom's obvious minimal language
- 가독성 좋은 환경설정 파일
- json과 달리 comment사용 가능하면서도 yaml처럼 간결함을 살렸음
- 시각적으로 hierarchical하지 않음
pycache 폴더와 .pyc(.pyo)
- python 프로그램(.py)을 실행하면 interpreter가 compile(컴퓨터가 해석할 수 있도록 bytecode로 전환)을 함
- pyc는 compiled , pyo 는 optimized bytecode compiled
- 프로그램 재시작시 더 빠른 실행을 하게 해주며, 개발 과정에서는 무시해도 큰 문제 없음
init.py
- 일반 디렉토리를 package로 인식하게 해줌
- 보통 빈 파일로 둬도 무관하고,
from <패키지> import *
형식으로 임포트하려면 다음과 같이 __all__
변수를 정의해 주어야 한다.
__all__ = ['<모듈명1>','<모듈명2>',... ]
utils.py
- 작은 함수들은 모아놓은 파일을 관행적으로
utils.py
로 명명함
.gitignore
.gitattributes
- git에 있는 LFS(Large File System)에서 관리하기 위해 추적할 리스트를 작성하는 곳
Reference