[[부록10_네이버_개발자센터_API_연동_가이드|부록 10]]. 네이버 개발자센터 API 연동 가이드
[!abstract] 네이버 개발자센터 가입, 애플리케이션 등록, Client ID/Secret 발급, n8n Header Auth 설정까지 안내합니다. 이 가이드를 따라하면 n8n에서 네이버 쇼핑 검색, 블로그 검색 등 다양한 네이버 OpenAPI를 자유롭게 호출할 수 있게 되죠.
n8n에서 네이버 쇼핑 검색, 블로그 검색 등 네이버 OpenAPI를 사용하려면, 먼저 네이버 개발자센터에서 애플리케이션을 등록하고 Client ID와 Client Secret을 발급받아야 합니다. 처음 들으면 복잡하게 느껴질 수 있지만, 이 가이드를 따라 한 번만 설정하면 네이버가 제공하는 다양한 검색 API를 n8n에서 자유롭게 활용할 수 있습니다.
이 부록은 다음 내용을 다룹니다.
- 네이버 개발자센터 가입 및 애플리케이션 등록
- Client ID와 Client Secret 발급
- n8n에서 인증 정보 설정
- 네이버 쇼핑 검색 API 호출 형식
- 쇼핑 검색 API 주요 파라미터와 응답 구조
[!tip] 6.1.1 경쟁사 가격 모니터링 실습에서 오셨나요? 6.1.1 섹션의 워크플로 실습을 위해 이 가이드를 보고 계신다면, 아래 항목을 순서대로 모두 완료한 뒤 돌아가세요.
순서 완료할 항목 비고 1 네이버 개발자센터 로그인 네이버 계정으로 접속 2 애플리케이션 등록 사용 API에서 "검색" 선택 필수 3 Client ID / Secret 확인 안전한 곳에 저장 4 n8n에서 인증 정보 설정 HTTP Request 노드 헤더 설정 5 API 호출 테스트 쇼핑 검색 결과 확인 5단계까지 완료하고 API 호출이 정상 동작하면 준비 끝입니다. [[Day24_06.1.1_경쟁사_가격_모니터링]]으로 돌아가세요.
네이버 개발자센터란?
네이버 개발자센터는 네이버가 제공하는 다양한 OpenAPI를 사용할 수 있는 개발자 포털입니다. 쇼핑 검색, 블로그 검색, 뉴스 검색, 지도, 파파고 번역 등 네이버의 핵심 서비스를 외부 애플리케이션에서 활용할 수 있도록 API를 제공하고 있습니다.
| 항목 | 내용 |
|---|---|
| 제공 API | 쇼핑 검색, 블로그 검색, 뉴스 검색, 이미지 검색, 지도, 파파고 번역 등 |
| 비용 | 무료 (일일 25,000회 호출 제한) |
| 인증 방식 | Client ID + Client Secret (HTTP 헤더) |
| 가입 조건 | 네이버 계정만 있으면 됨 |
💡 n8n에서 왜 네이버 API를 사용할까요? 네이버 쇼핑 검색 API를 활용하면 특정 상품의 최저가, 판매처, 브랜드 정보를 자동으로 수집할 수 있습니다. 이를 워크플로에 연결하면 경쟁사 가격 모니터링, 상품 비교 리포트 자동 생성 등 다양한 비즈니스 자동화가 가능합니다.
네이버 개발자센터 접속 및 로그인
- 웹 브라우저에서
https://developers.naver.com에 접속합니다. - 우측 상단의 로그인 버튼을 클릭하고, 네이버 계정으로 로그인합니다.
- 로그인이 완료되면 개발자센터 메인 화면이 표시됩니다.
![[그림부록10-1.png]] [그림부록10-1] 네이버 개발자센터 메인 화면
💡 네이버 계정이 없다면? 네이버 회원가입 페이지에서 무료로 계정을 만들 수 있습니다.
애플리케이션 등록하기
네이버 API를 사용하려면 애플리케이션을 등록해야 합니다. 애플리케이션이란, "나는 이런 목적으로 네이버 API를 사용하겠습니다"라고 네이버에 신청하는 것이라고 생각하면 됩니다.
등록 페이지로 이동
- 상단 메뉴에서 Application → 애플리케이션 등록을 클릭합니다.
- 또는 로그인 후
https://developers.naver.com/apps/#/register로 직접 접속합니다.
애플리케이션 정보 입력
아래 표를 참고하여 각 항목을 입력합니다.
| 설정 항목 | 값 | 설명 |
|---|---|---|
| 애플리케이션 이름 | n8n (또는 원하는 이름) | 10자 이내, 서비스를 식별할 수 있는 이름 |
| 사용 API | 검색 | 쇼핑 검색 API 사용을 위해 필수 선택 |
| 비로그인 오픈 API 서비스 환경 | WEB 설정 | 드롭다운에서 "WEB 설정" 선택 |
| 웹 서비스 URL | http://localhost | n8n은 로컬 또는 서버에서 실행되므로 localhost 입력 |
![[그림부록10-2.png]] [그림부록10-2] Application 메뉴 → 애플리케이션 등록 클릭
![[그림부록10-3.png]] [그림부록10-3] 애플리케이션 정보 입력 — 이름, 사용 API에서 "검색" 선택
![[그림부록10-4.png]] [그림부록10-4] 비로그인 오픈 API 서비스 환경 — WEB 설정 및 URL 입력
- 모든 항목을 입력한 후 등록하기 버튼을 클릭합니다.
⚠️ 주의 — "사용 API" 선택이 핵심입니다: 반드시 **"검색"**을 선택해야 합니다. 이 항목을 선택하지 않으면 쇼핑 검색 API 호출 시
024 Authentication failed인증 오류가 발생합니다. 나중에 파파고 번역 등 다른 API도 사용하고 싶다면, 여기에서 해당 API를 추가로 선택하면 됩니다.
💡 웹 서비스 URL은 왜
localhost인가요? 네이버 API는 OAuth 방식이 아닌 Client Credential 방식(HTTP 헤더에 키를 담아 전송)을 사용합니다. 따라서 리디렉션 URL이 실제로 사용되지 않으므로,http://localhost를 입력해도 API 호출에는 전혀 문제가 없습니다.
Client ID와 Client Secret 확인
애플리케이션 등록이 완료되면 Client ID와 Client Secret이 발급됩니다. 이 두 값이 n8n에서 네이버 API를 호출할 때 사용하는 인증 열쇠입니다.
확인 방법
- 상단 메뉴에서 Application → 내 애플리케이션을 클릭합니다.
- 방금 등록한 애플리케이션을 선택합니다.
- 개요 탭에서 Client ID와 Client Secret을 확인할 수 있습니다.
![[그림부록10-5.png]] [그림부록10-5] 내 애플리케이션 목록 — 등록한 앱 클릭
![[그림부록10-6.png]] [그림부록10-6] Client ID와 Client Secret 확인 화면
저장할 값:
Client ID: xxxxxxxxxx
Client Secret: xxxxxxxxxx
⚠️ 반드시 안전한 곳에 저장하세요! Client Secret은 비밀번호와 같은 역할을 합니다. 타인에게 노출되면 여러분의 API 호출 한도가 소진될 수 있습니다. 메모장이나 비밀번호 관리 앱에 저장하세요.
n8n에서 인증 정보 설정
GCP의 OAuth처럼 별도의 Credential 유형이 있는 것은 아닙니다. 네이버 API는 HTTP 요청 헤더에 Client ID와 Client Secret을 직접 담아 보내는 방식이므로, n8n에서는 Header Auth Credential을 활용하여 설정합니다.
방법 1: Header Auth Credential + 수동 헤더 (권장)
n8n의 Header Auth Credential은 헤더 1개만 등록할 수 있습니다. 네이버 API는 X-Naver-Client-Id와 X-Naver-Client-Secret 두 개의 헤더가 필요하므로, 보안이 중요한 Client Secret을 Credential에 등록하고, Client ID는 HTTP Request 노드에서 수동으로 추가합니다.
⚠️ 왜 Secret을 Credential에 등록할까요? HTTP Request 노드의 Send Headers에 직접 입력한 값은 워크플로 JSON 파일에 평문으로 저장됩니다. 워크플로를 내보내거나 공유할 때 Secret이 그대로 노출될 수 있습니다. 반면 Credential에 등록한 값은 n8n이 암호화하여 별도로 관리하므로, 워크플로 JSON에 포함되지 않습니다.
Credential 등록 (Client Secret):
- n8n 좌측 메뉴에서 Credentials → Add Credential →
Header Auth를 검색하여 선택합니다. - 아래 값을 입력합니다.
| 항목 | 값 |
|---|---|
| Credential Name | Naver Client Secret |
| Name (Header 이름) | X-Naver-Client-Secret |
| Value | (발급받은 Client Secret 붙여넣기) |
- Save를 클릭합니다.
![[그림부록10-7.png]] [그림부록10-7] n8n Header Auth Credential 생성 — 네이버 Client Secret 등록
HTTP Request 노드에서 사용:
- HTTP Request 노드를 추가합니다.
- Authentication에서
Header Auth를 선택하고, 위에서 만든Naver Client SecretCredential을 지정합니다. - Send Headers를 On으로 설정하고, 아래 헤더를 수동으로 추가합니다.
| Header Name | Header Value |
|---|---|
X-Naver-Client-Id | (발급받은 Client ID) |
💡 Client ID는 왜 수동 헤더로 넣나요? Client ID는 애플리케이션을 식별하는 공개 정보이므로, 워크플로 JSON에 포함되어도 보안상 문제가 되지 않습니다. Secret만 Credential로 보호하면 충분합니다.
방법 2: HTTP Request 노드에서 직접 헤더 추가 (간편)
빠른 테스트나 학습 목적이라면, 두 헤더를 모두 직접 입력하는 것도 가능합니다.
- HTTP Request 노드에서 Authentication을
None으로 둡니다. - Send Headers를 On으로 설정하고, 두 헤더를 추가합니다.
| Header Name | Header Value |
|---|---|
X-Naver-Client-Id | (발급받은 Client ID) |
X-Naver-Client-Secret | (발급받은 Client Secret) |
⚠️ 주의: 이 방법은 Client Secret이 워크플로 JSON에 평문으로 저장됩니다. 워크플로를 내보내거나 다른 사람과 공유할 때 Secret이 노출될 수 있으므로, 실무에서는 방법 1을 권장합니다.
HTTP Request 노드 설정 형식
n8n에서 네이버 쇼핑 검색 API를 호출할 때 HTTP Request 노드에 입력하는 값들입니다. 다른 네이버 OpenAPI(블로그, 뉴스, 이미지 검색 등)도 URL만 다르고 인증·헤더 형식은 동일합니다.
기본 설정
| 설정 항목 | 값 |
|---|---|
| Method | GET |
| URL | https://openapi.naver.com/v1/search/shop.json |
| Authentication | Header Auth → Naver Client Secret Credential 선택 |
쿼리 파라미터 (Send Query Parameters: On)
| Name | Value 예시 | 설명 |
|---|---|---|
query | 노트북 | 검색어 (필수) |
display | 3 | 결과 개수 (1~100, 기본 10) |
헤더 (Send Headers: On)
| Header Name | Header Value |
|---|---|
X-Naver-Client-Id | 발급받은 Client ID |
Client Secret은 위에서 등록한 Header Auth Credential이 자동으로
X-Naver-Client-Secret헤더로 전송하므로 별도 입력하지 않습니다.
![[그림부록10-8.png]] [그림부록10-8] HTTP Request 노드 — Header Auth + Send Headers 설정
정상 호출 시 JSON 응답의 items 배열에 상품 정보(제목·가격·판매처 등)가 담겨 반환됩니다. 응답 구조는 아래 "API 응답 구조" 섹션을 참고하세요.
네이버 쇼핑 검색 API 주요 파라미터
API를 활용할 때 알아두면 유용한 요청 파라미터를 정리합니다.
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 | 예시 |
|---|---|---|---|---|
query | string | ✅ | 검색어 (UTF-8 인코딩) | 노트북 |
display | int | 결과 개수 (1~100, 기본 10) | 5 | |
start | int | 시작 위치 (1~1000, 기본 1) | 1 | |
sort | string | 정렬 기준 (기본 sim) | asc |
정렬(sort) 옵션
| 값 | 설명 | 활용 예시 |
|---|---|---|
sim | 정확도순 (기본값) | 일반적인 상품 검색 |
date | 날짜순 | 신상품 확인 |
asc | 최저가순 | 가격 모니터링, 최저가 알림 |
dsc | 최고가순 | 프리미엄 제품 분석 |
💡 활용 팁: 일반적인 검색에서는
sort=sim(정확도순, 기본값)이 가장 적합합니다. 가격 비교가 목적이라면sort=asc(최저가순)를 사용하면 가장 저렴한 판매처를 바로 파악할 수 있습니다.
API 응답 구조
API 호출 결과로 돌아오는 JSON 응답의 구조를 이해해 두면, n8n 워크플로에서 원하는 데이터를 정확히 추출할 수 있습니다.
응답 예시
{
"lastBuildDate": "Wed, 11 Mar 2026 13:35:28 +0900",
"total": 11454383,
"start": 1,
"display": 3,
"items": [
{
"title": "<b>삼성전자</b> 갤럭시북4 프로 NT940XGQ-A51A",
"link": "https://search.shopping.naver.com/gate.nhn?id=...",
"image": "https://shopping-phinf.pstatic.net/...",
"lprice": "1097990",
"hprice": "",
"mallName": "네이버",
"productId": "52631236642",
"productType": "1",
"brand": "갤럭시북4",
"maker": "삼성전자",
"category1": "디지털/가전",
"category2": "노트북",
"category3": "",
"category4": ""
}
]
}
주요 필드 설명
| 필드 | 설명 | n8n에서 접근 방법 |
|---|---|---|
total | 전체 검색 결과 수 | {{ $json.total }} |
display | 현재 응답에 포함된 결과 수 | {{ $json.display }} |
items | 상품 목록 배열 | {{ $json.items }} |
items[].title | 상품명 (HTML 태그 포함 가능) | {{ $json.items[0].title }} |
items[].link | 상품 상세 페이지 URL | {{ $json.items[0].link }} |
items[].lprice | 최저가 (문자열) | {{ $json.items[0].lprice }} |
items[].hprice | 최고가 (문자열, 없을 수 있음) | {{ $json.items[0].hprice }} |
items[].mallName | 판매처 이름 | {{ $json.items[0].mallName }} |
items[].brand | 브랜드명 | {{ $json.items[0].brand }} |
items[].maker | 제조사명 | {{ $json.items[0].maker }} |
items[].category1 ~ category4 | 카테고리 분류 (대→소) | {{ $json.items[0].category1 }} |
💡
title필드에는 HTML 태그가 포함될 수 있습니다. 검색어와 일치하는 부분이<b>태그로 감싸져 있습니다. 워크플로에서 깔끔하게 표시하려면 태그를 제거하는 처리가 필요할 수 있습니다.
💡
lprice는 문자열입니다. 가격 비교나 계산을 하려면 숫자로 변환해야 합니다. n8n에서는{{ Number($json.items[0].lprice) }}표현식으로 변환할 수 있습니다.
API 사용 한도 및 주의사항
| 항목 | 내용 |
|---|---|
| 일일 호출 한도 | 25,000회 |
| 초과 시 응답 | 429 Too Many Requests 오류 |
| 한도 초기화 | 매일 자정(KST) 기준 |
| 상업적 사용 | 네이버 이용약관 확인 권장 |
⚠️ 주의: 일일 25,000회는 넉넉한 편이지만, 워크플로에서 반복 호출(Loop)을 설정할 때는 호출 횟수를 미리 계산해 보세요. 예를 들어, 100개 키워드를 10분마다 검색하면 하루에
100 × 6 × 24 = 14,400회가 됩니다.
💡 호출 한도를 확인하는 방법: 네이버 개발자센터 → 내 애플리케이션 → 해당 앱 → API 통계 탭에서 일별/월별 API 호출 현황을 확인할 수 있습니다.
정리하며
이 부록의 핵심을 정리하면 다음과 같습니다.
- 사용 API에 "검색" 선택은 필수: 빠뜨리면
024 Authentication failed오류가 발생합니다. 다른 API(파파고 등)도 추후 같은 앱에 추가할 수 있습니다. - 인증은 두 개의 헤더:
X-Naver-Client-Id+X-Naver-Client-Secret. Secret은 Header Auth Credential로 등록해 워크플로 JSON 노출을 막고, ID는 수동 헤더로 입력하는 방식이 권장됩니다. - 웹 서비스 URL은
http://localhost로 충분: 네이버 API는 OAuth가 아닌 Client Credential 방식이라 리디렉션 URL이 사용되지 않습니다. - 무료 일일 25,000회: 반복 호출(Loop) 워크플로 설계 시 호출 횟수를 미리 계산하세요. 한도 초과 시
429 Too Many Requests. - 응답의
lprice·hprice는 문자열: 가격 비교나 계산이 필요하면{{ Number($json.items[0].lprice) }}로 숫자 변환.
설정 체크리스트
- 네이버 개발자센터(
https://developers.naver.com)에 로그인 - 애플리케이션 등록 완료 (사용 API에 "검색" 선택 확인)
- 웹 서비스 URL에
http://localhost입력 - Client ID와 Client Secret을 안전한 곳에 저장
- n8n에서 Header Auth Credential(
Naver Client Secret) 등록 - HTTP Request 노드에
X-Naver-Client-Id수동 헤더 추가
자주 하는 실수와 해결법
| 증상 | 원인 | 해결법 |
|---|---|---|
024 Authentication failed | 사용 API에 "검색" 미선택 | 개발자센터 → 내 애플리케이션 → API 설정에서 "검색" 추가 |
024 Authentication failed | Client ID 또는 Secret 오입력 | 값 앞뒤 공백 제거 후 재입력 |
010 Not Found | 잘못된 API URL | URL을 https://openapi.naver.com/v1/search/shop.json으로 확인 |
000 System Error | 검색어(query) 미입력 | query 파라미터에 검색어가 있는지 확인 |
429 Too Many Requests | 일일 호출 한도 초과 | 다음 날까지 대기하거나 호출 간격 조정 |
빈 items 배열 반환 | 검색 결과 없는 키워드 | 다른 검색어로 테스트 |
💡 다음 단계: AI 에이전트 워크플로에서 문서 검색·RAG를 구축하려면 벡터 저장소가 필요합니다. 다음으로 [[부록11_Supabase_벡터_저장소_설정_가이드|부록 11. Supabase 벡터 저장소 설정 가이드]]를 참고하세요.
