한화시스템 Beyond SW Camp/백엔드

[Spring Boot] 환경 변수 설정

taeh00n 2025. 2. 12. 21:35

환경 변수 : 운영 체제나 애플리케이션이 실행될 때 설정할 수 있는 전역적인 변수

 

환경 변수 설정하는 이유

우리는 Spring Boot에서 application.yml 파일을 사용해 어플리케이션 설정을 관리했다. 지금까지 한 내용으로는 구글 앱 비밀번호, 구글 아이디, DB 주소, ID, PW 등등 다른 사람이 볼 수 있는 깃허브에 올렸을 때 민감한 정보들이 들어있었다.

 

이런 보안 문제를 해결하기 위해 환경 변수를 활용하면 깃허브에 코드만 올리고 민감한 정보는 환경 변수에서 불러와서 설정을 하는 방식으로 바꿀 수 있다.


환경 변수 설정 방법 (application.yml 파일)

spring:
  mail:
    host: smtp.gmail.com
    port: 587
    username: ${GOOGLE_ID}	//기존 => username : test@test.com
    password: ${APP_PASSWORD}
    properties:
      mail:
        smtp:
          starttls:
            enable: true
            required: true
          auth: true
          timeout: 5000

  datasource:
    master:
      jdbc-url: jdbc:mariadb://${MASTER_DB}
      driver-class-name: org.mariadb.jdbc.Driver
      username: ${DB_ID}
      password: ${DB_PASSWORD}
    slave:
      jdbc-url: jdbc:mariadb://${SLAVE_DB}
      driver-class-name: org.mariadb.jdbc.Driver
      username: ${DB_ID}
      password: ${DB_PASSWORD}

 

application.yml 파일의 일부를 살펴보도록 하겠다. username이 기존에는 test@test.com으로 설정되어있는 상태로 깃허브에 올라갔을텐데 설정 파일의 민감한 정보 ${환경변수명} 으로 수정했다.

Setting -> Edit

Modify Options

환경변수 Name, Value 설정

 

환경 변수명과 ${환경변수명} 동일하게 설정하면 해당 환경 변수의 값이 매핑된다