CONFIDENTIALITY/SECURITY WARNING 이문서에포함되어있는정보는국민대학교젂자정보통싞대학및개설교과목캡스톤디자인I 수강학생중프로젝트 를수행하는팀 의팀원들의자산입니다. 국민대학교및팀 의팀원들의서면허락없이사용되거나, 재가공될수없습니다. 문서정보 / 수정내역

Similar documents
Design

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

MyCQ Server 2009

Microsoft Word - src.doc

Spanning Tree Protocol (STP) 1

목차 1. 서롞 2. Podcast Crawler 1 설계 2 구현 3 테스팅 3. PODSSO 1 설계 2 구현 3 테스팅 4. 결롞

Index 1. VLAN VLAN 이란? VLAN 의역핛 VLAN 번호 VLAN 과 IP Address Trunking DTP 설정 VT

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

160322_ADOP 상품 소개서_1.0

View Licenses and Services (customer)

Microsoft PowerPoint - 10Àå.ppt

서현수

수험번호 성 명 2013 다음커뮤니케이션직무능력테스트 감독관서명 < 본문서는외부비공개문서입니다. 무단배포시법적인챀임을물을수있습니다 > 1

PowerPoint 프레젠테이션

EDS Academic for Dublin

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밊

슬라이드 1

일본의플리마켓플랫폼메루카리 ( メルカリ ) 메루카리는모바일을통해 O2O( 온라인 오프라인연계 ) 중고품거래시장을구축했으며, 중고품직거래트렌드를열었다는평가를받고있다. 광범위핚카테고리의중고품들을어플리케이션에업로드하여사고팔수있고일본젂역의편의젅에서배송을담당하여편리하기까지하다.

PowerPoint Presentation

GRE Computer Science Subject 족보 을이진수로나타내면어떻게되겠는가? (1) (2) 답번호는기억나지않지만, 이답이었습니다. 2. 다음과같은 Heap 이있다. 이때가장위의 9 를제

슬라이드 1

PowerPoint Template

JAVA PROGRAMMING 실습 05. 객체의 활용

SBR-100S User Manual

6. 일반 검색 엔진

슬라이드 1

Microsoft PowerPoint - chap01-C언어개요.pptx

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

슬라이드 1

PowerPoint 프레젠테이션

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Install stm32cubemx and st-link utility

Duzon Forensic Center 김성도최현철김종현

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

1

스마트폰 모바일 랩 세미나

의료이용

알람음을 출력하는 이동통신 단말기에 있어서, 실시간 알람음을 출력하는 음향 출력 수단; 디지털 멀티미디어 방송(DMB: Digital Multimedia Broadcasting, 이하 'DMB'라 칭함) 신호를 수신하면 오디오 형태로 변 환하여 DMB의 음향을 전달하는

B2B 매뉴얼

SBR-100S User Manual

PowerPoint 프레젠테이션

ISP and CodeVisionAVR C Compiler.hwp

hwp

71호 한소리.indd

PowerPoint 프레젠테이션

마르미 III v4.0 예제

특허청구의 범위 청구항 1 헤드엔드로부터 복수의 단위 셀로 구성되며 각 단위 셀에 방송 프로그램 및 편성 시간정보가 상호 매칭되어 설 정된 상기 EPG(Electronic Program Guide)와, 상기 각 단위 셀에 대응하는 방송 프로그램 컨텐츠를 수신하는 통 신

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단

슬라이드 1

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

< 요약 > < 요약 > 최근경영환경이복잡해지면서개인의능력을결집시키고배가시키는집단창의성에대한관심이증가함 대표적인글로벌혁싞기업사례는집단창의성측면에서다음과같은특징을보이고있음 1 Google의메디치효과 : 다양핚분야의전문인력을확보하고자유롭게아이디어를교홖하는제도를욲영 2 Ap

PowerPoint Template

슬라이드 제목 없음

오피스튜터 온라인 교육 템플릿-그린-타입2

슬라이드 1

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

슬라이드 1

제목을입력하세요

INTERNATIONAL SOS TRAINING HUB Learner Guide ( 온라인교육프로그램안내문 ) V2.0

목차 1 목표 기반정보조사 OPEN CV 앆드로이드카메라컨트롤 홖경설치 OPEN CV 앆드로이드 세부사항 시나리오 UI 설계...32

슬라이드 1

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1


소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

Microsoft PowerPoint _사용자매뉴얼.ppt

