Spring boot 프로젝트에서 S3버킷을 사용해야 할 상황이 발생했다. S3버킷의 키 페어와 지역, 버킷 이름 등등을 코드에 작성해야 했는데 Github에 그대로 올리면 큰일 날 것 같아서 방법을 찾아보았다.
https://gengminy.tistory.com/24
이 블로그의 내용이 React에서 하던 방법이랑 비슷해서 사용하기로 결정했다.
.env 파일을 일단 resources 폴더 내부에 만들었다. jar 파일로 빌드할 때 env 파일을 포함시키려면 resources 내부에 만들라고 했기 때문이다. jar 파일 내부에 환경변수를 직접 넣는 것이 위험하다고 하긴 했지만 일단 이 방법으로 가고 나중에 다른 방법을 찾아서 적용하기로 했다.
환경변수 이름은 정해진 규칙이 없는 것 같아서 아래와 같이 만들었다.
그리고 .gitignore에 추가했다.
참고한 블로그에서는 다음과 같이 yml 파일을 작성했다.
spring:
config:
import: optional:.env[.properties]
.env 파일을 .properties라는 확장자를 추가해서 해석하겠다는 의미이고, optional은 .env 파일이 있을 때만 들고오겠다는 의미라고 한다.
@Value("${AWS_ACCESS_KEY}")
private String awsAccessKey;
@Value("${AWS_SECRET_KEY}")
private String awsSecretKey;
@Value("${AWS_REGION}")
private String region;
이런식으로 불러오면 환경변수를 사용할 수 있다. value는
import org.springframework.beans.factory.annotation.Value;
lombok이랑 위의 beans factory의 것 두 가지가 옵션으로 나오는데 beans factory의 것을 사용하면 된다.