twitter 분석 시스템dslab.konkuk.ac.kr/class/2014/14cd2/22/[2014 cd2] t22... · 2014-11-04 ·...

16
- 1 - [ 2014 Capstone Design2 ] 지도교수 Twitter 분석 시스템 < 졸업 작품 계획서 > 컴퓨터 공학부 지도교수 민덕기 교수님 T22 200911388 박미관 200911378 김의명 제출일자 2014.06.12

Upload: hahuong

Post on 17-Jun-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

- 1 -

[ 2014 Capstone Design2 ] 지도교수

Twitter 분석 시스템< 졸업 작품 계획서 >

컴퓨터 공학부

지도교수 민덕기 교수님

T22200911388 박미관

200911378 김의명

제출일자 2014.06.12

- 2 -

목 차

1. 프로젝트 개요 ········· 3

1) 개발 동기

2) 개발 목표

3) 시장 현황

4) 기술 동향

3

3

4

5

2. 팀 구성 및 소개 ········· 10

1) 담당자

2) 팀 구성

3) 팀원 소개

10

10

10

3. 프로젝트 설명 ········· 11

1) 시스템 구조

2) 기능

3) 개발 환경

11

11

14

4. 프로젝트 일정 ········· 15

5. 제출문서 ········· 16

6. 참고문헌 및 사이트 ········· 16

- 3 -

1. 프로젝트 개요

1) 개발 동기

Ÿ 소셜 미디어와 스마트 기기의 대중화가 이끈 빅데이터에 대한 관심이 나날이 높아지고 있다.

데이터의 종류와 양이 급증하면서 기업은 이 데이터를 잘 활용해 새로운 기업 가치를

창출하기 위한 노력에 서두르고 있다. 이런 빅데이터의 활용가치를 향상시키려는 다양한

방안들이 모색되고 있는 가운데, 오픈소스인 하둡 생태계를 활용해 트위터 전반에 걸친 분석

정보를 서비스 형태로 제공하고자 한다.

2) 개발 목표

Ÿ 트위터 상의 메시지를 데이터마이닝 후, 의미 있는 정보를 시각화 해주는 시스템 개발

- 4 -

3) 시장 현황

① 빅데이터 시장 현황

Ÿ 5년 이내에 데이터의 폭발적 증가로 빅데이터 시대로의 진입

Ÿ SNS, 모바일 서비스, IoT 서비스 등의 발전과 기존에 무심코 버려졌던 수많은 데이터들의

재활용으로 인한 데이터의 폭발적인 증가

Ÿ 빅데이터로부터 가치 있는 정보를 추출할 수 있는 신기술을 이용하여 사업화에 성공한

일부 기업들의 출현으로 인한 빅데이터의 경제적 가치 입증

Ÿ 사람들의 빅데이터에 대한 관심이 급증하게 되고 기업들의 빅데이터 분석에 대한 투자가

활발히 이루어지는 본격적인 빅데이터 시대 진입

- 5 -

4) 기술 동향

① 빅데이터 기술 정의

Ÿ 빅 데이터(영어: big data)란 기존 데이터베이스 관리도구로 데이터를 수집, 저장, 관리,

분석할 수 있는 역량을 넘어서는 대량의 정형 또는 비정형 데이터 집합 및 이러한

데이터로부터 가치를 추출하고 결과를 분석하는 기술을 의미한다. 다양한 종류의 대규모

데이터에 대한 생성, 수집, 분석, 표현을 그 특징으로 하는 빅 데이터 기술의 발전은

다변화된 현대 사회를 더욱 정확하게 예측하여 효율적으로 작동케 하고 개인화된 현대

사회 구성원 마다 맞춤형 정보를 제공, 관리, 분석 가능케 하며 과거에는 불가능했던

기술을 실현시키기도 한다. 이같이 빅 데이터는 정치, 사회, 경제, 문화, 과학 기술 등 전

영역에 걸쳐서 사회와 인류에게 가치있는 정보를 제공할 수 있는 가능성을 제시하며 그

중요성이 부각되고 있다. 하지만 빅데이터의 문제점은 바로 사생활 침해와 보안 측면에

