'네이버'에 해당되는 글 2건
- 2008/05/06 네이버 OpenAPI 검색부분을 자바라이브러리로 만들어 보았습니다. ^^ (2)
- 2008/03/22 AJAX를 이용한 네이버 추천검색어 창 구현
지난주에 네이버 OpenAPI 공식까페 행사를 다녀왔습니다.
직원중 한분이 PHP 라이브러리에 관한 PPT발표를 하셨고 앞으로 ASP, JAVA쪽도 라이브러리를 발표하신다고
하였습니다. 하지만 언제 발표할지는 정해지지 않았다고 하셔셔..
집에 돌아와서 나도 한번 만들어보면 어떨까라는 생각을 하였습니다. ^^
그래서 만들어본게 네이버 검색API쪽의 라이브러리 파일을 만들어 보았습니다.;;
XML파싱부분은 인터넷에 돌아다니는 소스를 이용하여 구현을 하였구요.
리턴형식은 ArrayList에 HashMap의 형태로 반환되게 됩니다.
ArrayList의 0번 인덱스에는 결과에 대한 정보가 나오구요.
1번 인덱스부터 결과의 item안의 정보들이 HashMap의 키값으로 저장되어 있습니다.
title을 얻으려면 get("title") 하시면 됩니다. ^^
현재 자바전문가과정 6개월중 4개월을 진행중이기에.. 자바를 배운지는 얼마 안되어서..
소스코드에 허접함이 뭍어 있으리라 생각됩니다. 테스트도 많이 해보질 않아서 ;;
버그도 많을 것 같습니다..
사용하시다가 버그 생기시면 insford@nate.com 으로 이메일 보내주세요 ^^;
그리고 소스코드에 대한 개선의견이 있으시면 꼭 좀 자세한 설명과 함께 이멜 부탁드립니다. ^^;
* 소스파일은 JAR파일 안에 같이 들어 있습니다.
* Document 링크입니다. http://www.insford.com/naveropenapi/index.html
* 그럼 사용 방법입니다.
1. 첨부파일에서 naverSearch.jar 파일을 다운받아 tomcat안의 컨텍스트명/WEB-INF/lib/ 폴더 안에 넣는다.
naverSearch.jarnaverSearch.jar 라이브러리파일
2. 다음과 같이 예제파일을 코딩하고 컨텍스트명/test.jsp 파일로 저장한다.
* test.jsp
| <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@page import="com.insford.openapi.*, java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Insert title here</title> </head> <body> <% //객체 생성시 타겟과 키값을 입력한다. NaverSearch ns = new NaverSearch("news", "키값"); // doSearch메서드에 쿼리를 내보낸다. ArrayList list = ns.doSearch("박지성"); for(int i=0; i<list.size(); i++){ HashMap hm = (HashMap)list.get(i); if(i < 1){ // 인덱스0번은 검색결과에 대한 정보 out.println("lastBuildDate : " + hm.get("lastBuildDate") + "<br>"); out.println("total : " + hm.get("total") + "<br>"); out.println("start : " + hm.get("start") + "<br>"); out.println("display : " + hm.get("display") + "<br>"); }else{ // 인덱스 1번부터는 item에 대한 정보 out.println("<a href='"+hm.get("link")+"' >"+hm.get("title")+"</a><br>"); } } %> </body> </html> |
3. 톰캣을 구동하고 실행한다. 생성자부분에서 키값을 자신의 네이버키값을 넣는다.
4. http://localhost:8089/컨텍스트명/test.jsp 를 실행하면 위 화면과 같은 화면이 나옵니다.
제가 운영하고 있는 사이트 Developer's 지식창고 ( http://www.insford.com/developer )에 네이버의 추천검색어 기능을 만들어 보았습니다. ^^;
글을 올릴때 태그를 같이 올릴 수 있게 하고 키보드를 입력할때마다 태그를 검색해서 보여주게 됩니다. 아직 글의 개수가 얼마 되지 않아서 LIKE절로 검색하고있습니다.
마우스 오버시 색이 변하구요 키보드를 위아래로 움직여도 변합니다. 해당위치에서 엔터치면 검색이 되구요.
키보드 위아래로 움직이는거 구현하는데에서 애를 많이 먹었어요 ㅠㅠ;;
JSON방식으로 코딩을 하였구요 3개의 클래스로 구현을 했습니다.
* ArrayList.js 파일
Array() 객체로 쓰기가 약간 불편해서 Java의 ArrayList기능을 살짝 섞어서 만든 클래스 입니다.
* Keyword.js 파일
이 파일에는 이벤트 등록/삭제 하는 함수와 검색어들을 관리하는 KeywordClass 클래스 ALink클래스가 있습니다.
* ALink
- 검색어 각각 마다 DIV태그를 만들고 마우스 오버롤로 배경색을 바꿉니다.
- 마우스 클릭 이벤트로 검색창에 검색어를 넣는 이벤트를 호출합니다.
* KeywordClass
- 생성할때 총 4개의 변수가 필요한데 input창, 카테고리1, 카테고리2, 결과창(숨겨놓은DIV) 가 필요합니다.
- input과 result는 반드시 필요하고, selVelue, category 두개는 수정하여 사용하시면 됩니다.
- 수정하실때 AJAX전송함수도 같이 수정해야 합니다. ( 저는 카테고리별로 검색하였슴 )
- 콜백함수 결과를 파싱해서 추가하는 부분도 수정해서 사용하시면 됩니다.
- input창에 click, keydown, blur 이벤트가 생성됩니다.
- 클릭이나 키보드가 입력될때 서버와 통신하여 추천검색어를 화면에 출력해줍니다.
- blur이벤트가 발생하면 결과창이 안보이게 됩니다.
- keydown 이벤트시 방향키 up,down일경우 선택한 검색어가 위아래로 움직입니다. 맨 위일경우 up이면 사라지고, 아무것도없을경우 down이면 다시 검색합니다.
* 사용법
- 위설명대로 KeywordClass파일을 수정한 후 위 사진처럼 등록하셔서 사용하시면 됩니다.
- objKeyword는 전역변수로 선언해주세요.
- addThis 함수에는 객체이름을 등록해주시면 됩니다.
* 설명이 너무 허접해서.. ㅠㅠ 질문이 있으시면 댓글이나 이멜로 ^^ insford@nate.com



Prev
Rss Feed