NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 네이버 스마트스토어 검색 순위 매크로 만들기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 몇번에 걸쳐서 네이버 스마트스토어 관련 글을 작성했는데요. 오늘은 심화학습으로 사용자가 입력한 검색 키워드로 내 상품의 순위가 몇등인지 알아보는 매크로를 만들어 볼께요. 내용이 좀 복잡하고 어려울 수 있어서 초보자 분들이 이해하기에는 다소 무리가 있을거 같긴합니다. 하지만, 중급 이상 엔지엠 매크로를 사용해보신 분들은 매크로를 이용해서 어떤 서비스를 제공할 수 있을지에 대해 고민해보는 시간을 가졌으면 좋겠네요^^

     

    엔지엠 매크로 에디터를 실행하고, 첨부되어 있는 스크립트를 불러오세요.

    7obTwfJ.jpg

     

     

    액션이 많아서 내용이 좀 복잡해 보일 수 있습니다. 하나씩 로직을 살펴보도록 하죠~ 변수 액션들에서 중요한 변수는 2가지입니다. 첫번째 검색어 변수의 문자열에 검색할 키워드를 입력해야 합니다. 이 예제 스크립트에는 "NGM 매크로"가 입력되어 있습니다. 여러분들은 이 내용을 변경하면 됩니다.

    nte820T.jpg

     

     

    검색어로 내 상품이 몇위인지 알려면 상품 코드를 알아내야 합니다. 그리고, 상품 코드를 두번째 변수인 상품코드의 문자열 속성에 입력하세요. 엔지엠 매크로의 상품코드는 "82414829713"입니다. 여러분들은 자신의 스마트스토어에 등록되어 있는 상품의 코드를 알아내서 입력해야 합니다.

    i1JGzvH.jpg

     

     

    상품코드를 알려면 네이버 쇼핑에 접속해서 자신의 상품을 먼저 검색해야 합니다. 그리고, 아래 그림과 같이 상품명에서 우클릭 후 링크 주소 복사를 클릭하세요.

    blLYkLW.jpg

     

     

    메모장이나 텍스트 편집기 프로그램에 붙여넣기 한 후 아래와 같이 nvMid= 뒤에 숫자값을 찾습니다. 이 숫자값이 상품코드입니다.

    Pk5MOJY.jpg

     

     

    마지막으로 웹서비스 액션의 해더 목록 속성에 아래와 같이 2개의 값을 설정해야 합니다. 네이버 개발자 Open API 신청하는 방법은 아래 글을 참고하세요.

    [ 네이버 개발자 Open API 사용 신청 ]

    • X-Naver-Client-Id: 네이버 개발자 Open API의 클라이언트 아이디
    • X-Naver-Client-Secret: 네이버 개발자 Open API의 클라이언트 시크릿 키

    pFUEc5R.jpg

     

     

    웹서비스의 네이버 쇼핑 순위를 가져오는 API는 아래와 같습니다.

    • https://openapi.naver.com/v1/search/shop.xml?query={검색어}&display=100&start={페이지}&sort=sim

    aOG848H.jpg

     

     

    웹서비스로 가져온 값을 확인 해보면 아래와 같이 해당 키워드로 100개의 상품을 가져옵니다. 시각화 도구를 보려면 웹서비스 액션을 실행하고, 서버로부터 받은 응답 결과를 클릭하세요. 결과 처리 방법은 Xml이나 Json으로 처리할 수 있습니다. 하지만, 네이버 쇼핑의 응답은 Xml만 가능합니다.

    1czQ9wG.jpg

     

     

    네이버 쇼핑 목록을 Xml 형태로 받아왔는데요. 여기서 우리가 필요한 내용은 item입니다. item을 목록으로 배열화 하기 위해 정규 표현식을 사용했습니다. 아래 정규 표현식은 특정 태그 사이의 값을 추출 해줍니다. 위의 시각화 도구에서 확인할 수 있듯이 목록의 link안에 상품 코드가 있습니다.

    • 매치 옵션: Matchs (목록으로 가져오기 위해 Match가 아닌 Matchs로 선택했습니다.)
    • 정규 표현식: (?<=<link>)(.*?)(?=</link>)

    AMMOmUu.jpg

     

     

    이 스크립트에서는 For 반복과 Foreach 반복 액션이 사용되었습니다. For 반복은 1000개까지 검색하도록 설정되어 있고, Foreach 반복은 100개씩 가져오는 링크에서 상품코드가 있는지 하나씩 확인하면서 숫자를 증가 시켜줍니다. For 반복마다 100씩 증가하고, Foreach 반복마다 1씩 증가합니다. 이렇게 해서 순위를 계산합니다. For 반복이 한번 실행될 때마다 Foreach 반복에서 증가시킨 값을 다시 0으로 초기화 해야 합니다.

     

    왜 이렇게 해야 하는지 이해하기 어려울텐데요. 우선 시나리오를 생각 해봅시다. 내 상품이 102위라면 처음 100개를 가져온 후 상품 목록에서 2번째에 있을겁니다. 만약, 위치를 초기화하지 않으면 For 반복 값이 100이고 Foreach 반복 값은 계속 누적되어서 102가 될겁니다. 그러면, 전체 목록 + 위치 값으로 계산하면 202가 됩니다. 실제로는 102이기 때문에 다음 API를 호출하게 되면 위치는 다시 0부터 계산할 수 있도록 초기화 시켜줘야 합니다. 글로 설명하려니 복잡하고 어렵네요^^

    iz5l565.jpg

     

     

    For 반복에서 100개의 상품을 가져왔습니다. 100개중에 내 상품코드와 일치하는 링크를 찾아야 하기때문에 Foreach 반복을 한번 더 수행했습니다. Foreach 반복 아래에 있는 숫자 증감은 위에서 초기화 시킨 변수에 1씩 증가하면서 누적시키는 액션입니다. 만약, 찾는 상품이 있으면 이 값을 마지막에 더해주면 됩니다.

    BjYoFLZ.jpg

     

     

    링크에서 정규 표현식을 사용해서 내 상품코드가 같은게 있는지 확인합니다. 상품이 있으면 결과 값에 내용이 있고, 상품이 없으면 이 값은 비어있게 됩니다. 사실, 정규 표현식을 사용하지 않고, 텍스트 체크를 사용해도 됩니다. 텍스트 체크 액션의 비교 옵션을 EndWithContains로 사용해도 동일합니다.

    6da9Cmr.jpg

     

     

    정규 표현식의 결과 값이 빈 값인지 체크합니다.

    dFslQ3u.jpg

     

     

    상품을 찾았으면 브레이크 액션이 실행되고, Foreach 반복이 중지됩니다.

    ytf9FJm.jpg

     

     

    텍스트 체크 액션은 위의 브레이크로 반복을 탈출했는지 체크합니다. 브레이크로 반복을 탈출했다면 상품을 찾았다는 뜻이기 때문에 For 반복도 더이상 수행할 필요가 없습니다. 따라서, 이 액션에서 For 반복 밖으로 액션을 이동하도록 처리했습니다. 상품을 찾지 못한 경우에는 조건에 따라 계속 반복합니다.

    537tpKA.jpg

     

     

    상품을 찾았으면 순위를 계산해야합니다. 스마트 사칙연산 액션으로 아래와 같이 수식을 만들어서 사용할 수 있습니다.

    j4VoRpu.jpg

     

     

    매크로를 실행해보면 마지막 스마트 사칙 연산에 결과 값이 순위로 나타납니다.

    7o0SHMW.jpg

     

     

    내용이 복잡하긴 하지만, 몇몇 로직을 분석하고 파악하는데 도움이 될 수 있는 내용입니다. 로직을 만들 때 어떤 액션을 사용해서 값을 비교하고 반복문으로 원하는 데이타를 찾아내는지 학습할 수 있었습니다. 좀 더 효율적인 매크로를 제작하려면 추가적인 내용이 더 필요하긴 하지만, 학습 용도로 만든 내용이니 첨부되어 있는 스크립트를 다운로드 받아서 직접 테스트 해보세요. 다양한 기능을 사용해서 문제를 해결하기 때문에 따라 해보는 것만으로도 많은 발전이 있을겁니다^^

    ※ Foreach 반복에서 100번을 비교해야 하는데요. 이 로직을 간소화 하려면 배열 값 액션을 사용하세요.

    ※ 로직 개선 및 배열 값 사용 방법은 [ 여기 ]를 클릭해서 내용을 확인 해보세요.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    첨부파일

    댓글목록

    등록된 댓글이 없습니다.