본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Data Collection; 데이터 수집
분석에 필요한 데이터를 내·외부 원천에서 찾아 가져오는 활동과 그 기술

수집은 분석 기획 다음 단계이자 데이터 전처리의 앞단이다. 무엇을 어디서 어떤 주기로 가져올지 정하지 않고 수집부터 하면 쓸 수 없는 데이터가 쌓인다.

  1. 수집 데이터 대상 선정 : 분석 목적에 맞는 데이터를 도출하고, 내부·외부 원천 목록을 만든 뒤 수집 가능성, 보안(개인정보 포함 여부), 정확성, 비용을 따져 우선순위를 정한다
  2. 수집 세부 계획 수립 : 데이터 소유자, 데이터 유형, 수집 기술, 수집 주기, 저장 방식을 정하고 수집 계획서를 작성한다
  3. 데이터 수집 실행 : 계획대로 수집하고, 사전 테스트를 거쳐 수집 결과의 품질을 점검한다
  • 내부 데이터 : 조직 안의 시스템(ERP, CRM, 로그 등)에서 나온다. 관리 주체가 명확하고 수집이 쉽다
  • 외부 데이터 : 공공데이터, SNS, 웹 페이지, 제휴사 데이터 등. 수집 비용과 저작권·약관·개인정보 문제를 따로 검토해야 한다

정성 자료 수집 방법

편집 원본 편집

수치로 얻기 어려운 요구사항·의견·아이디어는 사람에게서 직접 모은다. 방법마다 대상과 형식이 다르다.

방법 방식
브레인스토밍 여러 사람이 비판 없이 자유롭게 아이디어를 많이 내게 한 뒤 정리한다. 두 후보를 비교하는 방법이 아니다
인터뷰 이해관계자·담당자와 직접 이야기하며 질의응답으로 요구사항과 업무 내용을 듣는다
설문조사 다수의 사람에게 질문지를 배포해 응답을 모은다. 인터뷰와 달리 대량·정형 응답을 얻는다
FGI(Focus Group Interview) 주제에 맞게 선정한 소수 전문가·대상자 집단을 모아 진행자가 깊이 있게 면담·토론한다. 사전 설문으로 대상을 고르고 온·오프라인으로 면담을 진행하기도 한다
SCAMPER 대체(Substitute)·결합(Combine)·적용(Adapt)·수정(Modify)·다른 용도(Put to other uses)·제거(Eliminate)·뒤집기(Reverse) 일곱 질문으로 기존 것을 바꿔 보며 아이디어를 발상하는 기법이다. 이해관계자와 이야기하는 방법이 아니다

내부·외부 데이터 수집 시 검토 사항

편집 원본 편집
구분 검토할 것
내부 데이터 필요한 데이터의 관리 권한이 다른 부서에 있으면 협의를 거쳐 공유 가능 여부를 확인한다. 개인정보가 들어 있으면 비식별 조치 방안을 함께 마련한다
외부 데이터 수집해도 되는지 법률·제도상 제약(개인정보, 저작권, 이용약관)을 먼저 확인한다. 외부 원천과 연결되는 만큼 보안 위험도 검토해야 하고, 구매·연동 비용을 따진다
  • 외부 데이터라고 해서 보안을 신경 쓰지 않고 자유롭게 써도 되는 것은 아니다. 오히려 내부 데이터보다 법적 제약과 보안 검토가 더 필요하다.
기술 대상 설명
크롤링(Crawling) 웹 페이지 링크를 따라가며 여러 웹 페이지를 자동으로 방문해 수집한다
스크래핑(Scraping) 웹 페이지 특정 페이지에서 필요한 정보만 추출한다
Open API 공공·민간 서비스 제공자가 공개한 인터페이스로 JSON·XML 형태의 데이터를 받는다
FTP 파일 TCP/IP 기반 파일 전송 프로토콜로 원격 서버의 파일을 가져온다
RSS 블로그·뉴스 XML 기반 형식으로 갱신된 콘텐츠를 구독해 받는다
ETL 정형 데이터 원천 DB에서 추출(Extract)·변환(Transform)·적재(Load)해 데이터 웨어하우스 등에 넣는다
Sqoop RDBMS ↔ 하둡 관계형 DB와 HDFS 사이에 대량 데이터를 전송한다
로그 수집기 로그·이벤트 Flume, Scribe, Fluentd, Chukwa 등이 여러 서버의 로그를 모아 저장소로 보낸다
Kafka 스트리밍 발행/구독(Pub/Sub) 방식의 분산 메시징 플랫폼으로 대용량 실시간 데이터를 중계한다
센서·IoT 기기 센서 데이터를 MQTT 같은 경량 프로토콜 등으로 받아 수집한다
스트리밍 실시간 데이터 네트워크로 끊임없이 들어오는 데이터를 실시간으로 수집·처리한다
  • DB to DB : 서로 다른 데이터베이스 사이에서 데이터를 동기화하거나 옮기는 방식이다. 원천 DB 의 데이터를 데이터 웨어하우스나 데이터 마트로 옮길 때 적합하다. FTP·HTTP·Open API 는 파일이나 웹 서비스에서 데이터를 받을 때 쓴다.
유형 특징 예
정형 데이터 고정된 스키마(행·열)가 있다 RDB 테이블, 스프레드시트
반정형 데이터 스키마 정보(태그·키)를 데이터 안에 함께 가진다 XML, JSON, HTML, 로그
비정형 데이터 정해진 구조가 없다 텍스트, 이미지, 음성, 동영상
  • 범주형(질적) 데이터
    • 명목형 : 순서가 없는 분류. 예) 성별, 혈액형
    • 순서형 : 순서가 있는 분류. 예) 학점, 만족도
  • 수치형(양적) 데이터
    • 이산형 : 셀 수 있는 값. 예) 방문 횟수, 자녀 수
    • 연속형 : 구간 안의 모든 실수 값. 예) 키, 온도
척도 가능한 연산 절대 0점 예
명목 척도 =, ≠ 없음 성별, 지역
서열 척도 순서 비교 없음 등수, 선호도
등간 척도 덧셈·뺄셈 없음 섭씨 온도, IQ
비율 척도 사칙연산 있음 무게, 소득, 나이

자세한 내용은 통계 척도를 참고한다.

  • XML : 태그로 구조를 표현하는 마크업 언어. XML 스키마로 구조를 정의할 수 있다
  • JSON : 키-값 쌍과 배열로 구성된 경량 텍스트 형식. Open API 응답에 가장 많이 쓰인다
  • CSV : 쉼표로 필드를 구분하는 텍스트 형식
  • HTML : 웹 문서 형식. 크롤링·스크래핑으로 수집한 뒤 파싱해 필요한 값을 꺼낸다
  • 수집 기술과 대상의 짝(Sqoop = RDBMS↔HDFS, Flume = 로그, Open API = 서비스 데이터, 크롤링 vs 스크래핑)
  • 정형·반정형·비정형 구분, 특히 XML·JSON·HTML이 반정형이라는 점
  • 척도 4종의 구분. 섭씨 온도는 등간 척도, 절대 0점이 있으면 비율 척도