데이터실무

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

데이터 수집방법 및 기술

데이터 수집
데이터 수집의 이해
데이터 수집방법 및 기술
작성자
admin
작성일
2021-02-15 13:16
조회
31606

수집할 데이터가 결정되었으면 수집방법을 결정하고 수집방법에 따른 다양한 수집기술을 선택해 적용해야 된다. 빅데이터 처리를 위한 기술 내용이므로 수집할 데이터를 저장할 저장소로 아파치 하둡 파일 시스템을 사용한다고 전제한다. 수집할 원천 데이터를 가정한 후 어떤 기술을 적용할 지에 대해 알아보자.


수집방법의 분류

수집방법의 종류는 일반적 수집 데이터의 형태와 종류에 따라 크롤링, ETL, 로그수집, ftp, http, RDB 수집방법으로 분류했지만, 여기에는 수집기술, 연동방법 등이 혼합돼 있다. 수집 대상 데이터의 형태와 대상 데이터와의 연동방법 방법에 따라 수집방법을 정의하고, 수집방법의 분류에 대해 알아보자.


데이터와 서비스 활용

먼저 인지해야 할 사항은 서비스 활용에 필요한 모든 데이터는 디지털화한 결과물이라는 것이다. 디지털 데이터는 형태가 어떤 것이든 각각의 해석기가 존재한다. 해석기를 통해 보통은 텍스트 형태의 가시적 데이터로 혹은 음성이나 동영상 같이 서비스 이용자가 인지할 수 있는 형태로 서비스를 제공한다. 파일 형태의 스프레드시트라면 스프레드시트 지원 프로그램을 통해 데이터를 해석하고, 데이터베이스에 저장된 정형 데이터라면 데이터베이스 벤더가 제공하는 API를 통해 해석해 서비스 이용자가 데이터를 활용할 수 있도록 한다.

[표Ⅰ-1-18] 데이터 형태별 서비스 활용


데이터 형태 저장 형태 서비스 활용 활용 API
정형 데이터 DBMS DBMS 스키마를 읽어 가지적(텍스트) 데이터 세트 형태로 제공 DBMS
이진 파일 이진코드화한 데이터를 해석해 가시적 데이터 세트 형태로 제공 응용소프트웨어
반정형데이터 스크립트 파일 스크립트 형태의 파일을 브라우저나 응용소프트웨어가 해석해 가시적(텍스트) 데이터 형태로 제공 브라우저,
응용소프트웨어
(JAVA, DBMS)
비정형데이터 이진 파일
스크립트 파일
이진화한 형태의 데이터를 해석해 인지적(음성, 영상, 텍스트) 데이터 형태로 제공 응용소프트웨어
(동영상 플레이어)
데이터와 서비스 활용

데이터와 서비스 활용에서 살펴 보았듯이 여러 형태의 데이터가 각자의 서비스 활용 목적에 맞게 API를 통해 서비스를 제공함을 알 수 있다. 데이터 수집과 관련된 프로젝트에서 서비스 활용에 필요한 기능을 살펴보면 데이터를 수집하고 수집된 데이터를 가공해 재생산된 데이터를 가시적 형태로 제공하는 것이다.


데이터 수집

데이터의 형태나 종류에 관계 없이 수집을 할 수 있어야 한다. 단, 데이터의 형태나 종류에 따라 수집방법이 결정된다.


데이터의 재생산

수집한 데이터를 가공 재생산할 수 있어야 하며, 수집방법에는 데이터를 가공ㆍ재생산하는 과정을 포함해야 한다.


가시적 형태로 서비스 제공

가시적 형태로 서비스를 제공하고 데이터를 효율적으로 활용할 수 있도록 저장해야 하며, 수집방법에는 정형/반정형 형태로 데이터를 저장하는 기능을 제공해야 한다.


수집방법 정의

데이터 수집과 관련된 프로젝트에서 서비스 활용을 위해 필요한 기능에서 살펴본 사항을 다시 정리해 수집방법을 정의해 보면, 수집방법은 데이터의 종류와 형태별로 분류되고 수집 시스템에 저장ㆍ처리할 수 있는 기능과 정형/반정형 데이터의 형태로 저장할 수 있는 기능이 있어야 한다.

