네이버 OpenAPI 사용 (java) : http://onedays.co.kr/90088524098

네이버 오픈API와 JAVA를 이용하여 JAVA 어플리케이션에서도 사용할 수 있는 소스입니다. (지도를 빼고 컨텐츠API, 데이터API, 검색API, 기능API 사용이 가능합니다.) 찾아보다가 다음에서 사용하는 소스가 있더군요. 그렇지만 다음도 제대로 파싱을 하지 못하더군요. 그래서 수정좀 하고 네이버에 맞게 해봤습니다. 그래도 편한게 네이버인지라. ㅎ 정말 편리하게 사용이 가능합니다. 제가 정말 필요해서 열심히 찾아서, 수정해 보았습니다. 아마도 필요하신 분들도 있을 것 같아서요.

저는 클래스 파일 하나 더 만들어서 사용했습니다. 그걸 이용하면 더 다양하게 접근 할 수 있을 것 같습니다 (소스파일 첨부할껍니다. 소스에 대해서 설명하는 겁니다). 그리고 저는 책을 검색하는 자바 프로그램을 만들어 보았습니다.

메인으로 사용할 클래스는 NaverOpenAPI.java 라고 하고 사용하였습니다.

apiKey 는 말 그대로 키입니다. 발급받아서 사용하면 되겠죠?

bookName 은 검색할 책이름입니다. Swing이나 AWT에서 이부분을 바꾸면 쉽게 사용 가능하겠죠?

url 은 주소를 만들어 넣는 곳입니다. try 문에서 먼저 apiKey 를 넣어서 사용하구요, 그뒤에서 요청 변수를 넣으면 됩니다. 일단 네이버 오픈API 사이트에서 필수 항목인 key, target, query 는 꼭 넣어야 합니다. 위의 소스를 보시면 target에 book 이라고 되어 있죠? 이것을 바꾸면 여러분이 원하는 API를 사용할 수 있습니다.

그래도 다음과 같이 사용하면 편리하겠죠?

일단 소스는 두번째 수정된 것으로 올리겠습니다. ㅎㅎㅎ 일단 저렇게 해서 자신이 검색하고자 하는 것 번호를 targets[] 안에 입력하면 됩니다. 그리고 NaverParse 클래스를 가지고 와서 객체로 만드는 것을 볼 수 있습니다. 이것을 통해서 수정하면 정말 쉽게 만들수 있겠죠?

NaverParse.java 는 다음과 같습니다.

여기서 주의 깊게 보실것은 getContent 메소드 입니다. 보면 별건 없는 것 같지만 은근히(?) 중요합니다. 따지고 보면 값을 넘겨주는 역할을 하니깐요. 우리가 받아야 하는 것은 문자열이기 때문에 메소드가 돌려보내주는게 문자열인 스트링인 것을 확인하실 수 있습니다. 이건 수정하지 않고 사용하는게 좋겠지만 그래도 입맛에 따라 바꾸세요 ^^ parse 메소드는 실질적으로 주소가 넘어오면(쿼리가 포함된) 그것을 가지고 출력하는 곳입니다. 35번째 줄에서 item 이라고 테그 네임을 지정하는 것을 보실수 있죠? 이것은 아이템을 모두 가지고 온 겁니다. 아이템이 무엇인지는 다들 아실거라고 생각하고. 일단 가지고 올 필드는 41번째 줄과 같이 가지고 오면 됩니다. 필드 명은 네이버 개발자센터를 참조하세요.(네이버 개발자 센터: http://dev.naver.com/openapi/) 일단 책에 관련된 필드는 다음과 같습니다.

여기에서 item 밑에 나온 것을 입력하여 찾게 되는 겁니다. 그리고 출력하게 되는 거죠.

자 어떠세요? 간단하게 만들어본 네이버 오픈API + 자바 프로그래밍 이였습니다.

출력은 다음과 같이 콘솔에 출력이 됩니다. 처음 검색할때 아무것도 입력하지 않으면 10개만 출력하게 됩니다. 그러니 여러분이 원하시는 것을 입력하는게 좋겠죠? 요청변수를 잘 활용하시면 여러분이 원하는 것을 출력할 수 있습니다.

출력하고 나면 검색어에 대해서는 <b> 가 씌워지는데요, 자바에서는 <strong> 이라고 묶입니다. 간단하게 없애는 방법은 NaverParse.java 에서 20번째 줄에 있는 것을 다음과 같이 바꿔줍니다.

String str = cElement.getFirstChild().getNodeValue();
str = str.replaceAll("<strong>", "");
str = str.replaceAll("</strong>", "");

이렇게 되면 <strong> 과 </strong> 을 지울수 있습니다. 지금까지 네이버 오픈API와 자바(JAVA)를 이용한 간단한 팁이였습니다.

+ Recent posts