자리하고 있다. 빅데이터는 수많은 개인들의 수많은 정보의 집합이다. 그렇기에

빅데이터를 수집,분석할 때에 개인들의 사적인 정보까지 수집하여 관리하는 빅브라더의

모습이 될 수도 있는 것이다. 그리고 그렇게 모은 데이터가 보안 문제로 유출된다면, 이

역시 거의 모든 사람들의 정보가 유출되는 것이기에 큰 문제가 될 수 있다. 세계 경제

포럼은 2012년 떠오르는 10대 기술 중 그 첫 번째를 빅 데이터 기술로 선정했으며

대한민국 지식경제부 R&D 전략기획단은 IT 10대 핵심기술 가운데 하나로 빅 데이터를

선정하는 등 최근 세계는 빅 데이터를 주목하고 있다.

Ÿ 데이터 형식이 다양하고 생성속도가 매우 빨라 새로운 관리, 분석 방법이 필요한 대용량

데이터 (국가정보화 빅데이터 마스터플랜, 2012)

Ÿ 대용량 데이터를 활용/분석하여 가치 있는 정보를 추출하고 생성된 지식을 바탕으로

능동적으로 대응하거나 변화를 예측하기 위한 정보화 기술 (국가정보화 빅데이터

마스터플랜, 2012)

- 6 -

② 빅데이터 기술 동향

Ÿ (기술) 2012년 Gartner 10대 기술에 빅데이터 관련하여 문맥과 소셜UX, 차세대 분석기술,

빅데이터, 인메모리 컴퓨팅, 클라우드 프로그래밍 기술이 포함됨

Ÿ (전략) 미국 대통령 과학기술자문위는 “Designing a Digital Future 보고서”에서 모든 미국

연방정부 기관은 빅데이터 전략을 수립해야 함을 강조

Ÿ (산업) Economist는 3대 IT 성장 동력 중의 하나로 빅데이터를 제시함

Ÿ (빅데이터) 빅데이터 분야 선두 주자인 Google, Oracle, IBM, HP, Teradata, Amazon 등은

빅데이터 처리 기술을 확보하여 빅데이터 기반 서비스를 활발하게 제공하고 있는 반면,

국내 기업은 시작단계에 머물러 있음

Ÿ 국내 빅데이터 기술은 구글, 오라클, IBM 등 글로벌 기업 대비 2~6년의 기술 격차가 있는

것으로 추정됨 (출처: 국가 정보화 빅데이터 마스터 플랜)

Ÿ 선진국과의 기술격차 축소 및 국내 기업의 기술 경쟁력 확보를 위하여 빅데이터 수집,

전처리, 저장, 관리, 분석 등에 필요한 기반 기술개발 추진 중임

Ÿ 기존 빅데이터 기술개발 과제는 일반적인 빅데이터 처리 기술 개발 또는 공간정보 관련

단편적인 빅데이터 처리 기술을 개발하는 과제로서, 대용량의 공간정보를 효율적으로

처리, 저장 및 관리, 분석하고 서비스 단계에서 필요한 기반 기술을 확보하기에는

어려움이 있음

- 7 -

③ 웹 크롤러

Ÿ 웹 크롤러(web crawler)는 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터

프로그램이다. 웹 크롤러에 대한 다른 용어로는 앤트(ants), 자동 인덱서(automatic

indexers), 봇(bots), 웜(worms), 웹 스파이더(web spider), 웹 로봇(web robot) 등이 있다.

Ÿ 웹 크롤러가 하는 작업을 웹 크롤링(web crawling) 혹은 스파이더링(spidering)이라

부른다. 검색 엔진과 같은 여러 사이트에서는 데이터의 최신 상태 유지를 위해 웹

크롤링한다. 웹 크롤러는 대체로 방문한 사이트의 모든 페이지의 복사본을 생성하는 데

사용되며, 검색 엔진은 이렇게 생성된 페이지를 보다 빠른 검색을 위해 인덱싱한다. 또한

크롤러는 링크 체크나 HTML 코드 검증과 같은 웹 사이트의 자동 유지 관리 작업을 위해

사용되기도 하며, 자동 이메일 수집과 같은 웹 페이지의 특정 형태의 정보를 수집하는