[표Ⅰ-1-19] 수집방법의 종류


위치 형태 종류 수집방법 정의
외부 정형 데이터 DBMS DBMS 벤더가 제공하는 API를 통해 정형 데이터에 접근해 데이터를 수집하고 시스템에 저장
이진 파일 ftp 프로토콜을 사용해 파일을 수집 시스템에 다운로드하고 해당 파일의 API를 통해 데이터 처리
반정형 데이터 스크립트 파일 http 프로토콜을 사용해 파일의 텍스트를 스크랩하고 데이터에 저장된 메타정보를 읽어 파일을 파싱해 데이터 처리
이진 파일 스트리밍을 사용해 파일의 텍스트를 스크랩하고 데이터에 저장된 메타정보를 읽어 파일을 파싱해 데이터 처리
비정형 데이터 이진 파일 ftp 프로토콜을 사용해 파일을 수집 시스템에 다운로드하고 해당 파일을 API를 통해 데이터 처리
스크립트 파일 http 프로토콜을 사용해 파일의 텍스트를 스크랩하고 내부 처리에서 텍스트를 파싱해 데이터 처리
내부 정형 데이터 DBMS DBMS 벤더가 제공하는 API를 통해 정형 데이터에 접근해 데이터를 수집하고 시스템에 저장
이진 파일 ftp 프로토콜을 사용해 파일을 수집 시스템에 다운로드 하고 해당 파일의 API를 통해 데이터 처리
반정형 데이터 스크립트 파일 http 프로토콜을 사용해 파일의 텍스트를 스크랩하고 데이터에 저장된 메타정보를 읽어 파일을 파싱해 데이터 처리
이진 파일 스트리밍을 사용해 파일의 텍스트를 스크랩하고 데이터에 저장된 메타정보를 읽어 파일을 파싱해 데이터 처리
비정형 데이터 파일 ftp 프로토콜을 사용해 파일을 수집 시스템에 다운로드 하고 해당 파일을 API를 통해 데이터 처리

수집 데이터의 위치, 데이터 형태와 종류별로 수집방법에 대해 알아보았다. 수집 데이터의 위치는 수집방법에 영향을 미치지 않는다. 수집방법에 영향을 미치는 것은 데이터의 형태와 종류다. 단, 내부/외부를 구분해 나누는 실익은 업무적 제약 사항 때문에 수집방법별로 존재하는 수집기술들에 영향을 미친다. 또한 내부에서 수집을 할 경우에는 DBMS에 저장된 정형 데이터가 주를 이루고, 외부에서 수집할 경우에는 스크립트 형태로 제공하는 반정형 데이터가 주를 이루기 때문에 실무에서 데이터 수집계획을 수립할 경우 내부와 외부를 구분하는 것이 데이터 수집의 비용적인 측면과 관리적 측면에서 유리하다.


데이터의 형태와 종류별 수집연동 방법

데이터를 수집하기 위해 데이터의 형태와 종류별로 방법이 존재하는 것을 알아보았다. 종류와 형태별로 데이터가 어떻게 구현돼 있는지 살펴보고, 수집기에서 어떤 연동방법을 사용하는지, 시스템에서 어떻게 처리하는지를 구분해 보자.

[표Ⅰ-1-20] 데이터 종류별 연동방법


데이터의 종류 수집 대상 데이터의 구현형태 연동방법 내부처리
DBMS DBMS에 저장된 데이터 소켓 저장
반정형 이진 파일 로그 형태로 센서, 서버 등 머신이 발생하는 데이터 스트리밍 저장
비정형 이진 파일 텍스트 형태의 파일, 동영상 파일, 이미지 파일 ftp 저장ㆍ파싱
스크립트 파일 웹상에 html, xml, JSON 형태로 존재 http 저장ㆍ파싱

