application.md에서 application.yml로 전환하면 발생하는 장단점

jinkyu Seok·2025년 1월 28일

기초학습

목록 보기
9/11

application.propertiesapplication.yml 비교 설명드리겠습니다:

application.yml 장점:

  1. 가독성이 좋음
# application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/webty
    username: root
    password: 1234
    
# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/webty
spring.datasource.username=root
spring.datasource.password=1234
  1. 계층 구조가 명확함
# application.yml
server:
  port: 8080
  servlet:
    context-path: /api
    encoding:
      charset: UTF-8
      
# application.properties
server.port=8080
server.servlet.context-path=/api
server.servlet.encoding.charset=UTF-8
  1. 프로필 구분이 용이
# application.yml
spring:
  profiles:
    active: local

---
spring:
  config:
    activate:
      on-profile: local
  datasource:
    url: jdbc:mysql://localhost:3306/local_db

---
spring:
  config:
    activate:
      on-profile: prod
  datasource:
    url: jdbc:mysql://prod-server:3306/prod_db

application.yml 단점:

  1. 들여쓰기 오류에 민감
spring:
datasource:  # 잘못된 들여쓰기로 인한 오류
    url: jdbc:mysql://localhost:3306/webty
  1. List 표현 시 주의 필요
# 올바른 방법
my:
  servers:
    - dev.example.com
    - prod.example.com

# 잘못된 방법
my:
  servers: dev.example.com, prod.example.com

application.md의 용도:

  • application.md는 일반적으로 설정 파일이 아닌 문서 파일입니다
  • 주로 다음과 같은 용도로 사용됩니다:
    1. 애플리케이션 설정 방법 설명
    2. 환경 변수나 설정값에 대한 문서화
    3. 프로젝트 구성원들을 위한 가이드라인 제공

예시:

# Application Configuration Guide

## Database Configuration
- MYSQL_HOST: 데이터베이스 호스트 주소
- MYSQL_PORT: 데이터베이스 포트 (기본값: 3306)
- MYSQL_USERNAME: 데이터베이스 사용자명
- MYSQL_PASSWORD: 데이터베이스 비밀번호

## OAuth Configuration
- KAKAO_CLIENT_ID: 카카오 OAuth 클라이언트 ID
- KAKAO_CLIENT_SECRET: 카카오 OAuth 시크릿 키

따라서 application.md는 설정 파일이 아닌 설정에 대한 설명 문서로 보시면 됩니다.

0개의 댓글