데도 사용된다.

Ÿ 웹 크롤러는 봇이나 소프트웨어 에이전트의 한 형태이다. 웹 크롤러는 대개

시드(seeds)라고 불리는 URL 리스트에서부터 시작하는데, 페이지의 모든 하이퍼 링크를

인식하여 URL 리스트를 갱신한다. 갱신된 URL 리스트는 재귀적으로 다시 방문한다.

④ 분산 컴퓨팅

Ÿ 분산 컴퓨팅(Distributed computing)은 인터넷에 연결된 여러 컴퓨터들의 처리 능력을

이용하여 거대한 계산 문제를 해결하려는 분산처리 모델이다.

Ÿ 유휴 개인용 컴퓨터의 프로세싱 자원을 활용하려는 생각은 1970년대 초 인터넷의

효시로도 불리는 ARPANET이 처음 등장할 때 나타났다. Creeper와 Reaper 같은 몇몇

프로그램들이 출현했으며, 인터넷의 대중화로 1997년에 RSA Data Security사가

Distributed.net 프로젝트를 시작하여 약 30만 명의 이용자가 참여하였으며 DES 64 비트

암호를 해독하였다.

Ÿ 해외의 분산 컴퓨팅 프로젝트 동향을 살펴보면 미국을 중심으로 영국, 독일 등 유럽등

여러 곳에서 분산 컴퓨팅에 의한 프로젝트에 관심을 보이고 있고, 바이오 분야, 기상,

인공지능, 수학, 암호학 등 다양한 응용분야에 대한 프로젝트가 진행되고 있다.

- 8 -

⑤ 하둡

Ÿ 아파치 하둡(Apache Hadoop, High-Availability Distributed Object-Oriented Platform)은

대량의 자료를 처리할 수 있는 큰 컴퓨터 클러스터에서 동작하는 분산 응용 프로그램을

지원하는 프리웨어 자바 소프트웨어 프레임워크이다. 원래 너치의 분산 처리를 지원하기

위해 개발된 것으로, 아파치 루씬의 하부 프로젝트이다. 분산처리 시스템인 구글 파일

시스템을 대체할 수 있는 하둡 분산 파일 시스템(HDFS: Hadoop Distributed File

System)과 맵리듀스를 구현한 것이다.

Ÿ 하둡은 2005년 더그 커팅과 마이크 캐퍼렐라(Mike Cafarella)가 개발하였다. 당시 커팅은

야후에서 일하고 있었으며, 이후 하둡은 아파치(Apache) 재단으로 넘어가 공개

소프트웨어로 개발되고 있다. 하둡은 구글의 분산 파일 시스템(GFS) 논문이 공개된 후, 그

구조에 대응하는 체계로 개발되었다. 하둡의 로고는 노랑색 아기 코끼리로 표시한다. 이는

하둡의 개발자인 더그 커팅이 자신의 아이가 가지고 놀던 장난감 코끼리의 이름을 따서

하둡이라는 이름을 지었기 때문이다. 코끼리는 빅 데이터(Big Data)를 상징하는 동물이다.

2011년 오픈 소스 아파치 하둡(Apache Hadoop) 사업을 위해 야후에서 분사한 기업의

이름을 지을 때도, 코끼리가 주인공인 동화에 나오는 코끼리 이름인 호튼(Horton)을

따와서 호튼웍스(Hortonworks)라고 회사명을 지었다.

Ÿ 하둡은 하둡 공통 패키지로 구성되어 있다. 이 패키지에는 하둡 파일 시스템(HDFS), OS

수준 앱스트랙션(OS level abstractions) 그리고 맵리듀스(MapReduce) 엔진이 포함되어

있다. 또한 필요한 자바 아카이브 파일(Java ARchive, JAR)들과 하둡을 시작할 스크립트,

소스 코드들과 관련 자료들로 구성되어 있다. 작은 하둡 클러스터에는 하나의 마스터와

여러 워커 노드들로 구성 되어 있다. 마스터 노드들은 잡트렉커(JobTracker),

테스크트렉커(TaskTracker), 네임노드(NameNode), 데이터노드(DataNode)로 구성 된다.

