brunch

You can make anything
by writing

C.S.Lewis

by TOFA Sep 20. 2017

네이버 데이터랩 api로 트렌드 모니터 만들기

사실 그냥 네이버 데이터랩 api활용하기

네이버에는 '데이터랩'이라는 검색어 정보제공 서비스가 있다 (구글의 트렌드와 아주 유사한 UI를 갖고 있다)

우리나라에서 네이버 검색 점유율이 높고, 특히나 국내 쇼핑 등과 관련해서는 특히 더욱 높은 점유율을 보이는 만큼, 


'데이터랩'을 잘 활용하면 관련 카테고리에서 소비 추세 분석하고 퍼포먼스에서 seasonal factor를 구분하는 등 매우 다양하게 활용할 수 있다.


그런데, 서비스로 제공되는 네이버 데이터랩은 그냥 사용하기엔 매우 (사용자 측면에서)노동집약적인 서비스인데


1. 한 쿼리에 최대 데이터(키워드) 묶음 개수는 5개

2. 쿼리의 결과값은 최대값을 100으로 조정한 상대 비율로 제공


라는 제약 때문에, 군인 정도의 시급을 받는 RA가 있지 않은 이상 손으로 직접 일일히 데이터를 입력하고 엑셀에 넣어서 상대값을 풀고 지속적으로 데이터를 수집하기는 아무래도 어려운 일처럼 보였다.


다행히, 더 찾아보니 네이버에서는 이것을 rest api형태로 제공하고 있어서, 이를 활용해서


1. 쿼리 개수의 제한이 없고

2. 쿼리의 절대값을 보여주는


네이버 트렌드 모니터를 만들어 보려고 한다.


                            세팅

준비물

- 네이버 개발자 계정 (https://developers.naver.com/main/)

- 상대값을 절대값으로 바꾸기 위한 *유니크 데이터 절대값 (특정 검색어에 대한 실제 특정 시점의 검색 결과 값, 네이버 검색광고에서 키워드 노출 값 등으로 추정, 네이버 광고관리자 계정이 있으면 확인할 수 있다)


네이버에서 데이터랩 정보를 제공하는 방식은 rest api 방식으로 매우 간단하다,


1. 네이버 개발자 센터에서 애플리케이션을 만들고 Client Key/Secret 을 확인해서 요청 헤더에

        'X-Naver-Client-Id': client_id,            

        'X-Naver-Client-Secret': client_secret 

이렇게 넣는다

2. 바디에 조회할 키워드 데이터를 json 형태로 묶어서

3. https://openapi.naver.com/v1/datalab/search 으로 POST 방식으로 보내면 된다


자세한 설명은 공식 문서를 봅시다 https://developers.naver.com/docs/datalab/search/


                            입력


그리고 위의 api에 데이터를 입출력 하기위한 UI를 만든다

1. 절대값 변환을 위해 유니크 데이터를 갖고 있는 입력 창[키워드 - 날짜 - 검색량](추가 가능)

2. 그룹네임 - 키워드 입력창(1의 기준 키워드그룹 하나 꼭 포함해야 함, 추가 가능)

3. 추가 설정 (기간, 연령, 성별 등)


예쁘게 만들면 좋지만, 아마 보통 내부 사용을 하게 될거 같아서 투박하게, 기능에 충실하게 퍼블리싱을 하면 될 것 같다




                                  요청


이제 입력된 데이터를 세팅해놓은 데이터랩 api에 요청을 하면 되는데, 우리가 따로 패키징을 하는 이유는 '5개 이상의 데이터그룹', '제공되는 데이터를 통해 원본값 추정' 이기 때문에,


입력되는 데이터의 개수에 따라서 다중 요청을 만들어서 다시 그걸 하나로 묶는 과정이 필요하다.


예를 들면,


- 데이터 그룹이 5개 이하일때(기준점 데이터 포함)

데이터를 그대로 요청하고, 기준점 데이터를 통해 배율을 구하고, 해당 값을 곱해서 실제 값을 구해 출력한다


- 데이터 그룹이 6개 이상일때(기준점 데이터 포함)

데이터를 5개씩 나눠서 요청하고, 기준점 데이터를 통해 배율을 구하고, 해당 값을 곱한뒤 다시 묶어서 출력한다


이 때, 

네이버에서 제공하는 상대값은 최대값이 100인 정수이므로, 최대-최소값의 차이가 너무 크다면 정확도가 떨어질 수 있다, 


이를 피하기 위해서는 기준점 데이터를 여러개를 넣어서 정확도를 높일 수 있고, 전체 시계열 데이터가 있다면 더욱 정교하게 실제 값을 구해볼수 있으니 - 향후 시계열 데이터에 대한 붙여넣기 UI를 추가하는게 좋겠네요



                                   출력

마지막으로, response 데이터를 입력의 1번 항목을 참조해서 절대값으로 계산한 후 출력해주고 - 이후 구미에 맞게 다른 js 라이브러리를 활용해서 그래프를 그린다는 등 시각화를 해주고 excel export 기능까지 더하면 충분히 좋은 '네이버 트렌드 모니터' 웹 어플리케이션이 완성되겠다.



주의.

네이버 데이터랩의 1일 조회량은 1천건으로 한정되어 있다, 필요하다면(조회량이 일 천건이 넘는다면) 여러 아이디를 등록해서 이용하는 등 조회량 제한을 work around할 수 있는 기능까지 더하면 좋을 것 같다. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari