깃허브에 코드를 올리다보면, 가끔 민감한 정보를 commit 해버리는 실수를 범할 때가 있다.
실수하지 않더라도 매번 commit 할 때마다 코드에서 일일이 찾아 지우고 다시 입력하고를 반복하는 행위는 이제 그만할 때가 됐다.
그러니 지금부터, 깃허브에 민감한 정보를 올리지 않도록 하는 즉, API-KEY를 숨기는 방법을 배워보자.
(본 포스팅은 Spring Boot 개발 환경에서 진행합니다)
실습 환경은 이전 포스팅인 [Project] 네이버 도서 API 이용해 간단한 도서 검색 web 만들기 (with. Spring Boot) 에서 진행한 코드로 이어서 진행하겠다.
1. application-API-KEY.properties 파일 생성
src/main/resources 경로, 즉 application.properties 파일과 같은 디렉토리 내에 application-API-KEY.properties 파일을 생성한다.
그리고 해당 파일 안에 숨기고자 하는 코드, API-KEY를 Key=Value 형식으로 입력한다.
naver-client-id =
naver-client-secret =
2. application.properties 설정 (만든 파일 추가)
spring.profiles.include=API-KEY
spring-profiles-include : 해당 설정을 통해 어플리케이션을 실행 할 때 profile을 포함하여 실행할 수 있다.3. .gitignore 설정
API-KEY를 담고 있는 파일 application-API-KEY.properties 가 깃허브에 푸쉬되지 않게 .gitignore 설정을 한다.
application-API-KEY.properties
(원래 프로젝트할 때는 application.properties 파일도 기본적으로 gitignore 시켜주는 게 맞다. 해당 코드는 그냥 내 공부용이라서 나중에 확인차 application.properties 을 그냥 업로드했다.)
4. @Value 어노테이션으로 API-KEY 사용하기
Controller 코드에서 API-KEY 를 사용할 수 있도록 @Value 어노테이션을 사용할 것이다.
@Value 어노테이션은 스프링 빈으로 등록된 객체에서 properties 파일이나 환경 변수 등의 값을 주입받을 때 사용된다.@Controller
public class BookController {
@Value("${naver-client-id}")
private String clientId;
@Value("${naver-client-secret}")
private String clientSecret;
...
}