2014 학년도종합설계 운영계획서 ( 스마트폰기반의나만의검색엔진 ) 성명학번 e-mail 연락처 하희진 200412361 wheejinv@naver.com 010-2009-9073 김태훈 200811424 eamay00@gmail.com 010-9032-5537 담당교수 : 유준범교수님 ( 인 ) - 1 -
목 차 1. 프로젝트개요 2. 개발동기 3. 관련연구 4. 구현계획 5. 기대효과 6. 팀구성및역할분담 7. 프로젝트추진일정 - 2 -
1. 프로젝트개요 가. 개요 최근블로그를통한정보검색이활발해지고, 일반사용자들의블로그운영이일반화되었다. 이와관련하여일상정보부터전문정보까지블로그의활용도와의존도가높아짐에따라기업의광고대행을맡은상업성블로그의비율도함께높아지고있는추세이다. 일반미디어광고와는달리블로그를통한간접광고는일반사용자들이쉽게분별해낼수없어얻고자하는정확한정보를얻기어렵다. 또한사용자의성향에맞는블로거와이웃을맺을수는있지만이웃블로거들의각각의글들을한눈에비교분석하여최적의정보를찾는것또한불가능하여정보검색에불필요하게많은시간을할애할수밖에없는실정이다. 나. 목적 본프로젝트에서개발하는스마트폰어플리케이션기반의데이터검색시스템은사용자가임의로부여한기준을통해선정된블로그내에서필요한데이터만을얻어비교분석할수있는서비스를제공하는것을목적으로한다. - 3 -
다. 목표 - 스마트폰어플리케이션에탑재가능한데이터검색시스템을개발하여다음과같은서비스를제공한다. - 서버컴퓨터는사용자부터입력받은 ID를이용, 블로그를크롤링하여데이터를 DB에저장한다. - 사용자는자신이선택한블로거들의포스트목록중부여한기준에부합하는포스트목록만을추출한다. - 추출된각포스트마다공감, 코멘트수등의정보를통해신뢰도를판단할수있고, 해당정보를토대로순위구성이가능하다. - 4 -
2. 개발동기 평소블로그를통한정보검색시불편했던사항들과추가되었으면하는기능들을토대로사용자에게최적화된정보만을제공하는진일보한데이터검색시스템을직접구현해본다. C++ 을활용한크롤러구현, ODBC를활용한 DBMS 구현, 자바를활용한프로그램구현등전공수업을통해습득한다양한기술들을활용해목표한결과물을만들어내는한편, 두명의팀원모두경험이없는안드로이드기반의어플리케이션개발에도전해본다. 3. 관련연구 가. 웹크롤러 (Web Crawler) - 5 -
웹크롤러 (Web Crawler) 는방대한웹페이지를두루두루방문하여, 각종정보를자동적으로수집하는일을하는프로그램으로서검색엔진의근간이된다. 크롤러 (crawler) 란기어가는사람혹은포복동물이라는의미로, 조직적, 자동적인방법으로각종웹페이지들을돌아다니며웹문서의 URL, 링크정보, 문서내용등다량의정보들을수집해오는기능으로인해이런이름이붙게되었다. 웹크롤러에대한다른용어로는앤트 (Ants), 자동인덱서 (automatic indexers), 봇 (bots), 웜 (worms), 웹스파이더 (web spider), 웹로봇 (web robot) 등이있다. 웹크롤러가하는작업을웹크롤링 (web crawling) 혹은스파이더링 (spidering) 이라고부르기도하는데, 검색엔진과같은여러사이트에서는데이터의최신상태유지를위해항상웹크롤링을한다. 웹크롤러는대체로방문한사이트의모든페이지의복사본을생성하는데사용된다. 또한크롤러는링크체크나 HTML 코드검증과같은웹사이트의자동유지관리작업을위해사용되기도하며, 자동이메일수집과같은웹페이지의특정형태의정보를수집하는데도사용된다. 웹크롤러는봇이나소프트웨어에이전트의한형태로대개시드 (seed) 라고불리는 URL리스트에서부터시작하며페이지의모든하이퍼링크를인식, URL 리스트를갱신하여확인한다. - 6 -
나. ODBC (open database connectivity) 데이터베이스관리시스템 (DBMS) 에관계없이어떤응용프로그램에서나모두접근하여사용할수있도록하기위하여마이크로소프트에서개발한표준방법을말하는데, 응용프로그램과 DBMS 중간에데이터베이스처리프로그램을두어이를가능하게한다. 프로그램내에 ODBC 문장을사용하면 MS-Access, dbase, DB2, Excel, Text 등여러종류의데이터베이스를액세스할수있다. 프로그램들이데이터베이스의독점적인인터페이스에대해알지못하더라도, 데이터베이스접근이가능하게한다. SQL 요청을받아서, 그것을개개의데이터베이스시스템들이이해할수있도록변환하기때문이다. 다. JDBC 자바프로그램내에서데이터베이스질의문즉, SQL 을실행하기위한자바 API(application programming interface) 이다. Java database connectivity의약자로생각하기도하지만실제로는상표이름이다. JDBC는데이터베이스및애플리케이션개발자들을위한표준 API를제공하고순수자바 API만으로도데이터베이스응용업무를만들게해준다. JDBC를사용하면, 어떠한관계데이터베이스 (relational database) 에서도 SQL문을사용하기쉽다. - 7 -
즉, JDBC API를사용하면 DB2, Sybase, Oracle, Informix, msql 등의데이터베이스에접근하는프로그램을따로만들필요가없다. 단지하나의프로그램을작성하고그프로그램에서 SQL문을적당한데이터베이스에전송할수있다. 또한응용업무를자바로작성한다면보유한기종이나소프트웨어에따라다르게작성하지않아도되기때문에자바와 JDBC의결합은하나의프로그램이어디에서나동작할수있게해준다. 자바는사용하기에견고하고안전하고쉽고이해하기쉬우며데이터베이스응용업무를만드는데있어서최적의언어라할수있다. 단지필요한것은다양한데이터베이스에연결하는방법일것이다. JDBC는이러한것을위한도구이다. JDBC는자바의기능을확장한다. 예를들어자바와 JDBC API를사용하면, 원격데이터베이스에서얻은정보를사용하는애플릿을웹페이지에포함시킬수있다. 또는기업에서서로다른플랫폼을사용하는사원들이인트라넷을사용하여하나이상의내부데이터베이스에연결하는데에도 JDBC가사용될수있다. 기업은이미개발된데이터베이스를계속사용할수있으며정보가다른곳에저장되어있어도쉽게정보에접근할수있다. 또새로운응용업무를개발하는데소요되는시간도짧다. - 8 -
라. 클라이언트 / 서버구조 이용자 / 요구자체계. 구내정보통신망 (LAN) 등망상에서하나의프로세스를클라이언트와서버에나누는분산처리방식이다. 클라이언트쪽에서요구하면서버에서그것에대해프로세스하여응답한다. 프로세스를의뢰하는장치나컴퓨터또는프로그램을클라이언트라고하며, 의뢰받은프로세스를실행, 응답하는쪽을서버라고한다. 개방형시스템을위한이방식의망소프트웨어로는 X 윈도시스템, NCS 등이있다. 4. 구현계획 가. 전체시스템구조 - 9 -
나. 웹크롤러동작방식 1 seed page는사용자에게입력을받게되는데, 받게되는입력값은사용자사용자가선정한네이버블로거의 ID이다. 2 입력받은 ID 를토대로 seed page url 를설정하고, 소켓 API 를사용하여 html 문서를가져온다. 3 html 문서를분석하기쉽게토큰으로쪼갠다. 예를들어 <a href = http://naver.com"> 네이버 </a> 라는 html 구문이있다면이구문은태그의시작을알리는 <a href = http://naver.com"> 구문과텍스트인네이버구문과태그가닫히는 </a> 구문으로쪼개어볼수있을것이다. 4 이를토대로 html 문서에서포스트에관련된정보를추출할수있다. 관련된정보로는블로거아이디, 포스트제목, 포스트업데이트시간, 포스트 url 주소, 본문의내용, 사용된이미지의주소와개수, 코멘트수, 공감수등이있다. 5 이러한정보는 ODBC 를이용하여 DBMS 에접속한 후 DB 에저장한다. - 10 -
다. DB 블로거는여러개의포스트를쓸수있고, 각각의포스트는여러개의코멘트, 이미지, 태그, 공감 ( 을한사람 ) 정보를담고있다. 5. 기대효과 최근넘쳐나는광고성포스트들을제외하고결과값을보여준다면사용자의시간을절약할수있는이점이생길것으로기대한다. 하지만사용자가자신이선호하는블로거들을선정하는데있어서적은수의블로거들만선정하게된다면검색결과값이빈약하게될것이므로네이버블로그카테고리 ( 영화, 미술 디자인, 애완 반려동물, 맛집, IT 컴퓨터 ) 등에서선정한파워블로거들을 DB 에등록해두어, 충분한정보반경안에서유용한정보검색을가능하게한다. 사용자중심의검색기준을마련하여 ( 코멘트수, 공감수, 애정도등 ) 사용자가입력한검색어가포함된게시글중유용한글들을선별할수있다. - 11 -
6. 팀구성및역할분담 하희진 - 웹크롤러구조설계 - 웹크롤러구현 - ODBC 연계 김태훈 - 서비스어플리케이션 UI 설계 - 서비스어플리케이션개발 공통 - 제반기술분석및이해 - 자료수집및테스트 - 보고서작성 - 12 -
7. 프로젝트추진일정 9 월 10 월 11 월 1 2 3 4 1 2 3 4 1 2 3 4 제반기술분석및이해계획서작성웹크롤러구조설계웹크롤러구현 ODBC 연계서비스어플리케이션 UI 설계서비스어플리케이션개발자료수집및테스트최종테스트및보고서작성 - 13 -