슬레이브 또는 워커 노드(Worker Node)는 데이터노드와 테스크트렉커로서 동작을 한다.

하둡은 자바 런타임 환경(Java Runtime Environment, JRE) 1.6 또는 그보다 높은 버전이

필요하다. 일반 시작 및 종료를 위한 스크립트는 클러스터의 노드들간 설정을 하기 위해

시큐어 셸(Secure Shell, ssh)이 필요하다. 대용량 하둡 클러스터에는 HDFS가 파일 시스템

인덱스를 관장하기 위한 네임노드 전담 서버를 통해 관리된다. 그리고 2차 네임노드는

네임노드의 메모리 구조 스냅샷을 만들어서 파일시스템에 장애나 데이터의 손실을

줄여준다. 단독 쟙트렉커 서버는 작업 스케쥴링을 관리한다.

Ÿ 하둡 분산 파일 시스템(HDFS, Hadoop distributed file system)은 하둡 프레임워크를 위해

자바 언어로 작성된 분산 확장 파일 시스템이다. HDFS은 여러 기계에 대용량 파일들을을

나눠서 저장을 한다. 데이터들을 여러 서버에 중복해서 저장을 함으로써 데이터 안정성을

얻는다. 따라서 호스트에 RAID 저장장치를 사용하지 않아도 된다. 하둡 분산 파일

시스템은 다음과 같은 시스템에서 잘 동작하는 것을 목표로 하고 있다. 하드웨어

오동작:하드웨어 수가 많아지면 그중에 일부 하드웨어가 오동작하는 것은 예외 상황이

아니라 항상 발생하는 일이다. 따라서 이런 상황에서 빨리 자동으로 복구하는 것은

HDFS의 중요한 목표다. 스트리밍 자료 접근: 범용 파일 시스템과 달리 반응 속도보다는

시간당 처리량에 최적화되어 있다. 큰 자료 집합: 한 파일이 기가바이트나 테라바이트

정도의 크기를 갖는 것을 목적으로 설계되었다. 자료 대역폭 총량이 높고, 하나의

클러스터에 수 백개의 노드를 둘 수 있다. 하나의 인스턴스에서 수천만여 파일을

- 9 -

지원한다. 간단한 결합 모델: 한번 쓰고 여러번 읽는 모델에 적합한 구조이다. 파일이 한번

작성되고 닫히면 바뀔 필요가 없는 경우를 위한 것이다. 이렇게 함으로써 처리량을

극대화할 수 있다. 자료를 옮기는 것보다 계산 작업을 옮기는 것이 비용이 적게 든다:

자료를 많이 옮기면 대역폭이 많이 들기 때문에 네트워크 혼잡으로 인하여 전체 처리량이

감소한다. 가까운 곳에 있는 자료를 처리하게 계산 작업을 옮기면 전체적인 처리량이 더

높아진다. 다른 종류의 하드웨어와 소프트웨어 플랫폼과의 호환성: 서로 다른 하드웨어와

소프트웨어 플랫폼들을 묶어 놓아도 잘 동작한다.

Ÿ HDFS는 마스터/슬레이브(master/slave) 구조를 가진다. HDFS 클러스터는 하나의

네임노드와, 파일 시스템을 관리하고 클라이언트의 접근을 통제하는 마스터 서버로

구성된다. 게다가 클러스터의 각 노드에는 데이터노드가 하나씩 존재하고, 이 데이터

노드는 실행될 때마다 노드에 추가되는 스토리지를 관리한다. HDFS는 네임스페이스를

공개하여서 유저 데이터가 파일에 저장되는 것을 허락한다. 내부적으로 하나의 파일은

하나 이상의 블록으로 나뉘어 있고, 이 블록들은 데이터노드들에 저장되어 있다.

네임노드는 파일과 디렉터리의 읽기(open), 닫기(close), 이름 바꾸기(rename) 등,

파일시스템의 네임스페이스의 여러 기능을 수행한다. 또한, 데이터 노드와 블록들의

맵핑을 결정한다. 데이터 노드는 파일시스템의 클라이언트가 요구하는 읽기(read),

쓰기(write) 기능들을 담당한다. 또한 데이터 노드는 네임노드에서의 생성, 삭제, 복제 등과

