YAML

HY_1023·2026년 3월 31일

명령어 정리

목록 보기
7/10

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에 분리해두면 코드 수정 없이 설정만 바꿀 수 있어 유지보수가 편해집니다.

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

Python에서 읽는 방법

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은 가독성이 가장 좋아서 많이 쓰입니다.

profile
개발언어를 배우는 과정 기록

0개의 댓글