[Spring Boot] Spring Boot, Github 업로드 시 API-KEY 숨기기

gogori6565·2024년 8월 6일
0

Spring

목록 보기
7/7

깃허브에 코드를 올리다보면, 가끔 민감한 정보를 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;
    
    ...
}
profile
p(´∇`)q

0개의 댓글