개발을 하며 저장소인 github를 자주 사용하게 됩니다.
하지만 코드 중 Secret Key와 같은 공유되어서는 안되는 정보도 있습니다.
이런 정보들은 어떻게 관리해야할까요?
Spring에서는 resource 패키지에서 appication.propertis 혹은 application.yml이라는 파일을 해당 어플리케이션의 설정 파일로 관리합니다.
설정 파일에서는 해당 어플리케이션의 환경 변수를 저장할 수 있습니다.
security.jwt.token.secret-key와 security.jwt.token.expire-length는 제가 저장한 환경 변수입니다.
설정 파일에서 저장한 환경 변수를 @Value를 통하여 application 코드에서 사용할 수 있습니다.
클래스의 특정 필드 값이 암호화 해야하는 값이라면 생성할 때 @Value와 내부 설정으로 ${} 내부에 이전에 설정 파일에서 설정한 변수 값을 넣게 되면 환경 변수 값을 사용할 수 있습니다.
그리고 공개된 github에 올라가지 않도록 gitignore를 해줍니다.