YAML 파일 검사 방법은 크게 세 가지입니다.
1. 온라인 검사
yamllint.com에 YAML 내용을 붙여넣으면 바로 문법 오류를 확인할 수 있습니다.
2. 명령어로 검사
# yamllint 설치
pip install yamllint
# 검사 실행
yamllint .pre-commit-config.yaml
오류가 없으면 아무것도 출력되지 않고, 문제가 있으면 줄 번호와 함께 알려줍니다.
3. Python으로 검사
python -c "import yaml; yaml.safe_load(open('.pre-commit-config.yaml'))"
오류가 없으면 아무 반응 없이 넘어가고, 문법 오류가 있으면 에러 메시지가 나옵니다.
자주 발생하는 YAML 오류는 탭(Tab) 사용 (스페이스만 허용), 들여쓰기 불일치, 콜론(:) 뒤에 공백 누락 등입니다.
두 가지 오류가 있습니다.
첫 번째 오류: yamllint .pre-commit-config.yaml → "No such file or directory"
현재 backend/ 폴더에 계신데, 왼쪽 탐색기를 보면 .pre-commit-config.yaml 파일이 backend/ 안에 없습니다. 아직 만들지 않았거나 상위 폴더에 있을 수 있습니다.
두 번째 오류: .pre-commit-config.yaml: command not found
파일 이름만 입력하면 리눅스가 이것을 실행 명령어로 인식합니다. 검사하려면 앞에 yamllint를 붙여야 합니다.
해결 방법:
# 1. 먼저 파일이 어디 있는지 확인
find ~/product-review-service -name ".pre-commit-config.yaml"
# 2. 파일이 있는 위치에서 검사
yamllint /찾은/경로/.pre-commit-config.yaml
또는 아직 파일을 안 만들었다면 먼저 생성해야 합니다.
find 결과가 아무것도 나오지 않았습니다. 즉, .pre-commit-config.yaml 파일이 아직 프로젝트 어디에도 없다는 뜻입니다.
파일을 먼저 만들어야 합니다. 스크린샷 1번의 구조대로라면:
# 루트에 생성
cd ~/product-review-service
touch .pre-commit-config.yaml
# backend용 생성
touch backend/.pre-commit-config.yaml
# ai-server용 생성
touch ai-server/.pre-commit-config.yaml
그 후 내용을 작성하고 검사하면 됩니다:
yamllint .pre-commit-config.yaml
config.yaml은 애플리케이션의 설정 값들을 한곳에 모아 관리하는 파일입니다.
코드 안에 설정값을 직접 쓰면(하드코딩), 값을 바꿀 때마다 코드를 수정해야 합니다. config.yaml에 분리해두면 코드 수정 없이 설정만 바꿀 수 있어 유지보수가 편해집니다.
# 주석은 #으로 작성
# 1. 키: 값 (기본 형태)
app_name: "My App"
debug: true
port: 8000
# 2. 중첩 구조 (들여쓰기로 계층 표현)
database:
host: "localhost"
port: 5432
name: "mydb"
user: "admin"
password: "secret"
# 3. 리스트 (- 로 표현)
allowed_hosts:
- "localhost"
- "127.0.0.1"
- "example.com"
# 4. 환경별 설정
redis:
host: "localhost"
port: 6379
import yaml
with open("config.yaml", "r") as f:
config = yaml.safe_load(f)
print(config["database"]["host"]) # localhost
print(config["port"]) # 8000
YAML은 들여쓰기에 매우 민감합니다. 반드시 스페이스(공백)를 사용해야 하며, 탭(Tab)을 쓰면 오류가 발생합니다. 보통 2칸 또는 4칸 공백을 일관되게 사용합니다.
.env는 환경변수(비밀번호 등 민감 정보), settings.py는 Django 설정, config.json은 JSON 형식의 설정 파일입니다. 이 중 config.yaml은 가독성이 가장 좋아서 많이 쓰입니다.