0. 들어가며
1. 오전 일과
-- 조건에 맞는 사용자 정보 조회하기
-- 주소와 전화번호를 구분해서 작성하는 것에 유의하기!
-- 주소와 전화번호 작성할때 유용한 함수 concat_ws 활용방법 추가 공부하기!
SELECT gb.writer_id user_id, gu.nickname,
concat(gu.city,' ',gu.street_address1,' ', gu.street_address2) "전체주소",
-- concat_ws(' ',gu.city,gu.street_address1,gu.street_address2) 으로 작성 가능
concat(substr(gu.tlno,1,3),'-',substr(gu.tlno,4,4),'-',substr(gu.tlno,8,4)) "전화번호"
-- concat_ws('-',substr(gu.tlno,1,3),substr(gu.tlno,4,4),substr(gu.tlno,8,4)) 으로 작성 가능
from used_goods_board gb join used_goods_user gu on gb.writer_id=gu.user_id
group by 1
having count(*) >= 3
order by 1 desc ;
Python 기초 강의(파이썬 문법 뽀개기)
#다시 정리 예정
1. 변수 선언과 자료형
변수선언
↓
Text = 'abc' ← 문자형(따옴표에 넣었냐의 차이)
num = 123 ← 숫자형(정수, 실수)
# 숫자형은 다양한 연산이 가능
# 기본적인 사칙연산 +, - , * , /
# //(몫), %(나머지), **(거듭제곱)
right = True ← Bool형(참/거짓)
# 비교 연산자
# >, <, >=, <=, ==, !=
2. 문자열 다루기
# 인덱싱 한글자씩 부를 때
text = 'abcd'
result = text[2] ← 인덱싱
print(result)
→ 'c'
# 슬라이싱 문자열의 일부를 잘라낼 때
#.split('문자열') 특정 문자열로 자르고 싶을 때
text = 'abcd'
result = text.split('c') ← 슬라이싱 #특정 자료형 뒤에 .을 붙이고 쓰는 내장함수 : '메소드(method)'
print(result)
→ ['ab','d']
# 슬라이싱 후 원하는 순서의 결과값 추출 가능
text = 'abcd'
result = text.split('c')[1] ← 슬라이싱
print(result)
→ 'd'
* 추가적인 내용
len() ← 문자열의 길이
.replace(기존문자, 바꿀문자) ← 특정 문자를 다른 문자로 바꾸기
3. 리스트와 딕셔너리
리스트 = [ ] ← 안에 들어있는 자료
len() 함수 사용 가능
인덱스와 슬라이싱 사용 가능
리스트 안에 리스트 사용 가능
리스트의 추가 기능
.append(값) ← 리스트 마지막에 내용 추가
.sort() ← 리스트 정렬
print(값 in 리스트) ← 요소가 리스트에 있는지 확인
딕셔너리 = {} ← 키(key)와 밸류(value)의 쌍으로 이루어진 모음
person = {'name':'bob', 'age':21} ← 와 같은 형태
↑ ↑ ↑ ↑
키 밸류 키 밸류
딕셔너리의 특징
# 빈 딕셔너리 만들기
a = {}
a= dict()
# 딕셔너리는 순서가 없어서 인덱싱 사용 불가!
# 값을 업데이트하거나 새로운 쌍의 자료 추가 가능!
person = {'name':'bob', 'age':21}
person['name'] = 'Robert'
print(person) # {'name':'Robert','age':21} ← name값 업데이트
person['height'] = 174.8
print(person) # {'name':'Robert', 'age':21, 'height':174.8} ← height의 키와 174.8의 밸류 추가
# 키가 있는 곳은 밸류값이 변경하고, 키가 없는 곳은 새롭게 추가
# 딕셔너리 안에 딕셔너리 포함 가능
# in 을 통해 키가 존재하는지 확인 가능!
4. 조건문
if문
if 조건 : # 조건설정
money = 5000
if money > 3800 : # money가 3800 초과이면
print("택시를 타자") # '택시를 타자' 출력
#조건에는 참/거짓(불 자료형)이 들어감
else: # 조건 이외 나머지
elif 조건 : # 또 다른 조건
5. 반복문
for문
fruits = ['사과', '배', '감', '귤']
for fruit in fruits: # for문의 기본 구조 for 변수선언 in 변수 :
print(fruit) # for문에서 선언된 변수 사용
#연습문제 최댓값 구하기
num_list = [1, 2, 3, 6, 3, 2, 4, 5, 6, 2, 4]
count = 0
sum = 0
max = 0
for num in num_list :
if max < num:
max = num
print(max)
6. 함수
def 변수명(입력값) : # def 함수 선언
구조 작성
연습문제
def check_gender(pin) :
num = pin.split('-')[1][0] # int(pin.split('-')[1][0])%2==0 으로 한줄로 표현 가능
if int(num)%2==0 : # int를 통해 문자형을 숫자형으로 변환
print('남성')
else :
print('여성')
my_pin = '200101-3012345'
check_gender(my_pin)
7. 튜플(tuple), 집합(set)
튜플(tuple) : 리스트와 비슷하지만 불변인 자료형
집합(set) : 중복을 제거
8. f-string
출력할 때 빠르고 간단하게 작성 가능!
9. 예외처리
try - except # 남용하면 어느 지점에서 오류가 발생했는지 알 수 없음
10. 파일 가져오기
라이브러리 가져오기도 비슷한 개념
11. 한줄의 마법
if 문
for 문
12. map, lambda, filter (심화내용)
13. 함수 심화 - 매개변수 (심화내용)
*args
**kwargs
14. 클래스
사용법보다 사용시기가 더 중요
2. 오후 일과
데이터 리터러시 - 데이터 문해력
1) 데이터 리터러시의 정의
데이터를 읽는 능력
데이터를 이해하는 능력
데이터를 비판적으로 분석하는 능력
- 결과를 의사소통에 활용할 수 있는 능력
↓
데이터 수집과 데이터 원천을 이해하고,
주어진 데이터에 대한 다양한 활용버을 이해하고,
데이터를 통한 핵심지표를 이해하는 것
2) 데이터 분석에 대한 착각
초심자의 경우 데이터 분석을 배울 때 스킬(SQL, Python, tableau 등)을 먼저 학습
why?
데이터를 잘 분석하면 문제, 목적, 결론이 나올 것이라고 생각
데이터를 잘 가공하면 유용한 정보를 얻을 수 있다고 생각
* 분석에 실패하면 방법론과 스킬 부족으로 생각
but, 실제는 데이터 분석 이전에 '문제 및 가설 정의'가 더욱 중요★
3) 데이터 해석 오류 사례
4) 데이터 분석 접근법
문제 및 가설 정의 → 데이터 분석 → 결과 해석 및 액션 도출
생각 작업 생각
문제 및 가설 정의부터 단단하게 설정이 필요!
'왜?'를 항상 생각해야 함
문제 정의
풀고자 하는 문제를 명확하게 정의
1) 문제 정의
데이터 분석 프로젝트의 성공을 위한 초석
분석하려는 특정 상황이나 현성에 대한 명확하고 구체적인 진술
프로젝트의 목표를 설정하고 분석 방향을 설정
2) 문제 정의 사례
추상적 표현 작성 X
- 구체적인 목표성과 전략에 대해 작성
3) 문제 정의 방법론
MECE(Mutually Exclusive, Collectively Exhaustive)
문제 해결과 분석에서 널리 사용
상호 배타적이며, 전체적으로 포괄적
중복과 누락이 없도록 주의
로직 트리(Logic Tree)
MECE원칙을 기반으로 더 작고 관리하기 쉬운 하위 문제로 분해하는데 사용
상위에서 하위 문제로 계층적으로 접근
→ 문제 정의의 핵심은 'So What', 'Why So'이며,
오래 혼자 깊게 생각해보거나 타인과 소통하는 등 여러 방법을 활용
데이터의 유형
1) 정성적 데이터 vs 정량적 데이터
정성적 데이터 - 비수치적 정보
정량적 데이터 - 수치적으로 표현되는 정보
정성적 데이터 정량적 데이터
유형 정형, 반정형 데이터 비정형 데이터
특징 및 관점 주로 객관적 내용 주로 주관적 내용
구성 및 형태 수치나 기호 문자나 언어
위치 DBMS 등 내부 웹사이트 등 외부
분석 용이 어려움
→ 비즈니스 목적을 달성하기 위해서는 두 가지의 데이터를 적절하게 활용해야함
2) 정량적 데이터 사례
- 인구 통계 데이터
- 수치형 설문조사 데이터
- 비즈니스 데이터
- 행동 로그 데이터
- 마케팅 데이터
3) 정량적 데이터 활용
DAU(Daily Active User), 재방문 비율(Retention) 등
NPS 지표
통계적 분석 적용 등
지표 설정
1) 지표란
구체적이고 측정 가능한 기준
핵심 정보를 제공
'어떤 결과를 기대하는가?'에 대한 정량화된 기준
(메인 지표 + 목표 달성을 위한 서브 지표로 구성)
2) 주요 지표 이해
활성 유저(Active User)
AU 정의 기준에 따라 이탈 유저가 정의
기준이 낮을 수록 AU ↑, 정밀도 ↓ (AU ↔ 정밀도 = 반비례)
※ 주요 지표 정리
DAU, WAU, MAU - 일, 주, 월별 활성 유저
CVR(Conversion Rate) - 전환율
CTR(Click Through Rate) - 클릭률
(1) 재방문율(Retention Ratio)
앱서비스 성장에서 중요한 지표
측정방법
- N-Day 리텐션 - 사용자가 매일 접속하는 서비스에서 활용
- Unbounded 리텐션 - 정기적으로 반복해서 방문하는 서비스가 아닐 경우
- Bracket 리텐션 - 지정한 구간으로 나누어 서비스 사용여부 확인
(2) 퍼널(Funnel)
목표 달성 할 때까지의 과정
AARRR - 디지털 마케팅 시 활용하는 프레임워크
Acquisition(유입) - Activation(활성화) - Retention(재방문) - Revenue(수입) - Referral(추천)
(3) LTV(Life Time Value, 고객평생가치)
꾸준한 모니터링 필요
3) 북극성 지표
제품/서비스의 성공을 정의하여 Core Value로 가장 잘 나타낸 것!
기업의 모든 자원을 활용하여 달성해야하는 최우선 목표이며 선행지표
결론 도출
1) 결과 vs 결론
결과 - 계산과 분석을 해서 나온 결과물
결론 - 분석된 데이터 결과를 바탕으로 이끌어낸 의마나 통찰
→ 결과를 통해 결론으로 넘어가는 과정이 필요
(주의할 점, 데이터를 통해 알 수 있는 범위에서만 생각해야함)
2) 결론을 잘 정리하는 법
당시 목적을 떠올리며 정리
결론을 공유할 대상이 누구이며, 어떻게 변화하길 원하는지 생각
단순하고 쉽게 전달
흥미유발(중요하고 흥미 위주로 공유)
대상자의 관점에서의 접근(지식의 저주에 주의)
시각화 팁(직관적으로 이해할 수 있도록 구성 + 범례와 단위 표현)
결론 보고서에 쓰면 좋은 플로우
3) 데이터 리터러시란?
단순히 데이터를 읽고 분석하는 과정이 아님
'왜?'를 항상 생각하고, 데이터에 의존하지 않고 스스로 목적과 문제를 정의한 이후에
데이터 분석을 통해 결과 해석(→결론 도출) 및 액션 도출을 실시
2장 데이터의 가치와 미래
Ⅰ. 빅데이터의 이해
1. 빅데이터의 이해
(1) 빅데이터의 정의
1) 일반적 정의
빅데이터의 빅(big)에는 단순히 양적인 개념뿐만 아니라 복잡하고 다양한 질적인 개념돠 포함
일반적으로 빅데이터란 큰 용량과 복잡성으로 기존 어플리케이션이나 툴로는 다루기 어려운 데이터셋의 집합을 의미
2) 가트너 정의
3) 매킨지 정의
4) IDC 정의
5) 일본 노무라연구소 정의
6) 더그 래니(Doug Laney)의 정의(3V)★
Volume - 양, Variety - 다양성, Velocity - 속도
7) 마이어쇤베르크와 쿠키어
8) 한국데이터산업진흥원 정의
(2) 빅데이터의 특성
1) 더그 래니의 3V★
Volume - 양, Variety - 다양성, Velocity - 속도
2) 빅데이터의 새로운 특성 4V★★
Value - 가치 or Veracity(정확성) / Visualization - 시각화 or Variability - 가변성
빅데이터 출현 배경
(1) 빅데이터의 출현 배경
1) 데이터의 양적 증가
2) 산업계의 변화 - 양질 전환의 법칙(양적인 변화가 축적되면 질적인 변화도 이루어진다)★
3) 학계의 변화
4) 관련 기술의 발전 - 저장 기술의 발전과 가격하락, 클라우드 컴퓨팅 보편화
(2) 빅데이터의 기능과 변화
1) 빅데이터의 기능★
빅데이터는 "산업혁명의 석탄, 철" - 전반에 혁명적 변화를 가져올 것으로 기대
빅데이터는 "21세기의 원유" - 새로운 범주의 산업을 만들어 낼 것으로 기대
빅데이터는 "렌즈" - 산업 발전에 큰 영향을 줄 것으로 기대
빅데이터는 "플랫폼" - 구조물로서 다양한 서드파티 비즈니스에 활용될 것으로 기대
2) 빅데이터가 만들어내는 변화 (후 - 전 - 양 - 상)★
사전처리→사후처리 : 수집된 데이터를 바탕으로 다양한 방식으로 조합하여 인사이트 도출
표본조사→전수조사 : 데이터 처리 비용이 감사호며 데이터 활용 방법이 전수조사로 변화
질→양 : 데이터의 양이 증가할 수록 분석의 정확도가 높아져 양질의 분석 결과 산출에 긍정적
인과관계→상관관계 : 특정 현상의 발생 가능성이 포착, 그에 상응하는 인사이트 도출이 확산
3) 빅데이터의 등장에 따른 변화
Ⅱ 데이터의 가치와 미래
1. 빅데이터의 가치와 영향
(1) 빅데이터의 가치
1) 빅데이터의 가치
어떤 인사이트를 발굴하여 어떻게 활용할 것
but, 빅데이터의 가치를 산정하는 일은 어렵다
2) 빅데이터 가치 산정의 어려움★
- 데이터 활용 방식 : 누가 언제 어떻게 어디서 활용하는지 알 수 없다
- 가치 창출 방식 : 기존에 없던 새로운 가치를 창출
- 분석 기술의 발전 : 새로운 분석 기법의 등장으로 과거의 데이터가 가치 있는 데이터가 되는 경우
(2) 빅데이터의 영향
1) 빅데이터의 영향
- 기업 : 소비자 행동을 분석, 신사업을 발굴
- 정부 : 환경 탐색, 상황 분석, 미래 대응
- 개인 : 스마트라이프로 변화
2) 빅데이터가 가치를 만들어내는 5가지 방식(맥킨지의 빅데이터 보고서, 2011)
- 투명성 제고로 연구개발 및 관리 효율성 제고
- 시뮬레이션을 통한 수요 포착 및 주요 변수 탐색으로 경쟁력 강화
- 고객 세분화 및 맞춤 서비스 제공
- 알고리즘을 활용한 의사결정 보조 혹은 대체
- 비즈니스 모델과 제품, 서비스의 혁신 등
빅데이터와 비즈니스 모델
(1) 빅데이터 활용 사례
1) 기업혁신 사례
2) 정부활용 사례
3) 개인활용 사례
TIP. 미래의 빅데이터 활용에 필요한 3요소★
데이터(모든 것의 데이터화), 기술(인공지능, 알고리즘), 인력(데이터 사이언티스트, 알고리즈미스트)
(2) 7가지 빅데이터 활용 기본 테크닉 ★★★
1) 연관 규칙 학습 - 어떤 변수 간에 주목할 만한 상관 관계가 있는지를 찾는 방법
2) 유형분석 - 새로운 사건이 속할 범주를 찾아내는 방법
3) 유전 알고리즘 - '최적화'가 필요한 문제의 해결책을 점진적으로 진화시켜 나가는 방법
4) 기계학습=머신러닝 - 데이터로부터 규칙을 찾고 이러한 규칙을 활용해 '예측"하는 데 초점을 둔 방법
5) 회귀분석 - 독립변수를 조작하면서 종속변수가 어떻게 변하는지를 보며 수치형으로 이루어진 두 변인의 관계를 파악하는 방법
6) 감정분석 - 특정 주제에 대해 말하거나 글을 쓴 사람의 감정을 분석하는 방법(특히, 비정형 데이터 마이닝의 대표적인 기법)
7) 소셜 네트워크 분석 - 사회 관계망 분석, 오피니언 리더 즉, 영향력 있는 사람을 찾아내고 고객 간 소셜 관계를 파악
빅데이터의 위기 요인과 통제 방안
(1) 위기요인 ★★★
1) 사생활 침해 - 개인의 사생활 침해 위협을 넘어 사회 경제적 위협
2) 책임 원칙 훼손 - 분석 대상이 되는 사람들이 예측 알고리즘의 희생이 될 가능성 예) 영화 <마이너리티 리포트>
3) 데이터 오용 - 데이터 과신 또는 잘못된 지표의 사용으로 인한 잘못된 인사이트 or 과거 데이터 분석을 통한 창조적인 미래 예측 등
(2) 통제 방안 ★★★
1) 사생활 침해의 통제 방안 → '동의'에서 '책임'으로
2) 책임 원칙 훼손의 통제 방안 → 결과 기반 책임 원칙 고수
3) 알고리즘 접근 허용 - 피해 발생 시 발생한 이유를 확인하기 위해 알고리즘에 접근하여 피해자 구제
PS. 개인정보 비식별 기술
Ⅲ. 가치창조를 위한 데이터 사이언스와 전략 인사이트
1. 빅데이터 분석과 전략 인사이트
(1) 빅데이터 열풍과 회의론
1) 빅데이터에 대한 관심과 기대
2) 빅데이터 회의론의 원인 - 부정적 학습효과, 과대 포장
(2) 빅데이터 분석의 핵심은 'Big'이 아닌 '인사이트'
1) '크기'가 아니라 '인사이트' - 빅데이터와 관련된 걸림돌 '비용'이 아니라 '분석적 방법과 성과에 대한 이해 부족'
2) 전략적 인사이트의 중요성
(3) 일차원적 분석 vs. 전략 도출을 위한 가치 기반 분석
1) 일차원적 분석(산업별) ★★
- 금융서비스 신용점수 산정, 사기 탐지, 가격 책정, 프로그램 트레이딩, 클레임 분석, 고객 수익성 분석
- 에너지 트레이딩, 공급/수요 예측
- 병원 가격 책정, 고객 로열티, 수익 관리
- 정부 사기탐지, 사례관리, 범죄방지, 수익최적화
- 소매원 판촉, 매대 관리, 수요 예측, 재고 보충, 가격 및 제조 최적화
- 제조업 공급사슬 최적화, 수요 예측, 재고 보충, 보증서 분석, 맞춤형 상품 개발, 신상품 개발
- 운송업 일정 관리, 노선 배정, 수익 관리
- 헬스케어 약품 거래, 예비 진단, 질병 관리
- 커뮤니케이션 가격 계획 최적화, 고객 보유, 수요 예측, 생산 능력 계획, 네트워크 최적화, 고객 수익성 관리
- 서비스 콜센터 직원 관리, 서비스-수익 사슬 관리
- 온라인 웹 매트릭스, 사이트 설계, 고객 추천
- 모든사업 성과 관리
2) 전략 도출을 위한 가치 기반 분석
- 일차적 분석을 통해서도 해당 부서나 업무 영역에서는 상당한 효과
but, 내부 문제에만 포커스를 두고 있으면 비즈니스 성공에 핵심적인 역할을 기대하기 어렵다
전략 인사이트 도출을 위해 필요한 역량
(1) 데이터 사이언스에 대한 이해와 역할
1) 데이터 사이언스에 대한 이해
(2) '데이터 사이언스'와 '데이터 사이언티스티'
1) 데이터 사이언스 구성 요소★★
Analytics : 수학, 확률 모델, 머신러닝, 분석학, 패턴 인식과 학습, 불확실성 모델링 등
IT(Data Management) : 프로그래밍, 데이터 엔지니어링, 데이터 웨어하우징 등
비즈니스 분석 : 커뮤니케이션, 프레젠테이션, 스토리텔링, 시각화 등
2) 데이터 사이언티스트에게 요구되는 역량★★★
하드스킬 : 빅데이터에 대한 이론적 지식 + 분석 기술에 대한 숙련
소프트스킬 : 통찰력 있는 분석 + 설들력 있는 전달 + 다분야 간 협력
(3) 데이터 사이언스: 과학과 인문학의 교차로
1) 전략과 인사이트 도출을 위한 인문학 - 소프트 스킬의 출처는 인문학
2) 인문학적 사고의 특성
빅데이터 그리고 데이터 사이언스의 미래
(1) 가치 패러다임의 변화
1) 가치 패러다임
2) 가치 패러다임의 변화
과거 - 현재 - 미래
디지털화 연결 에이전시
(2) 데이터 사이언스의 한계와 인문학
1) 데이터 사이언스의 한계
2) 데이터 사이언티스트에게 요구되는 인문학
3. 마치며