--- title: "검색어 트렌드 예제" slug: "naver-api-hub-search-trend-examples" updated: 2026-09-17T09:15:56Z published: 2026-09-17T09:15:56Z canonical: "api.ncloud-docs.com/naver-api-hub-search-trend-examples" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # 검색어 트렌드 예제 Classic/VPC 환경에서 이용 가능합니다. 검색어 트렌드 API로 주제어별 통합검색 검색 추이를 조회하는 구현 예제입니다. 참고 - 샘플 코드의 `YOUR_CLIENT_ID`에는 네이버 클라우드 플랫폼 콘솔에서 발급받은 Client ID를, `YOUR_CLIENT_SECRET`에는 Client ID에 매핑되는 Client Secret을 입력해 주십시오. - Client ID와 Client Secret 발급 방법은 [NAVER API HUB 개요](/docs/naver-api-hub-overview#API%ED%82%A4)를 참조해 주십시오. ## 통합 검색어 트렌드 조회 주제어로 묶은 검색어에 대한 네이버 통합검색의 검색 추이를 조회하는 검색어 트렌드 API 예제를 설명합니다. 요청 바디의 `keywordGroups`와 검색 조건(`device`, `ages`, `gender` 등)을 다른 값으로 교체하면 동일한 방식으로 다른 검색어의 추이를 조회할 수 있습니다. ### Java Java 기반의 검색어 트렌드 API 예제 코드는 다음과 같습니다. ``` package com.naver.apihub.example; import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; public class ApiExampleSearchTrend { public static void main(String[] args) { String clientId = "YOUR_CLIENT_ID"; // 애플리케이션 Client ID String clientSecret = "YOUR_CLIENT_SECRET"; // 애플리케이션 Client Secret String apiUrl = "https://naverapihub.apigw.ntruss.com/search-trend/v1/search"; Map requestHeaders = new HashMap<>(); requestHeaders.put("X-NCP-APIGW-API-KEY-ID", clientId); requestHeaders.put("X-NCP-APIGW-API-KEY", clientSecret); requestHeaders.put("Content-Type", "application/json"); String requestBody = "{\"startDate\":\"2026-01-01\"," + "\"endDate\":\"2026-05-31\"," + "\"timeUnit\":\"month\"," + "\"keywordGroups\":[{\"groupName\":\"한글\",\"keywords\":[\"한글\",\"korean\"]}," + "{\"groupName\":\"영어\",\"keywords\":[\"영어\",\"english\"]}]," + "\"device\":\"pc\"," + "\"ages\":[\"1\",\"2\"]," + "\"gender\":\"f\"}"; String responseBody = post(apiUrl, requestHeaders, requestBody); System.out.println(responseBody); } private static String post(String apiUrl, Map requestHeaders, String requestBody) { HttpURLConnection con = connect(apiUrl); try { con.setRequestMethod("POST"); for (Map.Entry header : requestHeaders.entrySet()) { con.setRequestProperty(header.getKey(), header.getValue()); } con.setDoOutput(true); try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) { wr.write(requestBody.getBytes(StandardCharsets.UTF_8)); wr.flush(); } int responseCode = con.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // 정상 응답 return readBody(con.getInputStream()); } else { // 에러 응답 return readBody(con.getErrorStream()); } } catch (IOException e) { throw new RuntimeException("API 요청과 응답 실패", e); } finally { con.disconnect(); } } private static HttpURLConnection connect(String apiUrl) { try { URL url = new URL(apiUrl); return (HttpURLConnection) url.openConnection(); } catch (MalformedURLException e) { throw new RuntimeException("API URL이 잘못되었습니다. : " + apiUrl, e); } catch (IOException e) { throw new RuntimeException("연결이 실패했습니다. : " + apiUrl, e); } } private static String readBody(InputStream body) { InputStreamReader streamReader = new InputStreamReader(body, StandardCharsets.UTF_8); try (BufferedReader lineReader = new BufferedReader(streamReader)) { StringBuilder responseBody = new StringBuilder(); String line; while ((line = lineReader.readLine()) != null) { responseBody.append(line); } return responseBody.toString(); } catch (IOException e) { throw new RuntimeException("API 응답을 읽는데 실패했습니다.", e); } } } ``` ### PHP PHP 기반의 검색어 트렌드 API 예제 코드는 다음과 같습니다. ``` ``` ### Node.js Node.js 기반의 검색어 트렌드 API 예제 코드는 다음과 같습니다. ``` const client_id = 'YOUR_CLIENT_ID'; const client_secret = 'YOUR_CLIENT_SECRET'; const api_url = 'https://naverapihub.apigw.ntruss.com/search-trend/v1/search'; const request_body = { startDate: '2026-01-01', endDate: '2026-05-31', timeUnit: 'month', keywordGroups: [ { groupName: '한글', keywords: ['한글', 'korean'] }, { groupName: '영어', keywords: ['영어', 'english'] }, ], device: 'pc', ages: ['1', '2'], gender: 'f', }; (async () => { const response = await fetch(api_url, { method: 'POST', headers: { 'X-NCP-APIGW-API-KEY-ID': client_id, 'X-NCP-APIGW-API-KEY': client_secret, 'Content-Type': 'application/json', }, body: JSON.stringify(request_body), }); console.log(response.status); console.log(await response.text()); })(); ``` ### Python Python 기반의 검색어 트렌드 API 예제 코드는 다음과 같습니다. ``` import urllib.request client_id = "YOUR_CLIENT_ID" client_secret = "YOUR_CLIENT_SECRET" url = "https://naverapihub.apigw.ntruss.com/search-trend/v1/search" body = "{\"startDate\":\"2026-01-01\",\"endDate\":\"2026-05-31\",\"timeUnit\":\"month\",\"keywordGroups\":[{\"groupName\":\"한글\",\"keywords\":[\"한글\",\"korean\"]},{\"groupName\":\"영어\",\"keywords\":[\"영어\",\"english\"]}],\"device\":\"pc\",\"ages\":[\"1\",\"2\"],\"gender\":\"f\"}" request = urllib.request.Request(url) request.add_header("X-NCP-APIGW-API-KEY-ID", client_id) request.add_header("X-NCP-APIGW-API-KEY", client_secret) request.add_header("Content-Type", "application/json") response = urllib.request.urlopen(request, data=body.encode("utf-8")) rescode = response.getcode() if rescode == 200: response_body = response.read() print(response_body.decode("utf-8")) else: print("Error Code:" + str(rescode)) ``` ### C# C# 기반의 검색어 트렌드 API 예제 코드는 다음과 같습니다. ``` using System; using System.IO; using System.Net; using System.Text; namespace NaverApiHubExample { public class ApiExampleSearchTrend { static void Main(string[] args) { string clientId = "YOUR_CLIENT_ID"; string clientSecret = "YOUR_CLIENT_SECRET"; string url = "https://naverapihub.apigw.ntruss.com/search-trend/v1/search"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Headers.Add("X-NCP-APIGW-API-KEY-ID", clientId); request.Headers.Add("X-NCP-APIGW-API-KEY", clientSecret); request.ContentType = "application/json"; request.Method = "POST"; string body = "{\"startDate\":\"2026-01-01\",\"endDate\":\"2026-05-31\",\"timeUnit\":\"month\",\"keywordGroups\":[{\"groupName\":\"한글\",\"keywords\":[\"한글\",\"korean\"]},{\"groupName\":\"영어\",\"keywords\":[\"영어\",\"english\"]}],\"device\":\"pc\",\"ages\":[\"1\",\"2\"],\"gender\":\"f\"}"; byte[] byteData = Encoding.UTF8.GetBytes(body); request.ContentLength = byteData.Length; using (Stream st = request.GetRequestStream()) { st.Write(byteData, 0, byteData.Length); } try { HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { Console.WriteLine(reader.ReadToEnd()); } } catch (WebException e) // 에러 응답 { using (StreamReader reader = new StreamReader(e.Response.GetResponseStream(), Encoding.UTF8)) { Console.WriteLine(reader.ReadToEnd()); } } } } } ```