본문 바로가기

위치 기반 서비스 사용하기/구글 지도 (Google Maps)

구글맵 API 활용하기 - (1) MD5 Fingerprint 생성, API Key 발급받기

지금까지 써왔던 것들은 모두 안드로이드 기본 패키지에 들어가있던 것들로, 별도의 라이브러리 설정이 필요가 없었습니다. 하지만, 구글맵의 경우 추가로 구글에서 제공하는 API를 사용하는 것이기에 타겟도 구글맵 라이브러리가 포함된 타겟을 사용해야 하고, 메니페스트 파일에 추가로 선언도 해 주어야 합니다. 그 전에, 구글맵 API를 제데로 사용하려면 우선 "인증"의 과정이 필요합니다.

구글맵 API가 오픈되어있지만, 결국 사용자들이 API를 통해 정보를 요구하면 구글맵 서버로부터 정보를 받아오게 됩니다. 그러다보니 아무나 마구 API를 사용할 수 있게 한다면 서버에 과부하가 일어날 가능성이 높겠죠?? 그래서 구글에서는 API를 사용하려는 사람에게 API Key를 발급해주고, 그 키를 가진 사람만이 지도 정보를 받아올 수 있도록 하고 있습니다. 

구글맵을 사용하기 위해서 필요한 API Key를 발급받기 위해서는 일종의 "개발자 인증"이라고도 할 수 있는 keystore를 이용하여 MD5 Fingerprint를 생성한 후, 생성된 Fingerprint를 가지고 API 키를 발급받아야 합니다. 이 keystore는 나중에 어플리케이션을 개발하여 마켓에 등록하기 전 어플케이션 서명을 할 때 꼭 필요한 것으로, 여기에서는 테스트에 사용되는 debug keystore를 사용하지만 실제로 마켓에 올리거나 단말기에 어플리케이션을 올릴 때에는 자신의 keystore를 사용하여야 합니다.

그럼, 본격적으로 MD5 Fingerprint를 얻는 방법에 대해서 알아보겠습니다. 
MD5 Fingerprint를 얻기 위해서는 keytool이라는 툴을 이용하여야 하는데, 이 keytool은 안드로이드 SDK 내에 있는 것이 아니라 [JDK가 설치된 폴더]/bin 폴더 내에 있습니다.



keytool을 이용하려면 명령 프롬프트를 이용하여야 하는데, 이때 JDK의 Path가 설정되어 있지 않으면 매우 불편합니다. JDK의 Path가 등록되어 있는 경우도 있지만, 등록되어 있지 않을 경우 수동으로 등록해주도록 합시다. 내 컴퓨터 - 속성을 선택한 후, 고급 탭의 [환경 변수] 버튼을 누르면 아래와 같은 화면이 표시됩니다. 


여기에서, 아래의 시스템 변수 목록 중 Path 항목을 선택한 후, 편집을 눌러 아래와 같이 맨 마지막 항목 각 항목을 구분지어주는 문자인 세미콜론(;)을 입력한 후, JDK의 bin 폴더의 경로를 입력한 후, 확인을 눌러주시면 됩니다.


Path가 제데로 등록 되었다면, 본격적으로 MD5 Fingerprint를 생성할 차례입니다.
안드로이드 어플리케이션 테스트에 사용되느 디버그용 keystore는 윈도우 XP 기준으로 C:\Documents and Settings\[사용자 계정명]\.android 폴더 내에 debug.keystore라는 이름으로 저장되어있습니다.


여기에서 아래와 같이 입력합니다.

keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android



잠시 기다리면 아래와 같이 생성된 MD5 Fingerprint가 표시됩니다.


 잘 복사하시고, 이것을 http://code.google.com/android/maps-api-signup.html 에 가신 후, MD5 Fingerprint를 입력하고, 구글 계정으로 로그인하면 API Key가 발급됩니다.

동의 찍고 Generate API Key 누르고~~


생성된 MD5 Fingerprint를 입력한 후, Generate API Key 버튼을 누르시면 아래와 같이 사용자 키가 발급됩니다.
이 사용자 키는 잃어버리지 않게 유의하셔야 합니다. 앞으로 동일한 개발환경에서는 이 API Key를 사용하여 구글맵 API를 사용할 수 있으며, 만약 개발환경이 바뀐 경우에는 다시 API Key를 발급받아야 정상적으로 구글맵 API를 사용할 수 있습니다.


이로써 구글맵 API를 이용하기 위한 준비 절차가 모두 끝났습니다.
다음시간부터는 본격적으로 어플리케이션에서 구글맵을 이용하는 방법에 대해 알아보도록 하겠습니다 :)

100108