티스토리 뷰

스프링으로 개발하면서 yaml 파일 관련해서 공부한 내용을 포스팅해봤습니다.

개발 환경은 다음과 같습니다.

  • Spring Boot Version : 3.0.1
  • Java Version : 17
  • Kotlin Version : 1.8.21

https://github.com/laboratory-kkoon9/kotlin-spring

배경

데이터베이스를 docker 올려서 개발하려고 spring에서 yaml로 환경설정 방법을 알아봤습니다.

스프링 부트 2.4 버전부터 application.yml 하나의 파일로 여러 환경변수를 관리할 수 있게 되었습니다.

자세한 내용은 아래 블로그에서 확인해보시면 됩니다.

http://honeymon.io/tech/2021/01/16/spring-boot-config-data-migration.html

 

[spring-boot] 2.4 부터 변경된 구성파일 처리방식 살펴보기 - I'm honeymon(JiHeon Kim).

스프링 부트 2.4(https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.4-Release-Notes) 출시노트를 살펴보면 인상적인 2가지가 있다. 애플케이션 구성파일(application.yml 혹은 application.properties)의 작동방식

honeymon.io

docker-compose.yml

version: "3.8"
services:
  hibernate_batch_mysql:
    image: mysql:5.7
    platform: linux/amd64
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: cafe
    ports:
      - "3306:3306"

이 포스팅에서는 docker-compose에 대한 설명은 생략하겠습니다.

도커를 깔고, 위 yml을 실행시켜주면 다음과 같이 local에 실행됩니다.

application.yml

aes:
  key: cafeSpring
spring:
  jpa:
    database-platform: org.hibernate.dialect.MariaDBDialect
    properties:
      hibernate:
        jdbc:
          time_zone: Asia/Seoul
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver

---
spring:
  config:
    activate:
      on-profile: dev

  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        jdbc:
          time_zone: Asia/Seoul
        format_sql: true
  datasource:
    url: jdbc:mysql://localhost:3306/cafe?characterEncoding=UTF-8
    username: root
    password: root

 

환경을 구분하는 구분자는 --- 입니다.

맨 위에는 모든 환경에서 사용하는 공통 환경변수라고 생각해주시면 됩니다.

다른 환경(ex prod 환경)을 추가하고 싶다면 위 코드 아래 구분자를 추가하고 그 환경의 변수들을 적어주시면 됩니다.

정리

현업에서는 환경 별로 application.yml를 관리했었는데, 혼자 만들어보는 프로젝트에서는 하나의 파일에서 환경변수를 관리해보았습니다.

잘못된 부분이나 궁금한 점은 코멘트 부탁드립니다.

읽어주셔서 감사합니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함