kakao-map
Kakao Local (장소 검색·주소-좌표 변환) + Kakao Mobility (자동차 길찾기) 를 k-skill-proxy 경유로 조회한다. 사용자 키 불필요.
How do I install this agent skill?
npx skills add https://github.com/nomadamas/k-skill --skill kakao-mapIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill provides access to Kakao Map and Mobility APIs through a vendor-provided proxy server. It uses standard network calls to fetch location and transit data. No security risks were identified.
- Socketwarn
1 alert: gptAnomaly
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Kakao Map
What this skill does
Kakao Developers의 두 API를 k-skill-proxy 경유로 묶어 다음 두 종류 질문에 답한다:
- 장소 검색 — 키워드/카테고리/좌표 기준으로 가게·시설·랜드마크를 찾고, 좌표↔주소·행정구역을 변환한다 (Kakao Local REST API).
- 자동차 길찾기 — 출발지·목적지 좌표를 받아 거리·소요시간·통행료·예상 택시 요금을 조회한다 (Kakao Mobility Directions API).
- 운영자
KAKAO_REST_API_KEY를 proxy 서버에만 보관한다. 사용자는 키 발급 필요 없음. - 두 API 모두 같은 Kakao REST API key (KakaoAK 헤더) 로 인증한다.
- 본 스킬은 조회 전용이다. 예약·결제·운전 자동화는 하지 않는다.
When to use
- "강남역 근처 스타벅스 찾아줘" → keyword 검색 (x,y 중심)
- "역삼동 카페 카테고리로 보여줘" → category 검색 (FD6/CE7 등)
- "이 좌표가 어느 동/도로명 주소야?" → coord2address / coord2region
- "강남역에서 시청까지 자동차로 얼마나 걸려?" → Kakao Mobility directions
- "통행료 회피 경로로 알려줘" → avoid=toll (필요 시 priority=DISTANCE 병행)
When NOT to use
- 대중교통(지하철·버스) 경로 → Kakao Mobility는 자동차 전용. 대중교통은
korean-transit-route(ODsay) 사용 - 도보·자전거 경로 (Kakao Mobility에 정식 API 없음)
- 실시간 교통 상황을 1분 단위로 추적 (proxy cache 가 있음)
- 카카오맵 외부 임베드/렌더링 (본 스킬은 데이터 조회만 함)
- 대량 인덱싱/스크래핑 (Kakao 약관 위반 + 일일 quota 초과 위험)
Prerequisites
- Python 3 표준 라이브러리만 사용 가능. JS/curl 호출도 동일하게 지원.
- optional:
KSKILL_PROXY_BASE_URL(self-host·별도 프록시 사용 시. 비우면 hostedhttps://k-skill-proxy.nomadamas.org기본).
Required environment variables
사용자 머신에는 필요 없다. 운영자 proxy 서버에 다음을 둔다:
KAKAO_REST_API_KEY— Kakao Developers REST API 키 (Local + Mobility 공용)
키가 없으면 모든 /v1/kakao-map/* 및 /v1/kakao-mobility/* 라우트가 503 upstream_not_configured 를 돌려준다.
Proxy routes
| endpoint | 용도 | 주요 입력 |
|---|---|---|
GET /v1/kakao-map/search/keyword | 키워드 장소 검색 | q, optional x,y(중심좌표), radius(0category_group_code, sort(accuracy|distance), page(1size(1~15) |
GET /v1/kakao-map/search/category | 카테고리 장소 검색 (좌표 중심 필수) | category_group_code(예: FD6 음식점, CE7 카페), x, y, radius(기본 500), sort, page, size |
GET /v1/kakao-map/coord2address | 좌표 → 도로명/지번 주소 | x, y, optional input_coord(WGS84 기본) |
GET /v1/kakao-map/coord2region | 좌표 → 행정구역(시/도/시군구/동) | x, y, optional input_coord |
GET /v1/kakao-mobility/directions | 자동차 길찾기 | origin=x,y, destination=x,y, optional waypoints(최대 5, | 구분), priority(RECOMMEND|TIME|DISTANCE), car_fuel(GASOLINE|DIESEL|LPG), car_hipass(true|false), alternatives(true|false), avoid(ferries|toll|motorway|schoolzone|uturn; | 구분) |
Kakao 카테고리 그룹 코드 (자주 쓰는 것):
| 코드 | 의미 |
|---|---|
| MT1 | 대형마트 |
| CS2 | 편의점 |
| PK6 | 주차장 |
| OL7 | 주유소/충전소 |
| SW8 | 지하철역 |
| BK9 | 은행 |
| CT1 | 문화시설 |
| AT4 | 관광명소 |
| AD5 | 숙박 |
| FD6 | 음식점 |
| CE7 | 카페 |
| HP8 | 병원 |
| PM9 | 약국 |
Workflow
1. 키워드 검색
BASE="${KSKILL_PROXY_BASE_URL:-https://k-skill-proxy.nomadamas.org}"
curl -fsS --get "${BASE}/v1/kakao-map/search/keyword" \
--data-urlencode 'q=스타벅스' \
--data-urlencode 'x=127.0276' \
--data-urlencode 'y=37.4979' \
--data-urlencode 'radius=500' \
--data-urlencode 'sort=distance'
응답의 documents[] 에서 place_name, road_address_name, phone, place_url, distance 를 추출해 사용자에게 보여준다.
2. 카테고리 검색
curl -fsS --get "${BASE}/v1/kakao-map/search/category" \
--data-urlencode 'category_group_code=FD6' \
--data-urlencode 'x=127.0276' \
--data-urlencode 'y=37.4979' \
--data-urlencode 'radius=300'
3. 좌표 → 주소
curl -fsS --get "${BASE}/v1/kakao-map/coord2address" \
--data-urlencode 'x=127.0276' \
--data-urlencode 'y=37.4979'
documents[0].road_address.address_name, documents[0].address.address_name 사용.
4. 좌표 → 행정구역
curl -fsS --get "${BASE}/v1/kakao-map/coord2region" \
--data-urlencode 'x=127.0276' \
--data-urlencode 'y=37.4979'
응답에 region_type(B=법정동, H=행정동) 별 결과가 들어있다.
5. 자동차 길찾기
curl -fsS --get "${BASE}/v1/kakao-mobility/directions" \
--data-urlencode 'origin=126.9706,37.5559' \
--data-urlencode 'destination=127.0276,37.4979' \
--data-urlencode 'priority=RECOMMEND' \
--data-urlencode 'avoid=toll'
응답에서 routes[0].summary 를 읽는다:
distance(meter) → km 환산duration(second) → 분 환산fare.taxi,fare.toll→ 원priority(요청한 값 echo)avoid요청 시toll등 회피 옵션 적용
6. 출력 포맷
장소 검색:
강남역 근처 스타벅스 5곳 (반경 500m, 가까운 순)
1) 스타벅스 강남R점 — 강남구 테헤란로 ... (120m, 02-...)
2) ...
자동차 길찾기:
자동차 경로: (126.9706,37.5559) → (127.0276,37.4979)
- 거리: 12.3km / 예상 소요시간: 25분
- 통행료: 1,200원 / 예상 택시요금: 18,500원
- 옵션: RECOMMEND, avoid=toll
- 조회 시각: 2026-05-23T14:00:00.000Z
Failure modes
KAKAO_REST_API_KEY미설정 →503 upstream_not_configured- Kakao 인증 실패(401/403) → proxy가
503으로 변환 (key revoke / 쿼터 초과 신호) - 좌표/파라미터 형식 오류 →
400 bad_request - 출발지=도착지가 너무 가까움 (
result_code=104등) →502 upstream_semantic_error+result_msg - Kakao 일일 쿼터 초과 →
502또는503(proxy cache 가 있는 만큼 호출 빈도를 줄임) - 네트워크 실패 →
502 upstream_error
Done when
- 사용자 질문에 맞는 endpoint 1~2개를 선택해 호출했고, 응답을 사람-읽기 좋게 정리했다.
- 좌표나 주소는 출처 endpoint를 함께 명시한다 (Kakao Local vs Kakao Mobility).
- secret/token/.env 원문은 노출되지 않았다.
- 자동차 외 이동 수단을 요청받으면 본 스킬의 범위 외임을 명시하고
korean-transit-route등 대체 안내.
Notes
- Kakao Mobility는 자동차 전용 API다. 대중교통 길찾기는 별도 ODsay 기반
korean-transit-route스킬을 쓴다. - 무료 일일 쿼터(2026년 기준 Local 300,000건 / Mobility 1,000건) 안에서 proxy cache(기본 TTL 5분) + rate-limit(기본 60req/분) 으로 보호한다.
- proxy 운영/환경변수는 k-skill 프록시 서버 가이드 참고.
/v1/kakao-local/geocode(기존)도 같은 키를 쓰며 여전히 사용 가능하다 (address → keyword 자동 fallback). 본 스킬은 그 위에 keyword/category/coord 계열을 명시적으로 노출한다.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/nomadamas/k-skill/kakao-map">View kakao-map on skillZs</a>