[빅분기] CH3. 데이터 수집 및 저장 계획_데이터 수집 및 전환
24.03.16
01. 데이터 수집
1) 데이터 수집 수행 자료
- 용어집 / 서비스 흐름도 / 업무 매뉴얼 / 데이터 명세서 / 데이터 수집 계획서 / 원천 데이터 담당자 정보 / 인프라 구성도
- 원천 데이터 소유 기관 정보 / 데이터 수집 기술 매뉴얼 / 소프트웨어 아키텍처 개념도 / 수집 솔루션 매뉴얼 / 하둡 오퍼레이션 매뉴얼
<데이터 수집 시스템 구축 절차>
수집 데이터 유형 파악 → 수집 기술 결성 → 아키텍처 수립 → 하드웨어 구출 → 실행환경 구축
2) 비즈니스 도메인과 원천 데이터 정보 수집
① 비즈니스 도메인 정보
- 비즈니스 모델 / 비즈니스 용어집 / 비즈니스 프로세스 / 도메인 전문가 인터뷰
② 원천 데이터 정보
- 데이터의 수집 가능성 / 데이터의 보안 / 데이터 정확성 / 수집 난이도 / 수집 비용
3) 내 외부 데이터 수집
① 데이터의 종류
- 내부 데이터: 서비스 시스템, 네트워크 및 서버 장비, 마케팅 데이터
- 외부 데이터: 소셜 데이터, 특정 기관 데이터, M2M 데이터, LOD
② 데이터의 수집 주기
- 내부 데이터는 실시간 수집 가능, 외부 데이터는 미리 결정해 관리 정책 정해야 함
③ 데이터의 수집 방법
4) 데이터 수집 기술
① 데이터 유형별 데이터 수집 기술
- 정형 데이터: ETL, FTP, API, DBToDB, 스쿱(Sqoop)
- 비정형 데이터: 크롤링, RSS, Open API, 척와, 카프카
- 반정형 데이터: 플럼, 스크라이브, 센싱, 스트리밍
② ETL
Extract(추출): 원천 데이터 획득 → Transform(변환): 목표로 하는 형식이나 구조로 변환 (정제, 변환, 표준화, 통합등) → Load(적재): 목표 시스템에 저장
③ FTP
- 대량의 파일을 네트워크를 통해 주고받을 때 사용되는 파일 전송 서비스
- 특징: 인터넷 프로토콜에서 작동, 두 개의 연결을 생성, 사용자 계정 및 암호 등의 정보는 데이터 제어 연결에서, 이후 실제 파일 송수진 작업은 데이터 전송 연결에서 처리
④ 정형 데이터 수집을 위한 아파치 스쿱(Sqoop) 기술
- 관계형 데이터 스토어 간에 대량 데이터 효과적 전송하기 위해 구현된 도구
- 커넥터 사용해 MySQL, Qracle, Ms SQL 관계형 DB를 하둡 파일 시스템(HDFS, Hive, Hbase)로 수집
- 특징: 모든 적재 과정을 자동화, 병렬처리 방식으로 작업
- Bulk import 지원, 데이터 전송 병렬화, Direct input 제공, 프로그래밍 방식의 데이터 인터랙션
⑤ 로그/센서 데이터 수집을 위한 아파치 플럼(Flume) 기술
- 대용량의 로그 데이터를 효과적으로 수집, 집계, 이동시키는 분산 서비스 제공 솔루션
- 스트리밍 데이터 흐름에 기반, 간단하고 유연한 구조, 하나의 에이전트는 소스, 채널, 싱크로 구성
- 특징: 대량의 이벤트 데이터 전송을 위해 사용됨 / 신뢰성, 확장성, 효율성
⑥ 웹 및 소셜 데이터 수집을 위한 스크래피 기술
- 웹사이트 크롤링, 구조화된 데이터 수집 도구, API를 이용해 다양한 형식의 데이터 추출, 범용 웹크롤러로 사용될 수 있음
- 특징: 파이썬 기반, 단순한 스크랩 과정, 다양한 부가 요소
02. 데이터 유형 및 속성 파악
1) 데이터 수집 세부 계획 작성
<세부 계획 작성 절차>
- 세부계획서 작성: 데이터 유형, 데이터 위치, 보관방식, 수집주기, 이관절차, 확보비용
- 데이터 적절성 검증 방식 수립 및 세부계획 반영
- 데이터 재수집 또는 데이터 가공
2) 데이터 유형과 위치 및 비용
① 데이터 유형: 정형 / 반정형 / 비정형
② 데이터 위치: 내부 / 외부
③ 데이터 확보 비용 산정: 데이터의 종류 / 데이터의 크기 및 보관 주기 / 데이터의 수집 주기 / 데이터의 수집 방식 / 데이터의 수집 기술 / 데이터의 가치성
3) 수집되는 데이터 형태
① HTML: 웹 페이지 만들 때 사용되는 문서 형식
- 텍스트/ 태그 / 스크립트로 구성
② XML: 데이터 표현하기 위해 태그를 사용하는 언어
- 엘리멘트, 속성, 처리명령, 엔티티, 주석, CDATA 섹션으로 구성
③ JSON: 자바스크립트를 위해 객체 형식으로 자료를 표현하는 문서 형식, 경량의 데이터 교환 방식
- 자료형: 수 / 문자열 / 배열 / 객체
4) 데이터 저장 방식
① 파일 시스템 ② 관계형 데이터베이스 ③ 분산처리 데이터베이스
5) 데이터 적절성 검증
① 데이터 누락 점검 ② 소스 데이터와 비교 ③ 데이터의 정확성 점검 ④ 보안 사항 점검 ⑤ 저작권 점검 ⑥ 대량 트래픽 발생 여부
03. 데이터 변환
1) 데이터 변환
① 데이터 변환 방식의 종류
- 관계형 데이터베이스: 비정형 데이터 → 정형 데이터 형태로 저장 MySQL, Oracle, DB2 등 (상용 라이센스, 오픈소스)
- 분산데이터 저장: 수집 데이터를 분산파일시스템으로 저장하는 방식 HDFS (오픈소스)
- 데이터 웨어하우스: 주제별, 시계열적으로 저장하는 방식 네티자, 테라데이타, 그린플럼의 DW 솔루션 (상용 라이센스)
- NoSQL: 키-값 형태로 저장하는 방식 Hbase, Cassandra, MongoDb (오픈소스)
② 데이터 변환 수행자료
- 데이터 수집 계획서 / 수집 솔루션 매뉴얼 / 데이터 변환 솔루션 / 하둡 오퍼레이션 매뉴얼 / 소프트웨어 아키텍처 개념도
2) 데이터베이스 구조 설계
- DBMS 구축 여부 결정 → 저장 데이터베이스 결정 → DBMS 설치 → 테이블 구조 설계
① DBMS 구축 여부 결정
- 수집 대상을 확인, 필요 데이터의 속성 파악 DBMS 구축 여부 결정, 저장 데이터베이스는 분석이 쉬운RDBMS를 보편적으로 사용
② 저장 데이터베이스 결정: 다양한 상용, 비상용, 오픈소스 DBMS 검토
③ DBMS 설치
④ 테이블 구조 설계
3) 비정형/반정형 데이터의 변환
- 데이터 전처리나 후처리가 수해오디기 전에 비정형/반정형 데이터를 구조적 형태로 전환하여 저장하는 과정
① 수집할 데이터 속성 구조 파악: title, votes, body, tags, link 등 적절한 변수명으로 구분
② 데이터 수집 절차에 대한 수행 코드 정의
③ 데이터 저장 프로그램 작성
④ 데이터베이스에 저장
4) 융합 데이터베이스 설계
- 데이터 유형과 의미 파악해 활용 목적별 융합 DB 설계
- 구조화된 형태로 수집, 저장된 데이터의 의미 파악 → 해당 데이터를 활용할 수 있는 융합 DB로 재구성
① 요구사항 분석
② 데이터 표준화와 모델링 수행
- 개념적 설계: 엔티티와 애트리뷰트로 ER 다이어그램 그림
- 논리적 설계: ER 다이어그램 매핑 관계형 스키마 제작
5) 고려사항
- 데이터 분석의 용이성을 위해 정형화된 데이터베이스로 변환함에 집중
- 수집 데이터의 속성 구조 정확히 파악, 융합 DB 구성은 활용 업무 목적 정확히 판단, 쉽게 자동화 구축될 수 있도록 설계
04. 데이터 비식별화
1) 비식별화 개요
- 개인정보를 식별할 수 있는 값들을 정해진 규칙으로 대체하거나 가공해 개인을 알아볼 수 없도록 하는 조치!
- 목표: 데이터의 유효성을 유지하면서 개인 식별 가능성을 제거하는 것이 목표
① 식별자와 속성자
- 식별자: 개인 또는 개인과 관련된 사물에 고유하게 부여된 값 또는 이름
ex) 주민등록번호, 여권번호, 운전면허번호, 이름, 상세 주소, 생일, 자격증 취득일, 전화번호, 계좌번호, 지문, 아이디 등
- 원칙적으로 삭제조치, 데이터 이용 목적상 필요한 식별자는 비식별 조치 후 활용
- 속성자: 개인과 관련된 정보로 다른 정보와 쉽게 결합하는 경우 특정 개인을 알아볼 수도 있는 정보
ex) 개인 특성(성별, 연령, 국적, 종교, 흡연, 음주 등), 신체 특성(혈액형, 신장, 몸무게, 병명), 신용 특성(세금 납부액, 소득분위), 경력 특성(학교명, 학년, 성적 등), 전자적 특성(쿠키정보, 접속기록, GPS 데이터), 가족 특성(배우자, 자녀, 부모, 형제 등 가족 정보 등)
② 비식별 조치 방법
- 가명처리 / 총계처리 / 데이터 삭제 / 데이터 범주화 / 데이터 마스킹
2) 가명처리
- 장점: 데이터의 변형 또는 변질 수준이 적음 / 단점: 대체 값 부여 시에도 식별 가능한 고유 속성이 계속 유지됨
① 휴리스틱 가명화
- 몇 가지 정해진 규칙으로 대체하거나 가공해 자세한 개인정보 숨기기, 규칙 노출 시 취약함
- 홍길동, 임꺽정 등으로 이름 대체 등
② 암호화
- 정보 가공시 일정한 규칙 알고리즘 적용해 암호화, 통상적으로 복호화 키(key)를 가지고 있음
- 일방향 암호화를 사용하는 경우: 이론상 복호화가 원칙적으로 불가능, 식별성을 완전히 제거하는 것!
③ 교환 방법
- 기존의 데이터베이스 레코드를 사전에 정해진 외부의 변수(항목)값과 연계하여 교환
3) 총계처리
- 통계 값을 적용해 특정 개인을 식벼할 수 없도록 함
① 부분총계: 데이터셋 내 일정 부분 레코드만 총계 처리함
ex) 40대의 소득 분포 편차가 다른 연령대에 비해 매우 크면 40대 소득만 선별해 평균값 구한 후 각 개인의 소득 값을 해당 평균값으로 대체
② 라운딩: 집계 처리된 값에 대해 올림, 내림, 반올림 기준 적용 ex) 23세 → 20대
③ 재배열: 기존 정보의 값은 유지하면서 개인 식별되지 않도록 데이터 재배열하는 것
ex) 데이터 셋에 포함된 나이, 소득 정조를 개인별로 서로 교환해 재배치!
4) 데이터 삭제
- 장점: 개인 식별요소의 전부 및 일부 삭제 처리가 가능
- 단점: 분석의 다양성과 분석 결과의 유효성, 신뢰성이 저하됨
① 식별자(부분) 삭제
- 원본 데이터에서 식별자를 단순 삭제하는 방법과 일부만 삭제하는 방법
- 남아 있는 정보 그 자체로도 분석의 유효성 가져야 함과 동시에 개인정보 식별 불가여야 함!
② 레코드 삭제: 다른 정보와 뚜렷하게 구별되는 레코드 전체 삭제
③ 식별요소 전부삭제: 잠재적으로 개인을 식별할 수 있는 속성자까지 전부 삭제해 프라이버시 침해 위험을 줄이는 방법
→ 데이터 활용에 필요한 정보까지 사전에 모두 없어지기 때문에 유용성 낮아지는 문제 발생!
5) 데이터 범주화
- 장점: 통계형 데이터 형식이므로 다양한 분석 및 가공 가능
- 단점: 정확한 분석결과 도출 어려움, 데이터 범위 구간 좁혀질 경우 추론 가능성 있음
① 감추기: 명확한 값을 숨기기 위해 데이터의 평균 또는 범주 값으로 변환하는 방식
② 랜덤 라운딩: 수치 데이터를 임의의 수 기준으로 올림 또는 내림하는 기법, 수치 데이터 이외의 경우에도 확장 적용 가능!
ex) 나이, 우편번호 등 수치 정보는 일의 자리, 십의 자리등 뒷 자리 수를 숨기고 앞자리 수만 나타내는 방법 05145 → 05000 등
③ 범위 방법: 수치 데이터를 임의의 수 기준 범위로 설정 ex) 3,300만원 → 3,000~4,000만 원 대체 표기
④ 제어 라운딩: 랜덤 라운딩 방법에서 특정 값 변경할 경우 행과 열의 합이 일치하지 않는 단점 해결을 위해 제어해 일치시키는 기법
6) 데이터 마스킹
- 장점: 개인 식별 요소 제거가 가능, 원 데이터 구조에 대한 변형 적음
- 단점: 마스킹 과도하게 적용할 경우 필요 목적에 활용하기 어려움, 마스킹 수준이 낮으면 특정한 값에 대한 추론 가능
① 임의 잡음 추가: 임의의 숫자 등 잡음을 추가(더하기 또는 곱하기)하는 방법
ex) 실제 생년월일의 6개월의 잡음 추가해, 최소 1일부터 최대 6개월의 날짜가 추가 되어 기존 자료와 오차나도록 함
② 공백과 대체: 일부 또는 전부를 공백 또는 대체문자('*','-' 등이나 전각 기호로 바꿈)
7) 적정성 평가
- k-익명성: 주어진 데이터 집합에서 같은 값이 적어도 k개 이상 존재하도록 함!, 특정 개인을 식별할 확률은 1/k!
- 취약점 ① 동질성 공격 ② 배경지식에 의한 공격
- l-다양성: 동질성 공격 및 배경지식에 의한 공격을 방어하기 위한 모델!, 충분히 다양한 정보를 l개 이상 갖도록 구성
- 취약점 ① 쏠림 공격 ② 유사성 공격
- t-근접성: 정보의 분포를 조정해 정보가 특정 값으로 쏠리거나 유사한 값들이 뭉치는 경우를 방지하도록 함!, 전체 데이터 집합의 정보 분포와 특정 정보 분포의 차이를 t이하로 해 추론 방지, t 수치가 0에 가까울수록 전체 데이터의 분포와 특정 데이터 구간의 분포성 강해짐!
05. 데이터 품질 검증
1) 데이터 품질 관리
① 데이터 품질관리의 정의: 가치성, 정확성, 유용성이 있는 데이터 확보, 신뢰성 있는 데이터 유지
② 데이터 품질 관리의 중요성: 분석 결과의 신뢰성 = 분석데이터의 신뢰성과 직접 연계
- 분석 결과의 신뢰성 확보 / 일원화된 프로세스 / 데이터 활용도 향상 / 양질의 데이터 확보
2) 데이터 품질
① 정형 데이터 품질 기준
- 완전성: 필수항목에 누락이 없어야 함 (개별 완전성, 조건 완전성)
- 유일성: 데이터 항복 유일, 중복되면 X (단독 유일성, 조건 유일성)
- 일관성: 형태가 일관되게 정의되고 서로 일치 (기준코드 일관성, 참조 무결성, 데이터 흐름 일관성, 칼럼 일관성)- 유효성: 정해진 데이터 유효범위 및 도메인 충족 (범위 유효성, 날짜 유효성, 형식 유효성)- 정확성: 실세계에 존재하는 객체의 표현 값이 정확히 반영 (선후관계 정확성, 계산/집계 정확성, 최신성, 업무규칙 정확성)
② 비정형 데이터 품질 기준
- 기능성: 내재된 요구를 만족하는 기능 제공 정도(적절성, 정확성, 상호 운용성, 기능 순응성)
- 신뢰성: 규정된 신뢰 수준 유지, 오류 방지(성숙성, 신뢰 순응성)
- 사용성: 사용자에 의해 이해되고, 선호될 수 있게 하는 정도(이해성, 친밀성, 사용 순응성)
- 효율성: 사용되는 자원의 양에 따라 요구된 성능을 제공하는 정도(시간 효율성, 자원 효율성, 효율 순응성)
- 이식성: 다양한 관경과 상황에서 실행될 가능성(적응성, 공존성, 이식 순응성)
3) 데이터 품질 진단 기법
① 정형 데이터 품질 진단: 데이터 프로파일링 기법 통해 진단
- 메타데이터 수집 및 분석 / 칼럼 속성 분석 / 누락 값 분석 / 값의 허용 범위분석 / 허용 값 목록 분석 / 문자열 패턴 분석 / 날짜 유형 분석 / 기타 특수 도메인 분석 / 유일 값 분석 / 구조 분석
② 비정형 데이터 품질 진단: 비정형 데이터의 품질 진단은 세부 기준을 정해 항목별 체크리스트 작성해 진단
4) 데이터 품질 진단 절차
① 데이터 진단 계획 수립 ② 품질 기준 및 진단 대상 정의 ③ 품질 측정 ④ 품질 측정 결과 분석 ⑤ 데이터 품질 개선
5) 데이터 품질 검증 수행
수집 데이터 품질보증체계 수립 → 품질 점검 수행 → 품질 검증 결과서 작성
- 품질 점검 시 데이터 오류수정 용이하지 않을 경우 데이터 재수집!
예상문제 오답노트
01) 데이터 수집을 위한 시스템 구축 절차로 적절한 것은?
수집 데이터 유형 파악 → 수집 기술 결성 → 아키텍처 수립 → 하드웨어 구출 → 실행환경 구축
18) 휴리스틱 가명화에 대한 설명으로 적절하지 않은 것은?
① 정보 가공 시 일정한 규칙의 알고리즘을 적용하여 암호화함으로써 개인정보를 대체하는 방법이다.
② 식별자에 해당하는 값들을 몇 가지 정해진 규칙으로 대체하거나 사람의 판단에 따라 가공하여 개인정보를 숨긴다.
③ 식별자의 분포를 고려하거나 수집된 자료의 사전 분석을 하지 않고 모든 데이터를 동일한 방법으로 가공한다.
④ 활용할 수 있는 대체 변수에 한계가 있으며, 다른 값으로 대체하는 일정한 규칙이 노출되는 취약점이 있다.
- 1번은 암호화에 대한 설명이다.