Spring Boot 등 프레임워크 설정 파일인 application.properties와 application.yml 비교.
1. application.properties
- 형식: Key-Value 쌍 (
key=value또는key:value). - 구조: 점(
.)을 이용한 계층 표현 (예:spring.datasource.url). - 특징:
- 전통적 Java Properties 형식, 익숙함.
- 단순한 Key-Value 구조, 이해 쉬움.
- 계층 깊어지면 Key 반복으로 가독성 저하 가능성 있음.
- 리스트는 인덱스 사용 필요 (예:
my.list[0]=a).
- 예시:
server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=user my.list[0]=apple my.list[1]=banana
2. application.yml (또는 application.yaml)
- 형식: YAML (들여쓰기 기반 계층 구조, 공백 사용).
- 구조: 들여쓰기로 자연스러운 계층 구조 표현.
- 특징:
- JSON보다 사람 친화적, 가독성 높음.
- Key 중복 없이 간결하게 표현 가능.
- 복잡한 설정 구조 표현에 유리함.
- 리스트는
-, 맵은 Key: Value 형태로 직관적 표현. - 들여쓰기에 민감, 오류 발생 가능성 있음 (주의 필요).
---구분자로 한 파일 내 여러 프로파일 정의 가능.
- 예시:
server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: user my: list: - apple - banana
3. 비교 요약
| 항목 | application.properties |
application.yml |
|---|---|---|
| 형식 | Key-Value 쌍 | YAML (들여쓰기 기반) |
| 구조 표현 | 점(.) 이용, 평면적 |
들여쓰기 이용, 계층적 |
| 가독성 | 단순 설정 좋음, 복잡 시 저하 | 복잡한 설정 좋음 |
| 간결성 | Key 중복 발생 가능 | 간결함 (Key 중복 최소화) |
| 리스트/맵 | 인덱스 사용 등 다소 불편 | 직관적 표현 (-, Map 형식) |
| 오류 가능성 | 상대적 낮음 (Key 오타 등) | 들여쓰기 오류에 민감 |
| 프로파일 | 파일 분리 | 파일 분리 또는 ---로 한 파일 관리 |
4. 장단점
application.properties- 장점: 단순/명확, 익숙함, 들여쓰기 오류 없음.
- 단점: 복잡 시 가독성 저하, Key 중복, 리스트/맵 표현 불편.
application.yml- 장점: 계층 구조/가독성 우수, 간결함, 리스트/맵 편리, 멀티 프로파일 관리 용이.
- 단점: 들여쓰기 민감 (오류 가능성), YAML 문법 학습 필요.
5. 선택 가이드
- 단순 설정 / YAML 비선호 시:
.properties가 유리함. - 복잡 설정 / 가독성 / 간결성 중시 시:
.yml이 유리함 (최근 선호도 증가 추세). - 참고: Spring Boot는 두 형식 모두 지원하며 혼용 가능 (일반적으로
.yml우선 적용).
결론: 프로젝트 특성, 설정 복잡도, 팀 선호도에 따라 적합한 형식 선택 필요.
'Project > teamProject1' 카테고리의 다른 글
| 테이블 공간 데이터(POINT, SRID 4326) 추가 및 동기화 로직 수정 과정 요약 (0) | 2025.04.23 |
|---|---|
| 참고 (0) | 2025.04.06 |
