2.25 application.yml 환경변수 관리

반응형
반응형

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에

implementation "me.paulschwarz:spring-dotenv:4.0.0"

이걸 추가한뒤에

config쪽에

@Configuration
@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

댓글

Designed by JB FACTORY