2.25 application.yml 환경변수 관리
- 국비지원 (스파르타)
- 2025. 2. 25. 11:52
git에 application.yml을 올리려고 하니 문제가 발생하였다.
그건 바로 application.yml에 민감한 내용의 정보를 올렸다는 점이다.
원래 같으면 ${}로 감싸서 환경변수로 사용했을텐데 그러지 않았다.
요런식으로 사용하게 되면 환경변수를 세팅할 수 있다. 근데 배포는 jar파일로 말아서 배포가 되어진다.
그니까 저렇게 사용할거면 jar파일로 말때 강제로 넣어줘야 한다는 뜻이다.
근데 나는 java -jar xxx.java이렇게 사용하고 싶었다. 그러니까 jar파일을 실행시킬때 환경변수를 세팅하고 싶지 않았다.
그래서 방법을 찾아보니
.env파일을 만들라고 했다.
찾아보니 루트에 만들라고 했다.
그리고 env파일에 저 위내용을 집어넣고 돌려봤다.
후..
db가 자꾸안된다고 했다. 몇번의 시도를 해봤지만 결국 .env파일안에 넣고 돌리지 못했다.
그래서 일단 환경변수를 jar파일말때 하기로 했다. 뭐 배포는 내가 하니..ㅎㅎ;
근데 귀찮아질거 같아 어떻게 하면 좋을지 멘토님에게 여쭤보러갔다.
다음은 멘토님이 소개해준 블로그글이다.
https://gengminy.tistory.com/24
https://bbogle2.tistory.com/entry/Spring-env-%ED%8C%8C%EC%9D%BC%EB%A1%9C-private-data-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0
https://akku-dev.tistory.com/144
https://kim-zzaisang.tistory.com/42
암튼 얘네를 참고해서 다시 도전해봤지만 결국 실패하게 되었고 멘토님에게 다시 찾아가게 되었다.
지금당장 이게 왜 안되는지 찾아야 되는데 얘네는 추후에 찾기로 하고 방법을 찾기로 했다.
다른팀은 도커로 했지만 우리는 도커를 띄우지 않기로 했다.
굳이 이 프로젝트에 도커까지 쓸 필요는 없다고 생각했구
없을때도 사용하는 방법을 알아야 된다고 생각했다.
암튼
배운 방법은 다음과 같다.
env파일을 resource 하위에 만들고 env.properties 파일을 생성하고
위 환경변수를 넣었다.
그리고 나서
gradle에
이걸 추가한뒤에
config쪽에
@PropertySources({
@PropertySource("classpath:properties/env.properties") // env.properties 파일 소스 등록
})
public class PropertyConfig {
}
요걸 추가하고 jar로 말아서 실행시켜봤다.
다행히 실행히 잘되었다.
뭐 왜 되는지는 정확히는 잘모르겠다. 왜 안되었는지도 잘 모르겠다.
일단 된거로 만족하려고 한다.
왜냐하면 저거 찾을 시간이 없을거 같기 때문이다. 하지만 반드시 찾을거다.
'국비지원 (스파르타)' 카테고리의 다른 글
DDD (시작) (0) | 2025.02.27 |
---|---|
첫번째 프로젝트 회고 (0) | 2025.02.26 |
2.24 ec2에 레디스 적용하기 (0) | 2025.02.24 |
2.21 첫번째 프로젝트 마무리중 (0) | 2025.02.22 |
2.20 hashset vs arrayList (1) | 2025.02.20 |