[네이버 지도] 1. key 발급 및 .env 환경 설정 (vite + React)

2024. 11. 22. 17:33·웹
들어가며 …

 

경희대학교 GDSC 스프린트 챌린지를 진행하며 실시간으로 데이터를 띄워 줄 일이 생겼다. (주기는 약 5분 정도)

정말 간단한 프로젝트지만 지도 API를 웹 상에서 띄워보는 것은 처음이기도 하고,

실시간으로 어떻게 데이터를 뿌려주는 게 좋을지 고민이 되었다.

따라서 이 프로젝트를 진행하며 학습하고자 하는 것은 아래와 같다.

  1. 사용자의 위치에 따라 데이터를 fetch 하되, 특정 주기마다 자동으로 업데이트 된다. (5분 정도)
  2. 지도를 이동시키면 해당 위치에 맞게 데이터를 fetch 해온다.
이번 포스팅 목표: 네이버 클라우드 플랫폼에서 서비스를 등록해 api 키를 발급 받고, 프로젝트에 연결한다.

 

1. API KEY 발급

먼저 네이버 클라우드(https://www.ncloud.com/)로 접속해, (계정이 없다면) 회원가입 후 로그인한다.

그리고 서비스를 이용하려면 필수적으로 결제수단도 등록해주어야 한다.

2. 콘솔 접속

완료 되었다면 콘솔에 접속해, Services ⇒ AI/NAVER API로 이동한다.

3. application 등록


Map api의 요금 정보이다.

기본적인 지도 제공 api인 Web Dynamic Map을 사용하려고 한다. 월 600만 건까지 무료이다. (24년 11월부터 1000 ⇒ 600 으로 변경되었다)

다음과 같이 서비스 명을 작성하고,

서비스 환경도 등록해주었다.

vite project라서 일단 localhost:5173 입력

추후 배포 시 도메인을 다시 입력해줄 예정이다!

또, 찾아보니 https와 http는 구분하지 않는다고 한다.

4. 완료, client ID 보관하기

등록 버튼을 누르면 완료된다.

client ID를 프로젝트에서 사용한다!

5. react 프로젝트에서 지도 불러오기 ( + api key 숨기기 )

https://navermaps.github.io/maps.js.ncp/docs/tutorial-2-Getting-Started.html

 

NAVER Maps API v3

NAVER Maps API v3로 여러분의 지도를 만들어 보세요. 유용한 기술문서와 다양한 예제 코드를 제공합니다.

navermaps.github.io

 

(공식 문서에 설정 뿐만 아니라 예제까지 잘 나와있다.)

 

React + Vite 프로젝트에서 네이버 지도 설정하기

1) .env 파일을 프로젝트의 최상단에 생성

2) api key 입력

// .env

REACT_APP_MAP_KEY = 12345678 // CRA

VITE_MAP_KEY = 12345678 // VITE

CRA와 VITE의 경우가 다르다.

VITE는 “VITE_” 접두사를 붙여야 인식하고, CRA의 경우 "REACT_APP_" 을 붙여야 한다.

이거 몰라서 왜 안될까.. 삽질했던

 

3) .gitignore (중요)

//.gitignore

.env

.env 입력 (push할 때 .env 파일을 제외하기 위함)

 

4) index.html의 <head> 태그에 <script> 태그 추가

<script type="text/javascript" 
src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpClientId=%VITE_MAP_KEY%">
</script>

VITE_MAP_KEY 부분만 수정해서 입력해주면 된다.

 

5) Map 객체 호출, 렌더링

import { useEffect, useState } from 'react'
import './App.css'
import Header from './components/Header';

function App() {
  const [map, setMap] = useState(null);

  // 맵 호출
  useEffect(()=>{
    const initMap = () => {
      const map = new naver.maps.Map("map", {
        center: new naver.maps.LatLng(37.5665, 126.9780), // 초기 위치
        zoom: 18,
      });
      setMap(map);
    }
  initMap();
},[]);

  return (
    <>
      <Header/>
      <div id="map" style={{ width: "100%", height: "100vh" }} />
    </>
  )
}

export default App

 

렌더하고 싶은 태그에 객체 생성 시 넣어준 동일한 id를 주면 된다.

나의 경우 그냥 "map"으로 했다.

 

 

 

 

 

마치며

 

마커, 현재 위치 설정, 데이터 fetch 등 더 자세한 내용은 다음 포스팅에서 다룰 예정이다!

 

 

'웹' 카테고리의 다른 글

[색인 설정] 내 티스토리 블로그가 구글에서 검색되지 않는 이슈  (3) 2025.04.07
Web Workers API : 자바스크립트에서도 멀티쓰레딩이 가능하다?  (1) 2025.01.22
[네이버 지도] 2. 현재 위치 설정하기 (Geolocation web api + React custom hook)  (0) 2024.11.24
'웹' 카테고리의 다른 글
  • [색인 설정] 내 티스토리 블로그가 구글에서 검색되지 않는 이슈
  • Web Workers API : 자바스크립트에서도 멀티쓰레딩이 가능하다?
  • [네이버 지도] 2. 현재 위치 설정하기 (Geolocation web api + React custom hook)
혜밈미
혜밈미
배움의 과정에서 느껴지는 소소한 즐거움을 중요시합니다 🌱 귀여운 거 좋아합니다 😤
  • 혜밈미
    Hyemi.techlog
    혜밈미
  • 전체
    오늘
    어제
    • 분류 전체보기 (31)
      • 웹 (13)
        • React (8)
        • Next (1)
      • 앱 (0)
        • Flutter (0)
      • 회고 (2)
        • 카카오테크 부트캠프 (4)
      • 언어 (2)
        • JavaScript (1)
        • TypeScript (1)
        • Python (0)
      • CS (3)
      • 알고리즘 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    preload
    카카오테크부트캠프
    Vite
    react
    오픈소스 컨트리뷰션 아카데미
    kakaotechbootcamp
    카테부커뮤니티
    Kakao
    판교부트캠프
    카테부
    비동기
    부트캠프
    폰트 최적화
    KTB
    부트캠프추천
    카카오
    OSSCA
    CSR
    최적화
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
혜밈미
[네이버 지도] 1. key 발급 및 .env 환경 설정 (vite + React)
상단으로

티스토리툴바