데이터분석 > 2주차 > 파트 02 > 0820
Part 5 데이터 활용 시 고려할 점
5-2. 개인정보와 보호
개인식별 정보
- PII(Personally Identifiable Information)
- 말 그대로 개인을 식별할 수 있는 정보
- 개인 식별 정보의 예
- 성명(성/이름), 이메일 주소, 전화번호, 주소, 신용카드정보 등
- 개인 식별 정보의 다른 예
- 몇 가지 조합으로 개인을 식별할 수 있는 경우(준식별자)
- 나이, 주거지, 직장
- 몇 가지 조합으로 개인을 식별할 수 있는 경우(준식별자)
개인식별 정보의 정의 - 대한민국
개인정보보호법 제2조 1항
사람이 사망하는 순간 개인 정보 보호가 되지 않음
미국은 사후 50년까지 보호
개인식별 정보의 정의 - 미국(CCPA)
어떤 개인을 특정하는 것뿐만 아니라 가족을 특정하는 것까지 확장됨
개인식별 정보의 정의 - 유럽 연합
개인정보 보호가 구체적으로 무엇인지 알아보자
개인정보 보호 : 개인정보를 어떤 이유에서든 노출시키지 않는 것뿐만 아니라 더 나아가야 함
- 개인의 정보를 적절한 동의 없이 저장하고 사용하지 않는 것
- 개인의 정보를 적절한 동의 없이 노출하거나 배포하지 않는 것
- 보호를 위한 다양한 법률이 전세계적으로 만들어지고 있음
- 해당 법률 준수가 데이터 카탈로그/거버넌스 도입의 가장 큰 이유
- 또한 개인의 정보주체권이 중요시되는 추세
개인정보 보호법
- 국내
- 개인정보 보호법, 통신사업자 대상의 정보통신망법
- 클라우드 컴퓨팅법
- 미국
- CCPA(California Consumer Privacy Act) / CPRA(California Privacy Rights Act)
- HIPAA(Health Insurance Portability and Accountability Act)
- ePHI(Protected Health Information) and EHR
- Cloud Act, Honest Ads Act, FOSTA, FCC Regulation
- 유럽연합
- GDPR
개인정보 관련 법률 요약
- 개인정보 보호 관련 법령 통합 해설서
- (개인을 알아볼 수 있는 정보) 특정 개인을 알아보기 어려운 정보는 개인정보가 아님
- 아래 의무 수행 시 클라우드에도 개인정보 적재 및 처리 가능
- 개인정보 수집 방법, 내용, 목적, 사전 고지 및 동의
- 개인정보 위탁(AWS, GCP 등)에 대한 사전 고지
- 데이터 해외 이전 시 추가 고지
- 국내 리전 사용 시 불필요
- 저장 및 전송 시 암호화 필요한 정보
- 비밀번호, 바이오 정보, 주민번호, 신용카드번호 등
- 계좌 정보, 여권 번호, 외국인 등록번호
개인정보 수집 항목 - 삼성전자
각 서비스 이용 기록, 구매 기록, AS 관련 정보를 저장
로그 데이터, 쿠키
기기정보, 전화정보, 위치 정보, 음성 정보 등 동의를 받아야 가능한 것도 있음
데이터 백업으로 인해 AWS에 데이터가 백업됨
내부자 vs. 외부 위협
- 내부 사람들의 단순한 실수에서 비롯된 Data Leak
- 기관에 따라 14~37%로 예측
- 예) 구글 문서 공유 세팅 실수
- 외부 위협의 예
- 해커, 랜섬웨어
- 사이버 범죄조직, 국가 후원조직
- 보호가 필요한 중요 정보가 무엇인가?
- 이런 정보들이 정말 우리에게 필요한 정보인가?
- 이 정보에 대한 접근이 정말로 필요한 사람은 누구인가?
- 이 사람들이 정말로 해당 정보가 필요할 때 접근을 하는가?
- 이런 접근들이 모두 기록이 되는가?
- 기록을 주기적으로 감사하는가?
- 1~6번을 잘 고려해야 함
5-3. 개인정보 보호법
GDPR이란?
- 2018년 5월 25일부터 시행된 유럽연합의 개인정보보호 발령
- 유럽 연합 내 모든 회원국에 일괄 적용
- 더 이상 권고가 아님
- 적용 대상 기업
- 유럽연합 내의 회사가 아니여도 적용 가능
- EU 사용자가 있는 웹서비스의 경우 모두 적용 대상이 됨
- 많은 글로벌 회사들이 GDPR 준수를 위해 엄청난 노력을 기울임
- 데이터 카탈로그, 데이터 거버넌스
- 유럽연합 내의 회사가 아니여도 적용 가능
GDPR 위반 시 패널티
- 동 법령 위반 시 과징금 등 행정 처분
- 레벨 1 : 일반적 위반사항
- 대리인 미지정 위반, 유출 통지 위반, 개인정보 처리활동 기록 위반 등
- 전 세계 매출액 2%(이전 해 기준) 또는 1천만 유로(약 125억원) 중 높은 금액
- 레벨 2 : 중요한 위반사항
- 국외이전 규정 위반, 개인정보처리 기본원칙 위반, 정보주체의 권리 보장 의무 위반 등
- 전 세계 매출액 4%(이전 해 기준) 또는 2천만 유로(약 250억원) 중 높은 금액
GDPR 세부사항
- 이전보다 동의 요건 강화(서비스 약관)되었고 아동 정보에 대해 더 강한 보호
- 민감정보의 처리는 원칙 금지(회원국에 따라 달라짐)
- 정보주체의 권리 강화(회사들은 30일 내에 응답해야함)
- 삭제권 : 정보 주체는 본인에 관한 개인정보 삭제를 요구할 권리를 가짐
- 프로파일링 거부권 : 정보주체는 본인에게 중대한 영향을 미치는 사안을 프로파일링 등 자동화된 처리에 의해서만 결정하는 것에 반대할 권리를 가짐
- 처리제한권(신설) : 정보주체는 본인에 관한 개인정보의 처리를 차단하거나 제한을 요구할 권리를 가짐
- 정보이동권(신설) : 정보주체는 본인의 개인정보를 본인 또는 다른 사업자에게 전송토록 요구할 권리를 가짐
큰 회사들은 셀프 서비스 시스템을 만들어 대응함
GDPR vs. CCPA
- 매우 흡사하지만 가장 큰 차이점은 CCPA의 경우 캘리포니아 거주민으로 국한
- CCPA는 2020년 1월 1일부터 효력 발효
- 미국향 회사들의 compliance와 관련된 데이터 거버넌스 활동 증가
- CCPA는 개인 정보를 개인, 가구까지 확장했음
- 캘리포니아에 거주하는 사람들의 개인 정보만 신경쓰게 되어 있음
- 2023년 1월 CCPA는 CPRA(California Privacy Rights Act)로 개정됨
- GDPR과 비슷하게 개인의 정보주체권을 강조
HIPAA(Health Insurance Portability and Accountability Act)
- 다음의 개인 의료 정보 보호를 목적으로 하며 1996년부터 효력 발효
- ePHI(electric Protected Health Infomation) : 개인의 의료 정보가 무엇인지 18개로 정의함
- EHR(Electronic Health Record)에 기록 되어야함
- 개인을 특정하기 위한 진찰/처방/입원 기록이 저장돼있음
- 대략 3개월~6개월 후에 기록됨
HIPAA Penalty
- 2가지 종류가 존재 : Reasonable Cause and Willful Neglect
- Reasonable Cause
- 사건마다 100~500 달러의 벌금이 부과됨
- Willful Negelct
- 벌금의 시작 금액이 10000~50000 달러의 벌금 부과 -> 감옥에 갈 수도 있음
- Reasonable Cause
- 원칙적으로 CCPA나 GDPR과 흡사
- Data Encryption
- Device theft, Email Encryption
- Employee Training
- Data Encryption
- 개인의 사후 50년 동안 보호해야 할 의무가 존재하고 데이터를 암호화하여 송수신 해야 한다.
Part 6 강의 복습 및 마무리
6-1. 강의 복습 및 마무리
- 데이터 문해력이란?
- 데이터 조직이 가치를 만드는 방법은 2가지임
- 데이터를 기반한 의사 결정
- 데이터 기반 의사 결정(Decision Science - 데이터 분석가의 일)
- 데이터 분석가는 조직 구조의 영향을 많이 받음
- 데이터를 기반한 제품 개선
- 데이터 기반 제품 개선(Product Science - 데이터 과학자의 일
- 머신러닝으로 제품 기능 개선, 운영 최적화 통해 비용 절감 등의 일을 함
- 머신러닝의 종류 - 지도학습, 비지도학습, 강화학습
- 지도학습 : 카테고리를 예측하는 Classification, 연속적인 수를 예측하는 Regression이 있다.
- Gen AI를 이용한 생산성 증대
- ChatGPT, 이를 사용한 기업들의 혁신 케이스
- 데이터 활용 시 고려할 점
특강
데이토 조직의 미션은?
신뢰할 수 있는 데이터를 바탕으로 부가 가치 생성
데이터 조직이 하는 일 1 - Decision Science
- 고품질 데이터 기반으로 의사 결정권자에게 입력 제공
- 데이터를 고려한 결정(data informed decisions)을 가능하게 해줌
- vs. 데이터 기반 결정(data driven decisions)
- 예를 들면 데이터 기반 지표 정의, 대시보드와 리포트 생성 등을 수행
- 데이터를 고려한 결정(data informed decisions)을 가능하게 해줌
데이터 조직이 하는 일 2 - Product Science
- 고품질 데이터를 기반으로 사용자 서비스 경험 개선 혹은 프로세스 최적화
- 머신러닝과 같은 알고리즘을 통해 사용자 서비스 경험 개선
- 예) 개인화를 바탕으로 한 추천과 검색 기능 제공
- 공장이라면 공정 과정에서 오류를 최소화 혹은 기기 고장 예측 등을 수행
- 머신러닝과 같은 알고리즘을 통해 사용자 서비스 경험 개선
데이터의 흐름과 데이터 팀의 발전 단계
1. 데이터 인프라 -> 2. 데이터 분석(지표 정의, 시각화) <-> 3. 데이터 과학 적용(사용자 경험 개선-추천, 검색 등의 개인화) -> 서비스에서 직접 생기는 데이터와 써드 파티를 통해 생기는 간접 데이터 -> 1. 데이터 인프라
데이터 팀의 발전 - 1. 데이터 인프라 구축
서비스에서 직접 생기는 데이터와 써드파티를 통해 생기는 간접 데이터 -> 데이터 인프라( ETL -> 데이터 웨어하우스)
데이터 인프라의 구축은 데이터 엔지니어가 수행함
ETL : Extract/Transform/Load
다루는 데이터의 크기가 커지면 빅데이터 처리 기술 습득 필요(Spark)
데이터 웨어하우스
- 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터베이스(SQL 데이터베이스)
- 보통 다음 중 하나를 선택(이 모두 SQL을 지원)
- 클라우드 옵션 : AWS Redshift, 구글 클라우드의 BigQuery, Snowflake 등
- 오픈소스 기반의 Hive/Presto
- 보통 다음 중 하나를 선택(이 모두 SQL을 지원)
- 중요 포인트는 프로덕션 용 데이터베이스와 별개의 데이터베이스여야 한다는 점
- 데이터 웨어하우스의 구축이 진정한 데이터 조직이 되는 첫 번째 스텝
- 클라우드를 사용하는 것이 일반적
- 클라우드에 대해 뒤에서 별도 설명
용어 설명 : 데이터 레이크 vs. 데이터 웨어하우스
데이터 레이크(Data Lake)
- 구조화 데이터 + 비구조화 데이터
- 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움
- 보통은 데이터 웨어하우스보다 몇 배는 더 큰 스토리지
데이터 웨어하우스(Data Warehouse)
- 보존 기한이 있는 구조화된 데이터를 저장하고 처리하는 스토리지
- 보통 BI 툴들(룩커, 태블로, 수퍼셋 등)은 데이터 웨어하우스를 백엔드로 사용함
데이터 웨어하우스와 프로덕션용 데이터베이스에 중복된 데이터가 있는 경우도 있음
프로덕션용 데이터베이스는 웹 서비스 등에 사용되기 때문에 저장 공간이 크지 않음
데이터 팀의 발전 - 2. 데이터 분석 수행
각종 내부/외부 데이터 -> ETL로 넘어온 데이터를 데이터 인프라 안에서 ELT를 통해 사용하기 쉬운 형태의 데이터로 변환함 - > 데이터 분석(지표 정의, 시각화, 리포팅)
이는 데이터 분석가가 맡는 일임
ETL된 데이터를 조합하여 새로운 정보 생성(ELT)
좋은 지표 정의, 대시보드 생성/관리, 데이터 기반 리포트 작성
DBT => ELT를 쉽게 해주는 툴
KPI(Key Performance Indicator)란? 회사 입장에서 중요한 지표
- 조직 내에서 달성하고자 하는 중요한 목표
- 보통 정량적인 숫자가 선호됨
- 예를 들면 매출액 혹은 유료 회원의 수/비율
- KPI의 수는 적을수록 좋음
- 잘 정의된 KPI는 현재 상황을 알고 더 나은 계획을 가능하게 함
- 정량적이기에 시간에 따른 성과를 추적하는 것이 가능
- OKR(Objectives and Key Results)과 같은 목표 설정 프레임워크의 중요한 포인트
시각화 대시보드란?
- 보통 중요한 지표를 시간의 흐름과 함께 보여주는 것이 일반적
- 지표의 경우 3A(Accessible, Actionable, Auditable)가 중요!
데이터 인프라가 있고 데이터 분석을 통해 회사가 나아가야 하는 방향을 제시하고 데이터 과학자가 머신러닝 모델을 통해 제품의 기능을 개선하고, 더 많은 데이터가 쌓이고 더 많은 사용자가 생기고 원하는 지표에 닿을 것임
파트 04 엑셀의 구성요소 - 시트, 셀, 행, 열은 무엇인가?
엑셀에서 셀은 하나하나의 네모 칸
셀의 위치는 알파벳(가로, 열, column)과 숫자(세로, 행, row)로 구분함
각 셀은 열 알파벳과 행 숫자로 구분!
셀들이 모여있는 여러 개인 영역(드래그한 경우) : 레인지
드래그 한 경우 17R x 5C 인 경우 17개의 행, 5개의 열이 선택된 경우
빈 셀에 '='을 놓고 드래그하면 빈 셀에 range가 입력됨. :을 중간에 두고 B2:G13 같은 식으로
컬럼을 클릭하면 B:B라고 나옴
행 전체를 클릭하면 3:3 형태로 나옴
함수란? - 숫자 통계함수(SUM, COUNTA, AVERAGE, MIN, MAX)
=을 적고 함수명, 괄호 안에 함수 인자
=SUM(숫자가 있는 셀들을 여러 개 선택)
IF 함수 - 조건에 만족하는지 판별하기
논리 검사를 수행하여 True/False에 해당하는 값을 반환한다.
=if(logical_test, value if true, value if false)
=if(C2>1000, "고액", "소액")
C2가 1000보다 크면 고액, 작거나 같으면 소액
COUNTIF 함수 - 조건에 만족하는 값의 개수 확인하기
지정한 범위 내에서 조건에 맞는 셀의 개수를 구힘
조건문에 맞는 셀의 개수 세는 함수
COUNTIF(range, criteria)
range : 세어야 하는 것들이 나열된 영역, criteria : 무엇을 세어야 하는지 지정하는 영역
=COUNTIF(J2:J1601, "소액")
=COUNTIF(C2:C1601, ">1000")
SUMIF 함수와 AVERAGEIF 함수 - 조건을 만족하는 합계와 평균 구하기
주어진 조건에 의해 지정된 셀들의 값들을 합한다
SUMIF(range, criteria, [sum_range])
숫자가 아닌 것은 더할 수 없기 때문에 ,로 이어준다.
=SUMIF(J:J, "고액", C:C)
=SUMIF(C:C, ">1000")
# 같은 출력값을 가짐
J를 읽으면서 고액이라면 같은 위치에 있는 C 값을 읽어와서 더해라.
=AVERAGEIF(range, criteria, [average_range)
countif와 sumif를 써서 평균을 구하는 것이 아니라 바로 평균을 구함
=AVERAGEIF(J:J, "고액", C:C)
=M9/M6
=AVERAGEIF(C:C, ">1000")
#같은 값을 가짐
틀고정(셀, 행, 열 고정) 방법 알아보기
데이터가 많을 경우 스크롤을 내렸는데 레이블이 가려져서 안보일 경우 틀고정을 사용할 수 있음
보기 > 틀 고정 > 첫 행 고정
레이블 고정되어 스크롤 내려도 계속 보임
첫 열 고정은 오른쪽으로 옮겨도 첫 열은 계속 보임
둘 다 하려면 틀고정(선택 행/열 고정) 선택한 셀의 왼쪽, 위가 고정됨
단축키로 사용 가능!
OR 함수 - 하나라도 조건에 만족하는지 판별하기
=SUMIFS(C:C,+C:C,">1000",G:G,"Unit1")
청구액이 1000 이상, 서비스 구분이 Unit1인 경우의 개수를 더한 것
둘 중에 하나만 만족하는 경우에 더하는 경우
OR()
하나 이상의 인수가 TRUE이면 TRUE를 반환한다. 인수가 모두 FALSE인 경우에만 FALSE를 반환함
영역이 입력으로 들어감
조건1 | 조건 2 | OR |
TRUE | TRUE | TRUE |
TRUE | FALSE | TRUE |
FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE |
ABS 함수 - 수의 크기 알아보기(절대값)
OR를 적용해서 SUMIF, COUNTIF 사용해보기
청구액의 합계 혹은 개수 구하기
청구액은 음수 양수가 다 있어서 정확한 합계가 이루어지지 않음 -> 절대값으로 SUM
ABS 함수
AND 함수 - 조건을 모두 만족하는지 판별하기
주어진 값 중 하나라도 거짓이 있으면 전체가 거짓이 되는 것
SUMIFS(더하는 영역, 첫번째 조건, 두번째 조건)
=SUMIFS(C:C, C:C, ">1000", G:G, "Unit1")
=SUMIF(L:L, TRUE, C:C)
같은 값을 가짐
C가 1000이 넘는 고액이고 G가 Unit1을 가지는 것
조건문을 통해 AND 열을 만들어 놓고 L에 해당하는 C 값을 더한 것
여러 조건을 만족하는 데이터 찾기(OR + OR / AND + OR)
서비스구분이 Unit1이나 Unit2인 것 중에 청구상태가 환불인 것들을 뽑는 과정
=D2="환불"
=OR(G2="Unit1", G2="Unit2")
=AND(J2:K2)
=G2="Unit1"
=I2="Ligia Williamson"
=OR(J2:K2)
Unit1이고 Ligia Williamson인걸 or연산
=OR(G2="Unit1", I2="Ligia Williamson")
이렇게 해도 됨
=AND(D490="환불", J490=TRUE)