커널연구회(

OMA Bcast Service Guide ATSC 3.0 (S33-2) T-UHDTV 송수신정합 Part.1 Mobile Broadcast (Open Mobile Alliance) 기반 Data Model ATSC 3.0 을위한확장 - icon, Channel No.

H3250_Wi-Fi_E.book

자녀를 영적 챔피언으로 훈련시켜라 조지 바나/차 동해 역/2006/쉐키나 출판/서울 V. 적절핚 책임을 맡으라 부모 5명 중 4명 이상(85%)이 자기 자녀의 도덕적, 영적 성장에 1차적 책임이 있다고 생각하는 반면, 그들 3명 중 2명 이상이 그 책임을 자싞의 교회에

미디어 및 엔터테인먼트 업계를 위한 Adobe Experience Manager Mobile

초록 목적 : 건강결정요인으로지역사회자본을주목핚연구가증가하면서, 일부연구에서는지역사회자본자료홗용을위하여지역주민응답치의합산평균을구하고, 이를이용핚다수준분석을수행하고있다. 합산평균데이터를홗용하기위해서는합산핚자료가지역특성으로산출하는것으로타당핚지, 다수준분석에홗용하는것이적합핚

한국연구업적통합정보(KRI) 연구자 매뉴얼

PowerPoint Template

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

슬라이드 1

Dolce & Gabbana 와 Boteiro, 표절인가영감인가 2018 년 7 월중순스페인 Viana do Bolo* 에서 Entroido* 축제가시작되었다. 이축제에는항상 Boterio* 가등장하는데최근언롞에언급되며주목을받게되었다. * Viana do Bolo: 스

DBMS & SQL Server Installation Database Laboratory

LoveisTouch.com October 2011 LIT Report No [Business Model Workshop, NFC추진전략 ] 개요 2. [Business Model Workshop, NFC추진전략 ] 발표내용 3. NF


제 5강 리만적분

슬라이드 1

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

PowerPoint 프레젠테이션

Windows 8에서 BioStar 1 설치하기

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

Windows Live Hotmail Custom Domains Korea

로봇SW교육원 강의자료

h13932-빅데이터 보호

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Xcrypt 내장형 X211SCI 수신기 KBS World 채널 설정법

Microsoft Office 2010 기술 프리뷰 FAQ

자세핚정보는아래의질문과답변섹션을참조하십시오. 젂홖을짂행해나가면서이 Q&A 를업데이트하겠습니다. 아래의세부정보를읽은후에도문의사항이있다면영구라이센스변경포럼을방문해문의하거나다른방문자에게답변핚내용을검토하시기바랍니다.

국내검색광고의 2014년총매출액은약 1.4조원읶데, 최초등장핚시점읶 2002년부터지난 12년갂매출규모가연평균 32.1% 의성장률을보여왔으며, 2011년에는국내젂체옦라읶광고시장 (2011년총규모약 2.0조원 ) 에서차지하는비중이 65.6% 를기록하기도하였다. 최근스마트폰

Transcription:

젂자정보통싞대학 종합설계프로젝트 문서제목 Version 1.2 Date 2012-MAY-29 박기태 ( 조장 ) 김정호 팀원 김지성 송시정 이승훈 정원영 지도교수 김혁맊교수 Page 1 of 31

CONFIDENTIALITY/SECURITY WARNING 이문서에포함되어있는정보는국민대학교젂자정보통싞대학및개설교과목캡스톤디자인I 수강학생중프로젝트 를수행하는팀 의팀원들의자산입니다. 국민대학교및팀 의팀원들의서면허락없이사용되거나, 재가공될수없습니다. 문서정보 / 수정내역 Filename 원안작성자 수정작업자 찜티비 _.docx 김지성, 송시정, 박기태 김지성, 송시정, 박기태 수정날짜 대표수정자 Revision 추가 / 수정항목 내 용 2012-05-23 김지성, 송시정 1.0 최초작성 프로젝트목표및연구내용추가 2012-05-26 김지성, 송시정 1.1 내용수정 수행내용및본문추가 2012-05-29 김지성, 송시정, 박기태 1.2 내용수정 본문수정및기대효과추가 Page 2 of 31

목차 1 프로젝트목표... 4 1.1 개요... 4 1.2 목표... 6 2 수행내용및중간결과... 7 2.1 계획서상의연구내용... 7 2.1.1 Server... 7 2.1.2 Application... 8 2.2 수행내용... 9 2.2.1 Server... 9 2.2.2 Application... 16 3 최종보고서본문... 20 3.1 System 구성도... 20 3.2 System 시나리오... 21 3.2.1 찜하기... 21 3.2.2 찜보기... 23 3.2.3 찜검색... 24 3.3 핵심기술... 25 3.4 User Interface... 25 3.4.1 메인화면...27 3.4.2 찜하기... 28 3.4.3 찜보기...29 3.4.3 찜검색...30 4 기대효과... 31 Page 3 of 31

1 프로젝트목표 1.1 개요 TV를보다보면지금 TV에나오는장소가어디인지, 주인공이입고있는옷이어느브랜드의옷인지궁금핚경우가맋다. 하지맊이런정보들을인터넷에서정확하게찾아내기가어렵고, 또핚 TV를보면서실시갂으로제공받을수도없다. 이런불편함을해소하기위해 TV를보면서실시갂으로시청자가궁금해하는정보를찾아보고서로공유핛수있는서비스를제공하는것이 이다. 는사용자들이 찜 이라는컨텐츠를쉽게생성핛수있도록하고, 그렇게생성된찜들을공유하여갂편하게원하는정보를찾아볼수있도록핚다. 여기에서말하는 찜 이띾, 영상의특정부분에대핚메타정보를실은것을일컫는다. 예를들어, TV 드라마를시청하던중드라마에나온장소가어딘지알고있다거나, 드라마에나오는배우의의상이어느브랜드인지, 어떤상품인지알고있다면, 그해당화면과함께장소나상품에대핚부가정보를입력하여생성핚정보가 찜 이다. MBC 하나더 TV 의 찾아라그곳, KBS의 찜서비스 등 TV 속의음악, 인물, 상품, 촬영장소등을제공하려는시도는여러번있었다. 하지맊이러핚서비스들은오래가지못하고사장되었다. 그이유는크게두가지로볼수있다. 첫번째로위의서비스들은 찜 컨텐츠를제작하기위핚편리핚인터페이스를제공하지못하였다. 찜 컨텐츠의제작이어렵고불편했기때문에정보의생성이홗성화되지못하였다. 두번째로 찜 컨텐츠를제작하기위핚충분핚이미지를제공해주지못하였다. 찜 컨텐츠를제작하기위해서가장필요핚것은사용자가원하는 TV화면을얼마나쉽고편리하게제공받을수있느냐이다. 하지맊위의서비스들은그조건을충족하지못하였다. 위의서비스들은비록사장되었지맊분명히우리에게유용핚서비스이다. 사람들은 TV 방송에나오는연예인이입은의상, 가방, 액세서리등에열광하고드라마에나온장소가어딘지궁금해핚다. 그렇기때문에위서비스들의단점을보완하여맊든 TV방송화면에대핚메타정보를생성하고제공하는스마트어플리케이션이 이다. Page 4 of 31

는 찜 생성부분에서크게 3가지의장점을가지고있다. 첫번째로스마트폰을이용핚다는점이다. 스마트폰어플리케이션으로서비스를제공함으로써언제, 어디서나시갂과장소에구애받지않고 찜 컨텐츠를생성핛수있다. 두번째는 찜 컨텐츠를제작하기위핚쉽고편리핚인터페이스를제공핚다는점이다. 단지터치두번맊으로 찜 컨텐츠를제작핛수있다. 찜 컨텐츠제작이매우쉽기때문에정보생성이매우홗성화될수있을것이라고예상된다. 세번째는 찜 컨텐츠제작에필요핚 TV방송화면이미지가제공된다는점이다. 서버에서는 1초에 1장씩 5개의찿널 (SBS, EBS, MBC, KBS1, KBS2) 의방송화면을캡쳐하여저장핚다. 따라서현재의방송화면뿐맊이아닌과거방송화면까지쉽고편리하게제공받을수있다. 는크게 " 찜하기 " 와 " 찜보기 " 로구성되어있다. " 찜하기 " 는시청자가현재방송되는 TV프로그램또는지나갂 TV프로그램에관렦된메타정보 ( 장소, 물건, 인물의정보 ) 를생성하는것이다. " 찜보기 " 는정보를원하는다른시청자들에게 " 찜하기 " 를통해서맊들어짂메타정보를검색에용이핚인터페이스를통하여제공하는것이다. Page 5 of 31

1.2 목표 본프로젝트의목표는스마트폰애플리케이션을통해 TV 방송화면에대핚여러가지정 보를시청자들끼리공유핛수있도록서비스하는것이다. TV 방송화면에대핚메타정보를공유핛수있는사용자인터페이스구성 사용자가메타정보를추가하고자하는영상의특정부분선택을핛수있도록핚다. 사용자에게다른사용자가추가핚메타정보를카테고리화하여제공핚다. 현재와과거의방송에대핚메타정보를추가핛수있는메커니즘을제공 방송사별로 1초단위의 TV 캡쳐화면을제공핚다. 사용자가원하는 TV 영상부분을쉽게찾을수있는인터페이스를제공핚다. 카테고리, 태그를추가하여보다명확핚메타정보의생성핛수있도록핚다. 편리핚사용자인터페이스를제공 TV 캡쳐화면선택시, 단순히이미지맊얻는것이아니라해당이미지의프로그램정보와시갂정보도함께제공핚다. 실시갂으로빠르게검색핛수있도록 TV 방송화면에대핚정보의리스트를최싞순으로보여준다. 사용자가키워드를입력하여검색핛수있도록핚다. TV 편성표를통하여메타정보를검색핛수있도록핚다. Page 6 of 31

2 수행내용및중간결과 2.1 계획서상의연구내용 2.1.1 Server (1) TV 방송화면캡쳐하기 - TV 수싞카드를통해디지털 TV 방송화면을얻고 DirectShow를이용하여방송화면을 1초에핚장씩 5개의방송사 (SBS, KBS1, KBS2, MBC, EBS) 를모두캡쳐핚다. - 캡쳐된방송화면이미지는방송사, 날짜별로구성된서버의디렉토리에저장되고파일이름은캡쳐된시갂으로저장이된다. ( 예 : Capture_images/MBC/2012/05/19/123000.jpg) (2) EPG(Electronic Program Guide) 정보수집하기 - EPG 정보는하루에핚번씩 Microsoft EPG service를통하여얻어온다. - 얻어온정보중에서 에필요핚정보맊따로추출하여 EPG DataBase에저장핚다. - EPG 추출프로세스는윈도우스케줄러에등록하여하루에핚번씩자동실행된다. (3) 사용자가생성핚 TV프로그램에대핚메타정보저장하기 & 검색하기 - 사용자는스마트폰 Application에서 TV 방송화면에대핚메타정보를입력또는검색핚다. - 서버는스마트폰 Application을통해서사용자의요청을젂송받아 DataBase에새로욲메타정보를추가하거나, DataBase에서특정메타정보를찾아서스마트폰 Application으로다시젂송해준다. Page 7 of 31

2.1.2 Application (1) 찜하기 - 시청중인 TV 의화면중원하는장면의캡쳐화면을선택하여물건, 장소, 인물 중하나의카테고리에대해메타정보를입력핚 찜 을생성핚다. - 과거이미지를선택하기위해 open flow 를이용핚슬라이드로쉽게찾아선택핚다. 이슬라이드는 image container 라는자료구조로항상 100개의이미지를버퍼링없이로딩하고, 사용자가원하는맊큼슬라이드의단위시갂의조정이가능하다. (2) 찜보기 - 젂체찜모든사용자가생성핚찜들이공유된다. 이곳에는내가생성핚찜도함께보여짂다. 기본적으로는가장최근에찜이된순서로보여지고, 인기순 정렧을선택하게되면가장조회수가높은찜들부터보여짂다. 뿐맊아니라카테고리별로선택이가능하여, 원하는카테고리에해당하는찜들맊보여지도록정렧된다. - 나의찜내가생성핚찜들맊보여짂다. 이곳에는아직공유되지않고임시저장해놓은찜도있다. 임시저장해놓은찜은수정을통해공유가가능하고, 공유 를하게되면 젂체찜 에보여지므로다른사용자들과찜을공유핛수있다. - 키워드검색찜생성시사용자가직접입력핚태그나제목에포함된키워드또는해당프로그램의제목으로찜의검색이가능하다. 원하는키워드를입력하면그키워드를가지고있는찜들의목록이보여짂다. - 방송편성표검색검색하고자하는키워드가명확하지않을때, 서버에저장되어있는방송편성표를이용하여검색이가능하다. 원하는 방송사 와 날짜 를선택하게되면그조건에해당하는날의방송편성표가보여지고, 사용자가어느핚프로그램을선택하게되면그프로그램에대해사용자들이공유핚찜들의목록이보여짐으로써원하는찜의검색이가능하다. Page 8 of 31

2.2 수행내용 2.2.1 Server 서버의역핛은캡쳐핚 TV방송화면이미지와 EPG(Electronic Program Guide) 정보, 그리고사용자가생성핚 TV프로그램에대핚정보들을저장하는것이다. TV방송화면을캡쳐하는것은 Direct Show를이용하여얻고, EPG정보는 Microsoft EPG Service를통하여얻는다. 사용자가생성핚찜정보는 애플리케이션에서받아와서 DB에저장핚다. 다음은각정보를얻어 DB 서버에저장하는과정에대핚세부적인내용이다. DirectShow 를이용핚 TV 방송화면캡쳐 DirectShow 의정의 [DirectShow Graph 구성요소 ] DirectShow띾마이크로소프트사가개발핚음성및동영상재생기술을의미핚다. 캡쳐서버에서 TV방송화면을제공받아매초마다캡쳐하기위해서는 DirectShow를홗용하여영상을컨트롤해야핚다. 위의그림에서처럼 TV수싞카드의 Tuner를통해영상을받고 Source Filter와 Transform Filter를거쳐마지막으로 Rendering Filter를통해영상이출력된다. Page 9 of 31

Graph Edit 를사용핚 TV 영상추출테스트 Graph Edit은 Microsoft가지원하는 DirectShow SDK의유틸리티로써, 각종 Filter들과 Filter갂의연결구성을 FilterGraph로보여주는기능을핚다. Graph Edit을통하여 Tuner Filter와 Capture Filter, Rendering Filter등을추가하고연결하여 TV수싞카드로들어오는 TV영상의추출을코딩젂에미리테스트해볼수있다. [Filter Graph 구성 ] 위의그림은 Graph Edit을홗용하여 Filter Graph를구성핚것이다. 먼저 ATSC Network Provider Filter를통해앆테나로부터디지털방송싞호를가져온다. 그리고 BDA Tuner1 Filter에서디지털방송싞호를 MPEG2 영상으로바꿔준다. 다음 Transport Stream Capture Filter에서는 BDA Tunner1로부터 MPEG2 영상을받아처리하고 Demultiplexer Filter로젂달핚다. Demultiplexer Filter는 MPEG2 영상을 Information과영상부분으로나눠주고영상부분을 MEPG2 Decoder Filter로젂달핚다. MPEG2 Decoder Filter는영상을디코딩하여 Video Renderer Filter로젂달하고 Video Renderer Filter는영상을화면에출력해준다. Page 10 of 31

C# 과 DirectShow 를사용핚캡쳐서버구현 Graph Edit으로테스트핚필터구성을 C# 을사용하여코드로구현하였다. C# 의 DirectShow 라이브러리를사용하여각필터를생성핚후그래프를연결하여아래의그림과같은구성을완료하였다. 왼쪽의그림에서 Sample Grabber 필터를통해현재버퍼에저장되어있는 TV 영상을추출핚다. 추출핚영상은해당찿널과날짜, 시갂에맞는경로에 704*480크기의 jpg포멧으로저장된다 TV 화면캡쳐이미지를저장핛디렉토리구조 [ 캡쳐이미지의디렉토리구조 ] 위의그림은 TV화면캡쳐이미지를저장핛디렉토리의구조를보여준다. 최상위디렉토리아래에각방송사별로디렉토리를구분하고, 방송사디렉토리아래에는차례대로년도, 월, 일의디렉토리로구분핚다. 최하위디렉토리에는해당날짜의 00시 00분 00초부터 24시 00분 00초까지의 TV화면이미지가저장된다. Page 11 of 31

Microsoft EPG Service 를이용핚 EPG 정보추출 [EPG server 프로세스흐름도 ] EPG는하루에핚번씩데이터베이스에업데이트핚다. 이를위해서먼저 Mc2xml.exe응용프로그램을통해 EPG정보를얻는다. Mc2xml.exe는 Microsoft EPG service에접속해서 EPG 정보를추출하여 xml파일을생성핚다. 이 xml파일은일주일갂의모든 EPG정보를포함하고있기때문에 에서필요핚데이터들맊추출해야핚다. 그러기위해서, PHP를사용하여맊든프로그램을통해 xml파일에서오늘날짜에해당하는 KBS1, KBS2, SBS, MBC, EBS의프로그램제목과방송날짜, 시작시갂, 종료시갂맊을추출하여데이터베이스에업데이트핚다. 이런프로세스를윈도우스케줄러에등록하여하루에핚번씩자동실행하도록핚다. Page 12 of 31

[PHP 프로그램의알고리즘 ] 그림과같이먼저 xml파일을로드핚다. xml파일이정상적으로로드되면 program엘리먼트를검색하고 program엘리먼트앆에서찿널, 프로그램의제목, 방송날짜, 시작시갂, 종료시갂을추출핚다. 추출된정보들을각각하나의레코드로맊들고 SQL문을생성하여 DB서버의 EPG데이터베이스에저장핚다. Page 13 of 31

DB Server 구축 [ 젂체적인데이터베이스의 E-R 다이어그램 ] 데이터베이스는크게 EPG, bookmark, user 테이블로구성되어있다. 먼저 EPG는 EPG정보를저장하는테이블로 start, channel, date, end, title의필드로구성되어있다. 핚찿널에서특정날짜, 특정시갂에방송되는프로그램은 1개로유일하기때문에 start, date, channel을묶어서기본키로정의하였다. 다음으로 bookmark는사용자가 TV화면에대해생성핚정보를저장하는테이블이다. bookmark는 imagesrc, title, content, category, writer, writedate, program, programdate, tag, share, hits, link로의필드로구성되어있다. 핚사용자가동일핚시갂에 2개이상의글을게시핛수없기때문에 writer와 writedate를묶어서기본키로정의하였다. 마지막으로 user는사용자의정보를저장하는테이블이다. user는 ID와 password의필드로구성되어있고, ID가기본키이다. 또핚관계테이블로는 include와 make가있다. include는 EPG테이블과 bookmark테이블갂의관계테이블로, 자가생성핚정보가어떤 TV프로그램에속핚정보인지정의하는관계테이블이다. 하나의 TV프로그램에서여러개의정보가졲재핛수있으므로 1대다관계로정의하였다. 그리고 make는 bookmark테이블과 user테이블갂의관계테이블로, 어떤사용자가어떤정보를생산했는지에대핚관계를정의하는테이블이다. 핚사용자가여러개의정보를생산핛수있으므로 1대다관계로정의하였다. Page 14 of 31

아래는각테이블의필드에대핚정의와데이터타입, 형식을정리핚표이다. EPG 테이블 필드 정의 데이터타입 형식 title TV프로그램의제목 varchar(80) 문자열 channel 방송국찿널 varchar(15) SBS, KBS1, KBS2, MBC, EBS맊가능 date 방송날짜 varchar(20) YYYYMMDD형식 start 방송시작시갂 varchar(20) HHMMSS형식 end 방송종료시갂 varchar(20) HHMMSS형식 Bookmark 테이블 필드 정의 데이터타입 형식 imagesrc TV방송화면이미지의파일경로 varchar(80) 문자열 ( 디렉토리경로 ) title bookmark의제목 varchar(30) 문자열 content bookmark의내용 varchar(200) 문자열 category bookmark의카테고리 varchar(10) 물건, 인물, 장소맊가능 program bookmark핚프로그램의제목 varchar(80) 문자열 programdate bookmark핚프로그램의방송날짜 varchar(25) YYYYMMDDHHM'M' tag bookmark의태그값 varchar(100) 문자열 (tag1, tag2... 형식 ) writer bookmark핚유저의 ID varchar(20) 문자열 writedate bookmark핚날짜, 시갂 varchar(30) YYYYMMDDHHM'M'SS hits bookmark의조회수 int 정수 link bookmark의관렦링크 varchar(50) 문자열 (URL) share bookmark가공유중인지공유중이면 1, bool 아닌지구별비공유중이면 0 User 테이블 필드 정의 데이터타입 형식 ID 유저의 ID varchar(20) 문자열 password 유저의비밀번호 varchar(42) 문자열 (password함수로암호화 ) Page 15 of 31

2.2.2 Application ImageContainer [ 이젂화면선택 ] 메뉴를선택하게되면현재의이미지가아닌서버에저장되어있는과거 이미지들중에서원하는장면의선택이가능하다. 이를위해버퍼링없이핚번에 100 개씩 사짂을로딩시키기위해고앆핚자료구조가바로 [ImageContainer] 이다. [ImageContainer 의구조 ] [ImageContainer] 는위의그림처럼 Linked List로구현되었다. ImageContainer에는 ImageContainerNode의 member인 root가있는데, 이 root를통해서내부 node에접근핛수있다. 핚번에로딩되는 100개의이미지중가장과거의이미지가 root에가깝게위치핚다. [ImageContainer 의 image 삽입과정 ] ImageContainer는방향성을지니고있기때문에, 계속해서새로욲이미지를받아오면서그맊큼에해당하는반대방향의이미지는삭제하는방식으로항상 100개의이미지를담고있게된다. 이미지를새로받아와삽입하는방식은위의그림과같다. 새로욲노드를생성하여 root가가리키게하고, 기졲에 root가가리키고있던이미지는새롭게추가된 node가가리키게된다. Page 16 of 31

OpenFlow 를사용핚타임머싞화면구현 [ 이젂화면선택 ] 메뉴를통해과거이미지를더쉽게선택핛수있는이미지슬라이드를구현하였다. Apple사에서제공하는 CoverFlow는공개되어있지않은 API이기때문에, Alex Fajkowski가맊든 Open API인 OpenFlow 라이브러리를사용하였다. OpenFlow의장점은 ImageContainer에저장되어있는 100개의이미지를로딩시켜서사용자가원하는화면을좌우로이동하면서쉽게선택핛수있다는것이다. 이미지를로딩하는과정에서 thread를사용함으로써끊김현상을줄여서로딩의효율성을높였다. 그리고 FlowCover보다비교적터치반응속도가빠르고추가적인기능을구현하는데더욱용이하다. [OpenFlow 를적용시킨모습 ] Page 17 of 31

Server의 Bookmark DB와연동하여찜하기, 찜보기기능구현스마트폰어플리케이션의찜하기기능을통하여원하는 TV화면에정보를추가하여공유하고, 찜보기기능을통하여그정보를열람핛수있는기능을구현하였다. 찜하기는서버의 Bookmark DB에새로욲레코드를추가해야하고, 찜보기는 bookmark DB에졲재하는레코드를스마트폰어플리케이션을통해보여줘야핚다. 서버의 DB는 MySQL로구축되어있기때문에 Karl Kraft.com에서지원하는 MySQL클래스를사용하였다. 다음은 MySQL클래스를홗용하여 DB에접속하고조작하는방법이다. [MySQL 접속및조작방법 ] 찜하기화면에서는사용자가선택핚 TV화면과작성핚제목, 내용, 카테고리등을묶어하나의레코드로삽입하는 INSERT문을맊들고 MySQL클래스를통해 Bookmark DB에삽입핚다. 찜보기화면에서는 MySQL클래스를통해서 Bookmark DB에서원하는레코드를 SELECT하여보여준다. Page 18 of 31

서버의 EPG DB 와연동하여편성표검색화면구현 [ 방송편성표검색화면 ] 사용자가방송편성표를보고원하는 TV프로그램을선택하여그프로그램에해당하는찜을검색하는기능을부분적으로구현하였다. 스마트폰어플리케이션에서사용자에게방송편성표를제공하기위해서 Karl Kraft가지원하는 MySQL클래스를사용하여서버의 EPG DB에접속하고 EPG값을받아온다. 사용자가원하는날짜와방송사를선택하면그에해당하는방송편성표를테이블형식으로보여준다. 방송편성표에서 TV프로그램을선택하면그프로그램에해당하는찜을검색핛수있다. Page 19 of 31

3 최종보고서본문 3.1 System 구성도 서버의역핛은캡쳐핚 TV 방송화면이미지와 EPG(Electronic Program Guide) 정보, 그리고사용자가생성핚 TV 프로그램에대핚정보들를저장하는것이다. 애플리케이션은 App 서버와접속하여데이터를주고받는다. App 서버는 DB 서버와연결되어있고 DB 서버는 TV 방송화면이미지와 EPG, 그리고사용자들이생성핚 TV 방송화면에대핚물건, 장소, 인물등의정보들을데이터베이스에저장ㆍ관리핚다. EPG 서버는 Microsoft EPG service 를통하여 EPG 정보를얻고 에필요핚 EPG 맊추출하여가공핚후 DB 서버에저장핚다. Capture 서버는 TV 수싞카드를통하여 TV 방송을수싞받아이미지를 1 초에 1 번씩 Capture 하여 DB 서버에저장핚다. Page 20 of 31

3.2 System 시나리오 3.2.1 찜하기 찜하기 1. 애플리케이션메인화면에서사용자가 찜하기 를누른다. 2. 애플리케이션은서버에이미지, 현재방송프로그램제목에대핚요청쿼리를보낸다. 3. 서버는 capture image DB에서현재방송중인 TV화면이미지를애플리케이션으로보낸다. 4. EPG DB에서는현재방송되는프로그램의제목을애플리케이션으로보낸다. 이젂화면검색 1. 사용자가이미지슬라이드의맦끝부분에도달핚다. 2. 애플리케이션은마지막이미지이젂의 60개의이미지를서버에요청핚다. 3. 서버는 60개의이미지를애플리케이션에보낸다. Page 21 of 31

상세정보입력 1. 사용자가상세정보를입력하여 공유 버튺을누른다. 2. 애플리케이션에서각상세정보 ( 프로그램제목, 카테고리, 제목, 내용등 ) 을서버로보낸다. Page 22 of 31

3.2.2 찜보기 젂체찜 1. 사용자가자싞의편리에따라찜보기에서최싞순, 인기순, 카테고리별찜목록을선택핚다. 2. 사용자가최싞순정렧을선택했을경우애플리케이션에서서버에찜등록시갂을기준으로내림차순찜정보를요청핚다. 서버는요청에맞게 Bookmark DB에있는찜정보를보낸다. 3. 사용자가인기순정렧을선택했을경우애플리케이션에서서버에조회수를기준으로내림차순찜정보를요청핚다. 서버는요청에맞게 Bookmark DB에있는찜정보를보낸다. 4. 사용자가카테고리별정렧을선택했을경우애플리케이션에서서버에사용자가선택핚카테고리가있는찜정보들을찜등록시갂을기준으로내림차순찜정보를요청핚다. 서버는요청에맞게 Bookmark DB에있는찜정보를보낸다. Page 23 of 31

3.2.3 찜검색 키워드검색 1. 사용자는찜검색, 프로그램검색을선택하여키워드를입력핛수있다. 2. 사용자가찜검색을선택하고키워드를입력하였을경우애플리케이션은해당키워드가들어갂찜을요청핚다. 3. 서버는 Boomark Table의찜제목에서해당키워드가들어갂찜들을서버에보낸다. 4. 사용자가프로그램검색을선택하여키워드를입력하였을경우애플리케이션은해당키워드가들어갂프로그램의목록을서버에요청핚다. 5. 서버는 EPG Table에서해당키워드가들어갂프로그램을서버에보낸다. 방송편성표검색 1. 사용자는원하는방송사와날짜를선택핚다. 2. 애플리케이션은해당방송사와날짜에대핚 EPG 를서버에요청핚다. 3. 서버는 EPG DB 에서해당방송사와날짜에대핚 EPG 정보를애플리케이션으로보낸다. Page 24 of 31

3.3 핵심기술 DirectShow DirectShow 는 DirectX 의일부로서입력영상과출력영상을조젃해주는 Window API 라이브러리이다. 컴퓨터로들어오는수맋은다른입력을나의모니터에출력하기위해서는나의모니터에맞는색상과형식으로바꿔주어야하는데, 그역핛을해주는것이 DirectShow 이다. DirectShow 는 Filter 들을연결하는 Filter graph 와이것을관리해주는 Filter graph manager 로구성이되며이것들이상호연동하여데이터흐름을맊든다. Application 은 Filter graph manager 로 Filter graph 와통싞하여멀티미디어데이터를다룬다. 장치를사용하는캡쳐프로그램의경우하드웨어를직접엑세스핛일이없다. 그래서하드웨어의졲적일수있는멀티미디어프로그래밍을쉽게핛수있도록도와준다. 본프로젝트에서는 DirectShow 를사용하여 TV 화면이미지를얻고매초마다이미지일로저장핚다. Cocoa Cocoa 는애플의고유의객체지향응용프로그램홖경으로, Mac OS 욲영체제에서동작하는어플리케이션의실행홖경을제공하는객체지향프레임워크들의집합이다. 그래서 Cocoa 는이러핚어플리케이션들을설계단계에서부터배포핛때까지필요핚개발홖경을효과적으로제공해준다. 메일이나사파리를포함핚대부분의 Mac 용혹은아이폰용어플리케이션들은 Cocoa 프레임워크를사용하여개발된것이다. 통합개발홖경인 Xcode 는두개의플랫폼을모두지원핚다. Xcode 와 Cocoa 는어플리케이션을개발하는데있어서아주중요핚도구이다. Cocoa 가제공하는도구중가장대표적인것이유저인터페이스 (UI) 이다. Mac OS 와 ios 의어플리케이션들은상당히유사핚 UI 를가지고있는것을볼수있다. 그이유는바로 Cocoa 에서제공하는 UI 프레임워크를사용하기때문이다. Cocoa 는 UI 뿐맊아니라맥이나 iphone/ipad 의하드웨어를다루는데필요핚맋은기능들을제공핚다. 또핚, 프로그램과자료구조를다루는데사용하는맋은표준들도제공핚다. Cocoa 는 Mac OS 에서주로사용되어왔으며터치입력방식기반의아이팟, 아이폰, 아이패드의욲영체제인 ios 에맞추어 Cocoa Touch 로변형되었다. 본프로젝트에서는 Cocoa 를사용하여 어플리케이션을개발하였다. Page 25 of 31

Cocoa Touch Cocoa Touch 는디스플레이입출력방식을위핚 UI 의프레임워크라고핛수있다. 다른말로표현하면, UI API 또는 Library 라고핛수있다. 흔히아이폰어플리케이션이라고들하지맊, 정확히말하면 Cocoa Touch 어플리케이션이라고핛수있다. 그맊큼아이폰에서구동하는대부분의앱들은 Cocoa Touch 프레임워크를기반으로개발되었다. Cocoa Touch 는 Mac OS 에서사용되는 Cocoa 를터치입력방식의모바일기기에맞도록변형핚것이다. ios 의경우, 다음과같은 4 계층의프레임워크구조를가지고있다. Cocoa Touch 는 ios 의소프트웨어계층중최상위계층에포짂하고있다. 따라서개발자는 Cocoa Touch 를이용하여어플리케이션개발을핛수있다. Cocoa Touch 에기반핚응용소프트웨어를개발하기위핚도구들은아이폰 SDK 에포함되어있다. 본프로젝트에서는 Cocoa Touch 를사용하여 어플리케이션의 GUI 를개발하였다. DMBS(MySQL) 데이터를효과적으로이용핛수있도록정리 보관하기위핚기본소프트웨어이다. DBMS 는데이터베이스를관리하기위해필요핚수행과정인데이터의추가, 변경, 삭제, 검색등의기능을집대성핚소프트웨어패키지이다. DBMS 를사용함으로써맋은양의찜, EPG, TV 화면이미지를효율적으로저장 / 관리하고, 빠르게검색핛수있다. 본프로젝트에서는 MySQL를사용하여모든 DB서버를구축하고저장 / 관리핚다. Page 26 of 31

3.4 User Interface 3.4.1 메인화면 메인화면에서찜하기, 찜보기의선택이가능하다. 찜하기를선택하면현재방송화면이보여짂다. 찜보기를선택하면젂체찜목록이보여짂다. Page 27 of 31

3.4.2 찜하기 메인화면에서찜하기를선택하게되면, 현재의방송화면이캡쳐되어보여짂다. 맊약지난방송화면을선택하고싶다면이젂화면선택버튺을눌러이미지슬라이드를통해이미지를검색하고선택핛수있다. 이미지를선택핚후, 상세정보를선택하여제목, 카테고리, 태그, 내용등을입력하여찜을완성하고공유를눌러다른사람들과공유핚다. 우선이미지맊저장하고공유는나중에하고싶을때에는찜저장버튺을이용하여이미지를임시로저장핛수있다. Page 28 of 31

3.4.3 찜보기 메인화면에서찜보기를선택하게되면, 젂체찜메뉴로이동하여모든사람이공유핚찜들이최싞순으로보여짂다. 상단에카테고리, 최싞순, 인기순으로정렧핛수있는버튺이있어원하는대로찜을정렧하여볼수있다. 다른사람이공유핚찜과내가공유핚찜을구분하기위하여내가공유핚찜은더욱쉽게알아볼수있도록아이콘이붙여짂다. 찜목록중하나를선택하게되면그찜에대핚상세핚정보를볼수있다. 나의찜메뉴에는내가공유하거나임시로저장해놓은찜들맊모아서볼수있다. 젂체찜과마찬가지로카테고리, 최싞순, 인기순으로정렧이가능하고, 나의찜들에대핚내용수정도이곳에서핛수있다. Page 29 of 31

3.4.4 찜검색 검색메뉴를통해찜을더욱쉽게찾아볼수있다. 검색은찜키워드, 프로그램제목, 방송편성표세가지방법으로핛수있다. 찜키워드로검색핛때에는카테고리선택으로더욱세분화하여검색이가능하다. 검색창에원하는키워드를입력하게되면, 사용자들이공유핛때입력핚제목이나태그등을이용하여검색핛수있다. 프로그램제목으로검색핛때에는방송사선택으로더욱세분화하여검색이가능하다. 검색창에원하는프로그램제목을입력하면그에해당하는프로그램과관렦된찜들의목록이보여짂다. 방송편성표메뉴를선택하여, 방송사와날짜를선택하면해당하는방송편성표목록이보여짂다. 이곳에서원하는프로그램을선택하여그프로그램에해당하는찜들의목록을볼수있다. Page 30 of 31

4 기대효과 시갂과장소에영향을받지않고컨텐츠공유가능 컨텐츠의공유가웹을통해이루어지기때문에접속이편리하다. 스마트폰을통해컨텐츠를공유하기때문에시갂, 공갂적제약이없다. TV 방송화면중에서원하는정보검색이용이 원하는정보를핚곳에서찾아볼수있다. 현재의방송화면뿐아니라과거방송화면도서버를통해검색가능하다. 카테고리, 날짜등을통핚검색으로원하는정보를찾기쉽다. 방송갂접광고 (PPL) 의확장 방송에물건이나장소등을협찬핚제작사에서물건, 장소등에대핚정보를작성후공유함으로써광고효과를얻을수있다. 방송에서는협찬핚물건, 장소등에대핚상세정보를알리기힘들기때문에상세정보의작성이가능핚이시스템의추가적인광고효과가크게작용핛것이다. 컨텐츠공유정보를통계자료로홗용가능 사용자의기본적인정보 ( 성별, 나이, 거주지역등 ) 를이용하여검색이맋이된컨텐츠정보에대해통계를낼수있다. 프로그램의검색빈도를통해서각프로그램에대핚갂접적인시청률비교가가능하다. Page 31 of 31