초기 설정
1. 카카오 개발자사이트에 접속해 개발자 등록 및 앱 생성
2. 앱 설정 - 플랫폼 - Web 플랫폼 등록으로 사이트 도메인 등록 (지도API를 사용할 도메인이 어디인지 등록! http://localhost:3000/ 으로 등록함
3. 앱 설정 - 앱 키 - JavaScript 키 복사하여 .evn.local에 저장 -> 변수명 VITE_KAKAO_MAP_API_KEY (VITE_로 시작하면 상관없음!)
간단 테스트 - 지도 띄우기 (API 연결 확인)
// index.html
<script
type="text/javascript"
src="//dapi.kakao.com/v2/maps/sdk.js?appkey=%VITE_KAKAO_MAP_API_KEY%" // 발급받은 API 키 입력
></script>
import { useEffect } from "react";
const { kakao } = window;
const App = () => {
useEffect(() => {
const container = document.getElementById("map");
const options = {
center: new kakao.maps.LatLng(33.450701, 126.570667),
level: 3,
};
const map = new kakao.maps.Map(container, options);
}, []);
return (
<>
<div id="map" style={{ width: "500px", height: "400px" }}></div>
<div>test</div>
</>
);
};
export default App;
Cannot read properties of undefined (reading 'maps')
처음에 maps가 undefined라는 에러가 떴는데, 검색해보니 카카오 개발자 사이트에서 실행할 도메인을 등록하지 않은 경우에 생기는 에러라고 한다. 나는 분명 잘 받아와서 .env.local에도 잘 등록해놨기 때문에 ㅠㅠ 찾아보다가 appKey 환경변수 앞뒤로 %를 붙여주니 해결됐다.
// index.html
<script
type="text/javascript"
src="//dapi.kakao.com/v2/maps/sdk.js?appkey=%VITE_KAKAO_MAP_API_KEY%" {* 여기! *}
></script>

'React' 카테고리의 다른 글
[React] 리액트에서 classList 수정하기, 조건에따라 className 변경하기 (1) | 2024.09.15 |
---|---|
[React/Vite] 카카오맵 API 마커 표시, 클러스터 라이브러리 사용해보기 (1) | 2024.09.13 |
[React/JS] 캐러셀 구현하기 (Tailwind) (0) | 2024.09.12 |
[TanStack Query] Query Cancellation, Optimistic Updates (2) | 2024.09.07 |
[TanStack Query] useQuery() 옵션 - enabled, select (0) | 2024.09.06 |