/**
         * 네이버 뉴스 검색 메소드
         *
         * @param kwd(키워드)
         * @param pageNum(시작 페이지)
         * @param pageSize(화면에 보여질 레코드 개수)
         * @param rsb(데이터를 담을 Value Object)
         *
         * @return status(상태값 양수면 이상 없음)
         */
        public int SearchNaverNews(String kwd, int pageNum, int pageSize, OpenApiResultVO rsb)
        {
            int status = 0;
            int start  = (pageNum * pageSize) - (pageSize - 1);

            String url = "http://openapi.naver.com/search?key=" + naverApiKey + "&query=" + kwd +
                         "&target=news&start=" + start + "&display=" + pageSize;

            // 네이버 결과값
            int total = 0;      // 문서 총 개수
            int row   = 0;      // 현재 보여주는 문서 개수

            String[]   title;   // 제목
            String[]   content; // 내용
            DateTime[] pubDate; // 작성일
            String[]   linkUrl; // 링크

            int i = 0;          // 배열 처리를 위한 변수

            doc.Load(url);

            XmlNode node = doc.SelectSingleNode("rss");
            XmlNode n    = node.SelectSingleNode("channel");

            total = Convert.ToInt32(n.SelectSingleNode("total").InnerText);
            row   = Convert.ToInt16(n.SelectSingleNode("display").InnerText);

            rsb.setRows(row);

            if (total > 500)
            {
                total = 500;
            }

            rsb.setTotal(total);

            if (row > 0)
            {
                title   = new String[row];
                content = new String[row];
                pubDate = new DateTime[row];
                linkUrl = new String[row];

                foreach (XmlNode el in n.SelectNodes("item"))
                {
                    title[i]   = el.SelectSingleNode("title").InnerText;
                    content[i] = el.SelectSingleNode("description").InnerText;
                    pubDate[i] = Convert.ToDateTime(el.SelectSingleNode("pubDate").InnerText);
                    linkUrl[i] = el.SelectSingleNode("link").InnerText;
                    i++;
                }

                rsb.setTitle(title);
                rsb.setContent(content);
                rsb.setPubDate(pubDate);
                rsb.setLinkUrl(linkUrl);
            }

            return(status);
        }
        /**
         * 네이버 이미지 검색 메소드
         *
         * @param kwd(키워드)
         * @param pageNum(시작 페이지)
         * @param pageSize(화면에 보여질 레코드 개수)
         * @param rsb(데이터를 담을 Value Object)
         *
         * @return status(상태값 양수면 이상 없음)
         */
        public int SearchNaverImage(String kwd, int pageNum, int pageSize, OpenApiResultVO rsb)
        {
            int status = 0;
            int start  = (pageNum * pageSize) - (pageSize - 1);

            String url = "http://openapi.naver.com/search?key=" + naverApiKey + "&query=" + kwd +
                         "&target=image&start=" + start + "&display=" + pageSize;

            // 네이버 결과값
            int total = 0;       // 문서 총 개수
            int row   = 0;       // 현재 보여주는 문서 개수

            String[] title;      // 제목
            String[] linkUrl;    // 링크
            String[] thumbNail;  // 썸네일
            String[] sizeHeight; // 높이
            String[] sizeWidth;  // 넓이

            int i = 0;           // 배열 처리를 위한 변수

            doc.Load(url);

            XmlNode node = doc.SelectSingleNode("rss");
            XmlNode n    = node.SelectSingleNode("channel");

            total = Convert.ToInt32(n.SelectSingleNode("total").InnerText);
            row   = Convert.ToInt16(n.SelectSingleNode("display").InnerText);

            rsb.setRows(row);

            if (total > 500)
            {
                total = 500;
            }

            rsb.setTotal(total);

            if (row > 0)
            {
                title      = new String[row];
                linkUrl    = new String[row];
                thumbNail  = new String[row];
                sizeHeight = new String[row];
                sizeWidth  = new String[row];

                foreach (XmlNode el in n.SelectNodes("item"))
                {
                    title[i]      = el.SelectSingleNode("title").InnerText;
                    linkUrl[i]    = el.SelectSingleNode("link").InnerText;
                    thumbNail[i]  = el.SelectSingleNode("thumbnail").InnerText;
                    sizeHeight[i] = el.SelectSingleNode("sizeheight").InnerText;
                    sizeWidth[i]  = el.SelectSingleNode("sizewidth").InnerText;
                    i++;
                }

                rsb.setTitle(title);
                rsb.setLinkUrl(linkUrl);
                rsb.setThumbNail(thumbNail);
                rsb.setSizeHeight(sizeHeight);
                rsb.setSizeWidth(sizeWidth);
            }

            return(status);
        }
        /**
         * 네이버 블로그 검색 메소드
         *
         * @param kwd(키워드)
         * @param pageNum(시작 페이지)
         * @param pageSize(화면에 보여질 레코드 개수)
         * @param rsb(데이터를 담을 Value Object)
         *
         * @return status(상태값 양수면 이상 없음)
         */
        public int SearchNaverBlog(String kwd, int pageNum, int pageSize, String sortStr, OpenApiResultVO rsb)
        {
            int    status = 0;
            int    start  = (pageNum * pageSize) - (pageSize - 1);
            String sort   = "sim";

            if (sortStr.Equals("d"))
            {
                sort = "date";
            }

            String url = "http://openapi.naver.com/search?key=" + naverApiKey + "&query=" + kwd +
                         "&target=blog&start=" + start + "&display=" + pageSize + "&sort=" + sort;

            // 네이버 결과값
            int total = 0;    // 문서 총 개수
            int row   = 0;    // 현재 보여주는 문서 개수

            String[] title;   // 제목
            String[] content; // 내용
            String[] writer;  // 작성자
            String[] linkUrl; // 링크

            int i = 0;        // 배열 처리를 위한 변수

            doc.Load(url);

            XmlNode node = doc.SelectSingleNode("rss");
            XmlNode n    = node.SelectSingleNode("channel");

            total = Convert.ToInt32(n.SelectSingleNode("total").InnerText);
            row   = Convert.ToInt16(n.SelectSingleNode("display").InnerText);

            rsb.setRows(row);

            if (total > 500)
            {
                total = 500;
            }

            rsb.setTotal(total);

            if (row > 0)
            {
                title   = new String[row];
                content = new String[row];
                linkUrl = new String[row];
                writer  = new String[row];

                foreach (XmlNode el in n.SelectNodes("item"))
                {
                    title[i]   = el.SelectSingleNode("title").InnerText;
                    content[i] = el.SelectSingleNode("description").InnerText;
                    linkUrl[i] = el.SelectSingleNode("link").InnerText;
                    writer[i]  = el.SelectSingleNode("bloggername").InnerText;
                    i++;
                }

                rsb.setTitle(title);
                rsb.setContent(content);
                rsb.setLinkUrl(linkUrl);
                rsb.setWriter(writer);
            }

            return(status);
        }