카카오 맵 API 연동 트러블 슈팅

1. KAKAO MAP API 트러블 슈팅

이번 시간에는 실무에서 카카오맵 API를 사용하면서 있었던 트러블 슈팅과정에 대해서 설명해보겠습니다.

2. Trouble

현재 운영중인 서비스에서는 카카오맵을 사용한 데이터처리를 하고 있는중이다. 현재 AOS/IOS 웹뷰를 통해서 카카오맵 API를 사용중에 있으며 어느 순간 개발계쪽에 iOS 환경에서 API 호출이 원활하게 이루어지지 않은 상황이 생겼습니다. 해당되는 API를 호출하면서 스크립트를 로드하지 못하는 상황이었습니다.

1
<script type="text/javascript" src="https://dapi.kakao.com/v2/maps/sdk.js?appkey={javascript app key}&libraries=services,clusterer,drawing"></script>

3. Shooting

시도해본 해결 방법은 다음과 같습니다.

  1. API 키 문제
  • AOS환경에서는 정상호출이 되고 있던 상황이었기때문에, API 키 문제를 배제하였습니다.
  1. 호출 URL 문제
  • kakao developer에 기재되어 있는 API 호출방식을 직접 처리하고 테스트했을때 문제가 발생하지 않았습니다.
  1. 웹플랫폼 Inbound IP 허용 규칙 문제
  • 인바운드 IP 허용 규칙이라기엔, 현재 운영중인 개발계, 운영계가 인바운드 규칙에 맞게 적용되어 있었습니다.
  1. 도메인 허용 문제
  • 도메인도 정상적으로 등록되어 호출까지 정상적으로 처리되는것을 확인하였습니다.
  1. 프로토콜 확인
  • http, https, file 명시적 호출을 진행했습니다.
  1. 스크립트 로드
  • 비동기통신으로 script load

이 문제를 해결하기 위해 6가지의 상황으로 해결을 시도해보았지만, 원인을 알 수 없어 직접 kakao developer 에 문의를 남기게 되었습니다.

1
2
3
4
5

지도호출이 성공한 케이스는 앱 정보에 정상적으로 등록한 도메인 ([https://s](https://s/)* 로 시작하는) 으로부터 호출로 보이고 호출이 실패한 케이스는 앱정보에 등록되지 않은 도메인 ([http://172](http://0.0.0.172/).* 로 시작하는) 으로부터의 호출입니다.
해당 앱정보를 확인하니 호출이 발생하는 IP 가 앱설정 > 플랫폼 > Web 에는 없으나 고급설정 > 허용 서버 IP 주소 에는 포함된 것으로 보입니다.
도메인이 없는 IP 형식이라도 Javascript 지도를 호출하기 위해서는 플랫폼 > Web 정보에 포함되어 있어야 합니다.
허용 서버 IP 주소는 REST API 등을 서버 to 서버 호출 시 제한하기 위한 목적입니다.

문의 결과 다음과 같은 답변을 받을 수 있었고, 웹 플랫폼쪽에 등록된 inbound 규칙을 다시 확인하게 되었습니다. 도메인은 정상 등록되어있었지만, 직접 호출하는 웹서버(172.x.x.x)에 대한 규칙은 빠져있는것을 확인하였습니다.
https://172.x.x.x에 대한 도메인을 직접 추가해주고 나서야 해당되는 kakao map API를 정상 호출하는것을 확인 할 수 있었습니다.

직접 카카오쪽에 문의를 하여 답변을 얻고 문의를 계속해나가면서 해결해나갈 수 있었고 여러 인바운드, 도메인 허용 규칙에 대해서 한번더 생각해볼 수 있던 기회가 되었습니다… 타사의 API를 사용하여 서비스를 구현할때는 여러가지 고려해야할 요소가 많다는것을 깨닫게 된 트러블 슈팅이었습니다.