관리 메뉴

miinsun

[Spring] API 키 관리하는 방법 본문

WebApp/Spring

[Spring] API 키 관리하는 방법

miinsun 2022. 2. 18. 03:15

 

지금 만들고 있는 프로젝트에서 카카오, 네이버와 같은 여러 외부 API를 사용해야 되서
따로 API KEY를 관리 할 필요를 느꼈다.

나는 properties 파일을 이용해 API KEY를 숨겨보았다.

 

빌드 툴은 Maven을 이용했으며, 먼저 파일 구조는 아래와 같다.

 

1. application-API-KEY.properties 파일 생성

<!- Naver API ->
NAVER-CLIENT=YYYYYYYYYYYY
NAVER-KEY=YYYYYYYYYY
  • 필요한 클라이언트 키와 private 키를 적어준다.
  • 위는 샘플 코드로 각자 발급된 키 정보를 적어줘야한다.

 

2. application.properties 파일 수정

#API KEYS
spring.profiles.include=API-KEY

 

3. .gitignore 파일 수정

### API KEY ###
resources/application-API-KEY.properties
  • git을 이용해 프로젝트를 관리한다면 위와 같이 gitignore 파일도 수정해주자
  • gitignore에 정의된 파일에 대하여 git이 트랙하지 않게된다.
  • 주요한 정보들이 있으면 실수로 원격 저장소에 올리지 않도록 gitignore를 이용하자

 

4. pom.xml 파일 수정

<build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    ...
</build>
  • pom.xml 파일에 resources 내용을 추가한다.
  • 프로젝트 빌드 시application-API-KEY.properties를 인식하도록 해준다.

 

5. API 키 사용

@Component
public class NaverBlogSearchApi {
	@Value("${NAVER-CLIENT}")
	String clientId;
	@Value("${NAVER-KEY}")
    String clientSecret;
    
    ...
    
}
  • @Component로 빈으로 등록한다.
  • @Value("${DATA}) 어노테이션을 이용해 프로퍼티에 정의한 api 값을 불러올 수 있다.

 

 

아래 블로그와 다른 블로그들을 참고해가며 내 프로젝트에 맞게 수정했다.

 

[FIFA Online TMI] Properties 를 통해 API KEY 숨기고 가져오기

1 DAY 1 UPLOAD

nam-ki-bok.github.io

 

Comments