기억은 짧고 기록은 길다
카카오 local 주소검색 API를 사용해서 주소를 주고 위도, 경도를 받아보자 본문
Intro
주소를 주고 위도 경도를 받는 API는 무조건 존재 할 것이다 라는 믿음을 가지고 무작정 검색을 시작했다.
하지만 네이버는 위도, 경도를 보안상 제공하지 않는다는 듯한 글들이 있어서 구글 맵 API를 찾아보던 와중에!! 카카오 주소검색 API를 찾게 되었다.
카카오 가이드를 따라했지만 잘 되지 않아서 여러 블로그와 카페 글들을 찾아보았지만 너무 오래되어 변경사항이 많거나 정확하지 않은 글들이 많아 Node.js로 카카오 주소검색을 구현하는 글을 포스팅해보려고 한다.
1. Kakao developers -> 내 애플리케이션
내 애플리케이션 설정은 매우 기본적인 사항이라 간단하게만 설명하도록 하겠다.
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
- 해당 링크로 이동해 내 애플리케이션에 들어가 애플리케이션을 추가한다.
- 추가한 애플리케이션으로 이동하여 REST API 키를 복사해둔다.
- 좌측 네비게이션 바에서 플랫폼을 선택하여 플랫폼을 등록한다.
필자 예시(Web 플랫폼 등록)
http://localhost:9000
2. kakao_config.js
module.exports = {
apiKey: "REST API KEY",
};
3. kakao_map_client.js
const axios = require("axios");
const apiKey = require("./kakao_config").apiKey;
const getAddressInfo = async (address) => {
// address: 강원도 강릉시 남부로17번길 38 강릉시보건소
const encodedAddress = encodeURIComponent(address); // * //
const response = await axios({
method: "GET",
url: `https://dapi.kakao.com/v2/local/search/address.json?analyze_type=similar&query=${encodedAddress}`,
headers: {
Authorization: `KakaoAK ${apiKey}`,
},
});
console.log(response.data.documents); // * //
};
module.exports = {
getAddressInfo,
};
※ console 출력화면
* 로 표시한 부분이 필자가 헤맨 부분이다.
첫번째 *은 javascript의 내장함수인 encodeURIComponent()를 활용하여 주소를 URL 형식에 맞게 encoding 해준다. encodeURI() 함수로 url전체를 encoding해줘도 상관없다.
두번째 *은 카카오 가이드나 여러글들을 보면 response 바로 아래 documents가 들어있다고 되어있다. 하지만 data안에 들어있는것을 발견하기전까지 필자는 한참 헤매었다..........
필자는 귀찮아서 오류처리를 하지 않았지만 꼭 오류처리를 하고 사용하기 바란다.
주소검색 API 개발 가이드 링크를 첨부하니 참고 바란다.
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
'Node.js' 카테고리의 다른 글
[Node.js] nodemailer로 이메일 보내기 (0) | 2021.08.26 |
---|---|
NCP-SENS를 이용하여 SMS 발송 API 구현하기 #2 (0) | 2021.08.12 |
NCP-SENS를 이용하여 SMS 발송 API 구현하기 #1 (0) | 2021.08.12 |