바이브코딩하다 보면 .yaml, .json, .toml, .env 파일이 계속 나옵니다.
다 설정 파일 같은데 왜 이렇게 종류가 많을까요?
핵심은 누가 읽고, 얼마나 복잡한 설정을 담느냐입니다.
YAML
사람이 읽기 편한 설정 파일입니다.
server:
port: 8080
debug: true
주로 쓰는 곳:
- Docker Compose
- GitHub Actions
- Kubernetes
- CI/CD 설정
장점은 가독성이고, 단점은 들여쓰기 하나만 틀려도 오류가 날 수 있다는 점입니다.
복잡한 계층형 설정을 사람이 자주 수정할 때
JSON
프로그램끼리 데이터를 주고받을 때 가장 흔합니다.
{
"port": 8080,
"debug": true
}
주로 쓰는 곳:
- API 응답
package.json- 웹 설정
- 데이터 저장·전송
형식이 명확하고 거의 모든 언어가 지원하지만, 주석을 쓰기 어렵고 사람이 직접 편집하기엔 조금 딱딱합니다.
시스템 간 데이터 교환과 기계가 읽는 설정에 적합
TOML
설정 파일을 깔끔하고 명확하게 작성할 때 사용합니다.
port = 8080
debug = true
[database]
host = "localhost"
주로 쓰는 곳:
- Python
pyproject.toml - Rust
Cargo.toml - 개발 도구 설정
YAML보다 문법 실수가 적고, JSON보다 사람이 읽기 편합니다.
개발 도구나 프로젝트 설정에 적합
.env
환경마다 달라지는 값을 저장합니다.
PORT=8080
DATABASE_URL=postgresql://localhost/app
API_KEY=secret
주로 쓰는 곳:
- API 키
- DB 주소
- 포트
- 개발·운영 환경 분리
구조는 단순하지만 비밀값이 들어가기 때문에 Git에 올리면 안 됩니다.
환경변수와 민감한 설정을 관리할 때
INI
오래된 프로그램이나 단순한 설정에서 자주 보입니다.
[server]
port=8080
debug=true
주로 쓰는 곳:
- 오래된 앱
- 데스크톱 프로그램
- 간단한 서버 설정
구조가 단순해서 편하지만 복잡한 설정에는 잘 맞지 않습니다.
XML
태그를 사용해 데이터를 표현합니다.
<server>
<port>8080</port>
<debug>true</debug>
</server>
주로 쓰는 곳:
- 오래된 기업 시스템
- Java 설정
- 문서 포맷
- 일부 API
표현력은 강하지만 코드가 길고 복잡해지기 쉽습니다.
한눈에 정리
- YAML — 사람이 읽는 복잡한 설정
- JSON — 프로그램끼리 주고받는 데이터
- TOML — 깔끔한 프로젝트 설정
.env— 환경값과 비밀키- INI — 단순하고 오래된 설정
- XML — 복잡한 기업·문서 구조
쉽게 기억하면 됩니다.
사람이 자주 고치면 YAML
프로그램이 주로 읽으면 JSON
개발 도구 설정은 TOML
비밀값은.env
바이브코딩할 때 AI가 파일을 만들어줘도, .env는 공개 저장소에 올리지 않는 것만큼은 꼭 기억해두세요.