수집 데이터의 형태에 따라 물리적으로 저장형태가 분류되고, 연동방법에 따라 수집방법이 결정된다.
수집방법을 정리해 보면 다음과 같다.


  • 원본 데이터 요청 후 확인
  • 소켓(Socket) 통신으로 연동하는 DBMS 수집방법
    - 주로 DBMS에서 벤더가 제공하는 드라이버를 통해 데이터를 연동한다.
  • 스트리밍 방식으로 연동하는 로그 데이터, 센서 데이터 수집방법
    - 주로 시스템에서 발생하는 데이터로 스트리밍 방식의 연동방법은 tcp, 블루투스, RFID 등 여러 가지 통신 프로토콜이 존재한다.
  • ftp 프로토콜을 사용하는 이진 파일 수집방법
    - 비정형 데이터를 수집할 때 필요한 방법으로 데이터 수집 후 수집한 데이터를 그대로 사용할 경우도 있지만, 서비스 활용을 위해 데이터의 파싱이 필요하다.
  • http 프로토콜 사용하는 스크립트 파일 수집방법
    - 웹상에 존재하는 데이터는 반정형 데이터로 존재하므로 수집기 내에서 활용 가능한 데이터의 형태로 파싱처리 후 시스템에 저장한다.
수집방법의 기본적 기능요건

수집방법의 정의 요건에서 데이터의 형태 및 존재(What)에 따라 연동방법(How)이 결정되는 것을 알아보았다. 그러면 데이터 수집 정의 요건에 맞도록 수집방법의 기능적인 측면을 주기성, 데이터의 위치 설정을 위한 수집방법에 공통적으로 필요한 환경설정 기능, 서비스 활용을 위해 데이터 처리ㆍ전처리ㆍ후처리의 요건을 만족시키도록 하는 기능들을 정의해 보자.


환경 설정기능

[표Ⅰ-1-21] 수집기술의 환경 설정기능


수집방법 기능항목 기능항목 요건
DBMS 수집 주기성 수집주기 설정 기능이 있어야 한다.
위치 수집 데이터의 위치설정 기능이 있어야 한다.
로그/센서수집 주기성 실시간/근실시간 환경설정 기능이 있어야 한다.
위치 머신으로부터 받는 정보설정 기능이 있어야 한다.
FTP 수집 주기성 수집주기 설정이 기능이 있어야 한다.
위치 수집 데이터의 위치설정 기능이 있어야 한다.
HTTP 수집 주기성 수집주기 설정이 기능이 있어야 한다.
위치 수집 데이터의 위치설정 기능이 있어야 한다.
서비스 활용을 위한 데이터 처리 기능

[표Ⅰ-1-22] 수집기술의 데이터 처리기능


수집방법 데이터 처리기능 기능항목 설명
DBMS 수집 에이전트 기능 데이터 수집을 처리ㆍ관리하는 수집 에이전트 기능
로그/센서수집 에이전트 기능 데이터 수집을 처리ㆍ관리하는 수집 에이전트 기능
콜렉터 기능 대용량 처리시 노드나 전송을 관리하는 콜렉터 기능
FTP 수집 파일전송 기능 ASCII 혹은 BINARY 파일을 전송하는 기능
HTTP 수집 에이전트 기능 데이터 수집을 처리ㆍ관리하는 수집 에이전트 기능
RDB 매핑 기능 처리된 데이터를 수집 시스템의 RDB와 매핑하는 기능

수집기술의 종류

데이터 수집을 위해 수집방법에 대해 알아보았다. 수집기술은 수집방법에 필요한 기본적인 기능요건들을 만족시키거나 필요한 기능요건들을 추가해 수집기술을 만들 수 있고 이미 선행돼 명명된 기술이 존재하므로 하나의 수집방법에 여러 개의 수집기술이 존재한다. 또한 기술적으로는 큰 차이가 없지만 서비스 활용 용도에 따라서 수집기술이 나뉘기도 한다.


데이터와 서비스 활용

