한화시스템 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 설정
환경 변수명과 ${환경변수명}을 동일하게 설정하면 해당 환경 변수의 값이 매핑된다