같은 기능도 수행한다. 네임노드와 데이터노드는 GNU/Linux OS를 기반으로 하는

상용머신에서 실행하기 위해 디자인된 소프트웨어의 일부이다. HDFS는 자바 언어를

사용하므로 자바가 동작하는 어떠한 컴퓨터에서나 네임노드나 데이터노드 소프트웨어를

실행할 수 있다.

- 10 -

2. 팀 구성 및 소개

(1) 담당자

① 담당교수 : 유준범

소 속 : 건국대학교 컴퓨터공학부

수행업무 : 종합설계 2 (졸업작품 진행 및 관리)

② 지도교수 : 민덕기

소 속 : 건국대학교 컴퓨터공학부

수행업무 : 졸업 작품 지도 및 관리

(2) 팀 구성

구 분 이 름 역 할

Team Leader 박 미 관 - Schedule Management - Document Management - Development

Team Member 김 의 명 - Testing - Development

(3) 팀원 소개

학 년 학 번 이 름 관심분야 연락처 이메일

4 200911388 박미관 - Big Data - Business 010-6201-3745 pmk3745

@ gmail.com

4 200911378 김의명 - Database - Finance 010-9960-2999 dmlaud1

@ naver.com

- 11 -

3. 프로젝트 설명

(1) 시스템 구조

(2) 기능

① 오피니언 마이닝

Ÿ 입력한 이슈에 대한 트위터 이용자들의 의견을 오피니언 마이닝(Opinion Mining)을 통해

분석하여, 정보를 시각화하는 기능을 제공

- 12 -

Ÿ 사용자들의 의견에 대한 자세한 정보 제공

Ÿ 같은 의견을 가진 사용자들을 군집 알고리즘 등을 이용하여 분류 후, 사용자들 간의

관계를 분석하는 기능을 제공

Ÿ 같은 의견을 가진 사용자들이 관심을 가지는 다른 이슈에 대한 정보 제공

- 13 -

② 사용자 분석

Ÿ 해당 ID를 가진 사용자의 관심 정보 및 활동 내용을 분석하여 성향을 파악하는 기능 제공

③ 분석 정보 저장

Ÿ 분석 결과를 엑셀 or 텍스트파일에 저장하는 기능을 제공

④ 하둡과 머하웃을 이용하여 분산처리를 수행하는 기능을 제공

- 하둡과 머하웃을 통한 맵 리듀스(Map Reduce), 협업 필터링, 군집, 분류 등의 기능을

이용하여 대용량 데이터를 분산 처리 한다.

- 14 -

(3) 개발 환경

구분 박 미 관 김 의 명

OS(Virtual Box)

Windows 7 64bit(Ubuntu Linux)

Windows 7 64bit(Ubuntu Linux)

CPUInter(R) Core(TM) i5-3317U CPU

@ 1.70GHzInter(R) Core(R) CPU M 530

@ 2.40GHz

Memory 8.00 GB 3.00 GB

DevelopmentMethod

Agile Software Development

Language Java, SQL

Tool&

Environment

- Eclipse IDE for Java EE Developers - Hadoop Framework - Twitter4J, Mahout Libraries - Oracle Database Express Edition 11g release 2 - SVN, Check Style

- 15 -

4. 프로젝트 일정

구분 5 6 7 8 9 10 11

ProjectPlan

Requirement Analysis

Design

InterimReport

Development

Testing

FinalReport

- 16 -

5. 제출 문서

구 분 문 서 명 수 량

졸업작품 계획서 [2014 CD2] T22 졸업작품 계획서.pdf 1

졸업작품 계획 검토확인서 [2014 CD2] T22 졸업작품 계획 검토확인서.jpg 1

6. 참고문헌 및 사이트

- http://ko.wikipedia.org/wiki/%EB%B6%84%EC%82%B0_%EC%BB%B4%ED%93%A8%ED%8C%85

- http://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC

- http://ko.wikipedia.org/wiki/%ED%95%98%EB%91%A1

- http://ko.wikipedia.org/wiki/%EB%B9%85_%EB%8D%B0%EC%9D%B4%ED%84%B0