① HTTP에서 데이터를 수집하는 방법에 RDB 매핑 기능을 추가해 오픈 API 수집기술이 파생했다.
② 외부 데이터의 HTTP 수집방법은 크롤링 기술이라 미리 명명되었다.
③ 로그/센서 데이터를 수집하는 방법이 각각 데이터 처리 에이전트의 구별을 통해 로그 수집기술, 머신2머신 수집기술로 분리됐다.


수집방법별 수집기술의 종류

수집방법별로 수집기술을 분류해 보고 각 수집기술에 사용되는 기능 요건들을 중심으로 수집기술을 살펴보자.


HTTP 수집

HTTP 수집은 크게 두가지 기술로 분류된다. 먼저 웹에서 텍스트 정보를 가져오는 크롤링 수집기술과 웹을 운영하는 운영주체가 정보를 제공하는 Open API 수집기술로 분류할 수 있다.


크롤링 기술
① 기본기능

[표Ⅰ-1-23] 크롤링 기술의 기본기능


기능 기능항목 요건
환경 설정기능 수집할 사이트의 URL 목록을 관리 하는 기능
수집주기를 설정하는 기능
URL, 설정값을 에이전트에 전달하는 기능
설정의 수동/자동 조작을 통해 관리할 수 있는 기능
데이터 처리 에이전트 기능 에이전트별 관리기능
에이전트 운영 기능
웹문서, 콘텐츠 수집기능
수집한 웹문서에서 URL 추출기능
머신런닝 기능
URL 리스트 탐색 기능
스크랩한 문서를 DB에 업로드하는 기능
병렬 크롤링 기능
불가역 데이터를 수집하므로 불필요 데이터를 전처리하는 기능
② 추가기능

[표Ⅰ-1-24] 크롤링 기술의 추가기능


기능 기능항목 요건
접근제어기능 에이전트가 웹 사이트에 접근하는 것을 방지하기 위한 로봇 배제 표준규약 권고안을 준수하도록 robots.txt를 탐지하는 기능
Open API 수집기술
① 기본기능

[표Ⅰ-1-25] open api 수집기술의 기본기능


기능 기능항목 요건
환경 설정기능 수집할 사이트의 URL 목록을 관리 하는 기능
수집주기를 설정하는 기능
URL, 설정값을 에이전트에 전달하는 기능
설정의 수동/자동 조작을 통해 관리할 수 있는 기능
데이터 처리 에이전트 기능 에이전트별 관리기능
에이전트 운영 기능
에이전트가 mash-up이 가능하도록 RESTFUL 방식의 API 제공기능
콘텐츠 자원에 유일한 URI를 부여하는 기능
CRUD를 에이전트의 메소드로 제공하는 기능
반정형 데이터(XML, JSON, RSS)의 정보 제공방식을 지원
수집 데이터의 성공/실패에 대한 응답기능
② 추가기능

[표Ⅰ-1-26] open api 수집기술의 추가기능


기능 기능항목 요건
테이블 매핑기능 수집한 반정형 데이터의 요소와 수집 시스템의 컬럼에 대해 매핑하는 기능
로그/센서 수집

로그/센서 데이터 수집방법은 데이터 처리 에이전트의 구별을 통해 로그 수집기술과 실시간 처리가 주를 이루는 머신정보 수집기술로 분류된다.


로그 수집기술
① 기본기능

[표Ⅰ-1-27] 로그 수집기술의 기본기능


기능 기능항목 요건
환경 설정기능 수집할 사이트의 URL 목록을 관리 하는 기능
수집주기를 설정하는 기능
URL, 설정값을 에이전트에 전달하는 기능
설정의 수동/자동 조작을 통해 관리할 수 있는 기능
데이터 처리 에이전트 기능 에이전트별 관리기능
에이전트 운영 기능
수집한 파일을 Chunk 단위로 전송하는 기능
주기/블록 단위로 잘라서 전송하는 기능
압축지원 기능
수집대상 파일 체크기능
② 추가기능

[표Ⅰ-1-28] 로그 수집기술의 추가기능


