HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
💌
JJong’s Archive
/
📍
kakao 지도 Api
/
시작하기 : Kakao Maps JavaScript SDK 연동하기

시작하기 : Kakao Maps JavaScript SDK 연동하기

Next.js (App Router) 기준이고, Client Component에서만 작동합니다.

✅ 1. Kakao Developers에 앱 등록 + 키 발급

  1. https://developers.kakao.com 접속
  1. [내 애플리케이션] > 앱 만들기
  1. JavaScript 키 복사
  1. [플랫폼] 탭에서 웹사이트 도메인 등록 (예: http://localhost:3000, https://fastrip.kr)

✅ 2. .env.local에 키 저장


✅ 3. Kakao Maps 스크립트 로딩

Next.js에서는 Kakao Maps SDK를 직접 <script>로 삽입해줘야 합니다.
🔸 &libraries=services를 붙여야 주소 검색/좌표 변환 기능
🔸 &autoload=false를 붙여야 load()메서드 사용 가능

✅ 4. 지도 생성 컴포넌트 (Client)


✅ 5. 사용 예시


 
NEXT_PUBLIC_KAKAO_JS_KEY=카카오_자바스크립트_키
// app/layout.tsx 또는 별도 _document.tsx 없이 Head에서 삽입 import Script from "next/script"; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="ko"> <head> <Script strategy="beforeInteractive" src={`//dapi.kakao.com/v2/maps/sdk.js?appkey=${process.env.NEXT_PUBLIC_KAKAO_JS_KEY}&libraries=services&autoload=false`} /> </head> <body>{children}</body> </html> ); }
// components/KakaoMap.tsx "use client"; import { useEffect, useRef } from "react"; interface KakaoMapProps { lat: number; lng: number; } export default function KakaoMap({ lat, lng }: KakaoMapProps) { const mapRef = useRef<HTMLDivElement>(null); useEffect(() => { if (!window.kakao || !window.kakao.maps) return; window.kakao.maps.load(() => { const container = mapRef.current; const options = { center: new window.kakao.maps.LatLng(lat, lng), level: 5, }; const map = new window.kakao.maps.Map(container, options); const marker = new window.kakao.maps.Marker({ position: new window.kakao.maps.LatLng(lat, lng), }); marker.setMap(map); }); }, [lat, lng]); return <div ref={mapRef} className="w-full h-[400px]" />; }
<KakaoMap lat={35.815302} lng={127.147893} />