네이버 국어사전/영어사전 검색 도구 개요
네이버 국어사전/영어사전 검색 도구 개요 에 대해 설명한다.
1. 네이버 국어사전/영어사전 검색 도구 개요
1.1. 필요성
네이버 국어사전과 영어사전을 검색하고 그 검색결과를 수작업으로 엑셀에 복사&붙여넣기를 반복해 본일이 있는가?
검색할 단어(또는 용어)가 몇 개 되지 않는다면 수작업으로 하면 된다. 하지만 그 개수가 수백개, 수천개 또는 그 이상이라면 수작업은 너무 비생산적이다.
데이터 표준을 도입하는 기업의 규모에 따라 다르겠으나, 표준단어는 수천개 이상, 표준용어는 수만개 이상인 경우가 많다. 이 정도 규모에서는 수작업보다 자동화 도구가 꼭 필요하다.
데이터 표준화 작업 과정중 표준단어, 표준용어의 설명(정의)를 작성할 때 이 도구가 크게 도움이 될 수 있다.
1.2. 주의사항
네이버에서 국어사전, 영어사전 검색을 위한 API를 제공하지 않는다. 백과사전 검색 API는 제공한다. (아래 URL 참조)
https://developers.naver.com/docs/serviceapi/search/encyclopedia/encyclopedia.md#백과사전
이 도구는 네이버에서 공식적으로 제공하는 방법이 아닌 다른 방법으로 검색결과를 가져오기 때문에, 어느 날 갑자기 동작하지 않을 수 있다. (이 글을 작성하는 2021-06-23 현재는 문제없이 동작한다.)
사용조건에 대해서는 “#History#” 시트에 명시된 라이선스 내용을 참조하기 바란다.
1.3. 다운로드
아래 github에서 “네이버 국어사전,영어사전 검색 도구_v1.00_20210620.xlsm” 파일을 선택하여 다운 받거나,
https://github.com/DAToolset/ToolsForDataStandard
또는 이 URL로 바로 다운로드할 수 있다.
https://github.com/DAToolset/ToolsForDataStandard/raw/main/네이버 국어사전,영어사전 검색 도구_v1.00_20210620.xlsm
* 2022-07-08 내용 추가
benif님이 댓글로 제보한 오류를 패치한 내용을 새로운 글로 작성하였다.
위 버전(v1.00)은 더이상 동작하지 않으니 아래 글에서 다운로드 받으면 된다.
네이버 국어사전/영어사전 검색 도구_v1.01_20220708
2. 네이버 국어사전/영어사전 검색 도구 기능과 옵션
2.1. 기능
- 네이버 사전 검색: 검색대상 목록에 대하여 설정에 따라 사전을 검색하고 결과를 엑셀에 출력한다.
- 검색 중지: 검색 중 실행을 중지한다.
- Clear: 검색결과 영역에 출력된 내용을 삭제한다.
2.2. 옵션
- 검색 대상 설정
- 국어사전, 영어사전: 선택한 사전을 검색한다.
- 결과값 있으면 Skip: 검색결과 영역에 이미 내용이 있으면 해당 단어는 검색하지 않고 다음 단어로 넘어간다.
- 검색 결과 표시 설정 (예시는 검색어 “주택자금”에 대한 결과)
- 정확히 일치: 검색어와 정확히 일치하는 결과 표시(matchType -> exact:entry)
(예: 주택자금) - 구성단어: 검색어의 구성 단어에 대한 검색 결과 표시(matchType -> term:or)
(예: 주택, 자금) - 포함단어/용어: 검색어가 포함된 단어/용어에 대해 검색 결과 표시(matchType -> allterm:proximity)
(예: 국민주택자금, 최초주택구입자금대출 등) - 결과출력 제한개수: 검색어에 대한 검색결과를 출력할 개수. 검색 결과가 너무 많을 때 개수에 제한을 둘 수 있음.
- 0: 제한 없음 (모든 검색결과 출력)
- n: n개 검색결과 출력
- 정확히 일치: 검색어와 정확히 일치하는 결과 표시(matchType -> exact:entry)
도움말 버튼을 클릭하면 아래와 같이 설정에 대한 간단한 도움말을 확인할 수 있다.
3. 네이버 국어사전/영어사전 검색 도구 사용 방법
3.1. 기본 사용 방법
다음 순서로 사용한다.
- A열(검색 대상)에 검색어 목록을 채운다.
- 옵션에서 검색 대상(국어사전, 영어사전)을 선택한다.
- 옵션에서 검색 결과를 표시할 설정을 선택한다.
- “네이버 사전 검색” 버튼을 클릭하고 기다린다.
검색어 수가 많아서 오래 걸린다면 다음과 같이 병렬로 처리한다.
- 전체 검색어를 적절한 갯수로 나누어 파일을 별도로 저장한다.
(예: 전체 검색어가 10,000개일 때 1,000개씩 나누어 파일을 _1, _2, …, _10 등으로 저장) - 파일 개수만큼 또는 적절한 수만큼 엑셀을 별도 프로세스로 실행한다. (방법은 아래 참조)
- 1에서 나누어 둔 엑셀 파일을 각 엑셀 process에서 열고 “네이버 사전 검색” 버튼을 차례로 클릭한다.
- 실행이 완료될 때까지 기다린다.
엑셀 VBA 코드내에서는 multi thread를 사용할 수 없다. 동시에 처리하려면 multi process를 사용해야 하고 이런 이유로 엑셀을 별도 프로세스로 실행해서 처리한다. 다음 순서를 참고한다.
3.2. 여러개 엑셀 process 실행 방법
- 엑셀이 실행되어 있지 않다면 먼저 첫 번째 엑셀 process를 실행한다.
- 작업 표시줄에 엑셀 아이콘을 마우스 우측 버튼으로 클릭하고, 팝업 메뉴에서 Alt 키를 누른채로(중요) “Excel” 항목을 마우스 왼쪽 버튼으로 클릭한다. (Alt + 마우스 왼쪽 버튼 클릭)
아래 대화상자가 보일 때까지 Alt 키를 누르고 있어야 한다. - “새 Excel 인스턴스를 시작하시겠습니까?” 대화상자에서 “예(Y)” 버튼을 클릭하여 새로운 엑셀 process 실행
- 여러개의 엑셀 process가 실행되었는지 확인하려면, 작업 관리자에서 “EXCEL.EXE” process가 여러개인지 확인한다
참고로, 사전 검색이 잘 동작하는지 몇 개 검색어만 테스트 해보려면, ▶1) 검색 실행 후 “검색 중지” 버튼을 클릭하는 방법, ▶2) 적정한 검색어 수(5개 내외)아래 빈행을 추가해 두고 검색 실행하는 방법, 이렇게 두가지 방법이 가능하다. 편한 방법을 선택하여 사용하기 바란다.
4. 기타: 참조 소스 코드
VBA JSON parser: https://github.com/VBA-tools/VBA-JSON
네이버 사전 검색결과 JSON 데이터에서 필요한 부분을 추출하는데 parser가 필요하다. 위 URL에 공개된 소스코드를 변경하지 않고 그대로 사용하였다.
참고로, 아래는 저작자 github에 링크된 Tutorial 영상이다.
Tutorial: How to parse JSON with VBA-JSON – https://www.youtube.com/watch?v=CFFLRmHsEAs
5. 동작 방식과 소스코드 설명
별도의 글로 포스팅하였다. 아래 글을 참조하기 바란다.
네이버 국어사전/영어사전 검색 도구 동작 방식과 소스코드
여기까지 네이버 국어사전, 영어사전 검색 도구의 사용 방법을 알아보았다. 다음에는 동작원리와 소스코드에 대해 살펴본다.
<< 관련 글 목록 >>