기능 기능항목 요건
콜렉터기능 다수의 에이전트로 받은 데이터를 직렬화된 chunk에 분산 파일시스템의 시퀀스 파일로 전송하는 기능
트래픽 밸런싱을 자동 조정하거나 수동으로 관리할 수 있는 기능
파일 전송 모니터링 기능
센서 데이터 수집기술
① 기본기능

[표Ⅰ-1-27] 센서데이터 수집기술의 기본기능


기능 기능항목 요건
환경 설정기능 수집할 사이트의 URL 목록을 관리 하는 기능
수집주기를 설정하는 기능
URL, 설정값을 에이전트에 전달하는 기능
설정의 수동/자동 조작을 통해 관리할 수 있는 기능
데이터 처리 에이전트 기능 에이전트별 관리기능
에이전트 운영 기능
수집 시스템의 콘텐츠 자원에 접속가능한 표준 API기반의 서비스 제공
다양한 외부 애플리케이션을 지원하는 기능
센서 데이터 검색 메소드를 지원하는 기능
최적 라우팅 경로를 탐색하는 기능
② 추가기능

[표Ⅰ-1-30] 센서 데이터 수집기술의 추가기능


기능 기능항목 요건
콜렉터기능 에이전트 모듈에서 수집한 하위 머신의 정보와 센서 데이터를 실시간으로 서버로 전송하는 기능
DBMS 수집

DBMS 수집은 DB에 직접 연결해 데이터를 수집하는 것이다.

① 기본기능

[표Ⅰ-1-31] DBMS 수집기술의 기본기능


기능 기능항목 요건
환경 설정기능 수집할 사이트의 URL 목록을 관리 하는 기능
수집주기를 설정하는 기능
URL, 설정값을 에이전트에 전달하는 기능
설정의 수동/자동 조작을 통해 관리할 수 있는 기능
데이터 처리 에이전트 기능 에이전트별 관리기능
에이전트 운영 기능
DBMS 메타 정보에서 테이블을 선택하는 기능
DBMS 메타 정보에서 컬럼을 선택하는 기능
레코드 단위로 수집해 분산파일시스템으로 전송하는 기능
수집의 성공/실패시 응답 기능
② 추가기능

[표Ⅰ-1-32] DBMS 수집기술의 기본기능


기능 기능항목 요건
클린징기능 수집한 데이터를 타겟시스템에 맞게 정제하여 로드하는 기능
FTP 수집

대용량 파일을 수집하기 위하 클라이언트 서버 간 연결 및 파일전송, FTP 보안기능이 제공된다.

① 기본기능

[표Ⅰ-1-33] FTP 수집기술의 기본기능


기능 기능항목 요건
환경 설정기능 수집할 사이트의 URL 목록을 관리 하는 기능
수집주기를 설정하는 기능
URL, 설정값을 에이전트에 전달하는 기능
ACTIVE, PASSIVE 연결에 필요한 통신포트 설정기능
데이터 처리 에이전트 기능 에이전트별 관리기능
에이전트 운영 기능
클라이언트 방화벽 운영시 액티브, 패시브 모드 변환기능
액티브 연결기능
패시브 연결기능
파일전송 연결기능
② 추가기능

[표Ⅰ-1-34] FTP 수집기술의 추가기능


기능 기능항목 요건
파일전송기능 ASCII, BINARY 파일 전송기능
Get, put, mget, mput 명령기능
수집파일에 대한 무결성 확인기능

데이터 수집의 과정에서는 서비스 활용을 위한 수집의 목적을 수립하게 되고 수집대상 데이터가 데이터의 목적론적 특성에 의해 우리에게 객체화될 것이다. 지금까지 수집기술을 실무에 적용하기 위해서 수집기술에서 제공하는 기능들에 대해 알아보았다. 수집기술을 적용하기 위해 각 수집기술을 갖고 있는 기능을 서비스 활용을 위해 어떻게 적용해야 하는지 분석하고 살펴 보아야 할 것이다. 다음 장에서는 수집방법 중 자주 사용하는 로그수집, 웹 크롤링, DBMS 수집, 소셜 데이터 수집에 대해 오픈소스 수집기의 설치 및 운영방법에 대해 학습하겠다.