[SQL] Data - from 탈잉

Ik·2022년 7월 25일
0

Data

목록 보기
20/34
  •  참고
    • 세바시 429회 - 데이터로 세상이 다시 한번 바뀝니다

Data?

  • 우리가 남기는 일종의 모든 기록들
    • ex) 커피 구매 - 시간, 위치, 종류, 가격, 결제 수단
      • ex) 스마트폰 - 앱 로그 데이터(앱을 이용 할 때), 무선신호 데이터(스마트폰을 들고 이동할 때, 매장 안으로, 밖으로, 진열대 쪽 등), 결제 데이터
        • 앱 로그 데이터 - 사람이 앱에서 한 모든 행동을 저장해주는 데이터
  • sns를 통해 개개인의 모든 정보가 수집되는 시대
    • 과거에는 데이터가 크기도 작았고 단편적이었지만 현재는 풍부해진 데이터를 이용해 소비자 분석 가능
      • 기업 입장에서 소비자의 니즈를 잘 파악하는 것이 돈을 벌 수 있는 가능성의 증가로 이어지기에 데이터를 많이, 잘 쌓는 것은 중요
        • 데이터의 양과 복잡성 증가 
          • 데이터 전문가 증가

데이터 분석

  • 가설 기반으로 현상을 쪼개서 보는 것

    • ex) 은행 - 대출금 감소추세 분석
      • 대출금 감소
        • 신규와 기존 비교
          • 기존이 줄었을 경우 만기상환, 중도상환
            • 중도상환의 경우 대출개월 수를 기준으로 파악
              • 관련된 프로모션을 기반으로 문제점 파악해 비즈니스와 관련된 기준으로 의사 결정
  • Data Driven Decision - 위에 과정처럼 데이터 분석에 기반한 의사결정 과정

    • 가설
      • 신규 vs 기존, 중도상환 vs 만기상환 등의 질문을 던져 유추하는 것들
      • 가장 핵심이 되는 것은 좋은 질문과 좋은 가설
  • 심슨의 역설

    • 전체적인 추세와 그룹을 나눠서 봤을 때의 추세가 달라지는 경우
      • 특정 의사 결정을 위해 필요한 결과가 전체를 봤을 때와 부분으로 나눠 봤을 때 결과가 다른 것
        • 부분을 나눌 때는 비즈니스적으로 의미가 있을 때까지만 나눔
  • 데이터 분석을

    • 배워야 하는 이유

      • 미스커뮤니케이션으로 인한 무한 루프
      • 데이터를 받고 추가로 가설이 떠올라 요청하는 경우
    • 알고 있다면

      • 제대로 된 요청을 할 수 있다
        • 로우 데이터 - raw data
          • 새롭게 전환이나 가공이 되지 않은 최초의 자료
        • CTR - 클릭 전환율
      • 대시보드에서 느낀 답답함에서 벗어날 수 있다
        • 대시보드 - 주요 성과 지표를 여러 사람이 공유하여 손쉽게 모니터링 할 수 있도록 데이터 및 차트를 구성해놓은 뷰
        • 퍼널 분석 - 단계별로 전환율을 나누어 데이터를 보는 것
      • 데이터라는 명확한 기준으로 의사결정 하므로 내 의견에 힘을 실을 수 있다
        • 데이터 분석에 기반한 의견 개진으로 효율적인 의사결정이 가능하다
      • 새로운 과제를 상상할 수 있다
        • 로그 데이터 - 사람이 앱에서 한 모든 행동을 저장해 주는 데이터
    • 데이터 리터러시 - data literacy

      • 데이터를 읽고 쓸 줄 아는 능력

데이터 분석 프로세스

  • 가설 수립 -> 데이터 전처리 -> 데이터 탐색하기 -> deep-dive 분석 -> 분석 결과 커뮤니케이션
  • 질문 던지기 가설 수립
    • 사람의 힘이 전적으로 필요한 과정
    • 가설을 통해 비즈니스 문제 파악
  • 데이터 전처리
    • 가장 오래걸리면서 힘든 과정 
    • 데이터 클렌징, 데이터 wrangiling 이라고도 부름
      • 데이터의 질이나 문제를 확인하고 이것을 깨끗하게 만드는 과정
    • 가설 검증을 위한 필요한 데이터를 만드는 과정
      • 필요한(쓸만한) 데이터
        • 데이터가 수집되고 있는가
          • 필요한 데이터가 없는 경우도 존재
        • 쓸 수 있는 데이터인가
      • 체크해야되는 중요한 요소
        • 결측치 - missing value
          • 값이 비어있는 경우
          • 숫자의 경우 평균치, 문자의 경우 최빈 값으로 채워줌
        • 중복 데이터
          • 겹치는 데이터 체크
          • 있으면 제거
        • 부정확한 데이터 타입
          • 데이터 타입 
            • 프로그래밍 관점에서 데이터를 식별하는 분류
            • 문자, 숫자, 날짜 등의 속성
          • 적절하게 수정
        • 이상치 - outlier
          • 어떠한 이유로 일반적인 데이터 범위에서 크게 벗어나 있는 값
          • 많지 않다면 제거, 많은 경우는 단순히 제거 불가
  • 데이터 탐색하기 - EDA(exploratory data analysis)
    • 데이터의 특징 파악
  • deep-dive 분석으로 결론 이끌어내기
    • 가설에 맞게 상황을 더 쪼개서 보거나 모델링을 진행하는 단계
    • 특별한 문제가 없는 경우에는 EDA와 deep-dive한 턴에 끝냄
    • 네트워크 분석
      • 여러 주체 간의 상호작용을 분석하는 방법론으로, 사람들의 동선 분석, 소셜네트워크 분석 등에 사용
  • 분석 결과 커뮤니케이션
    • 가장 중요한 단계
    • 전달 대상에 따라 분석 결과 형태와 디테일의 정도가 달라진다
  • e커머스 - electronic commerce
    • 인터넷이나 pc통신을 이용해 상품을 사고 파는 행위

데이터베이스 - DB(database)

  • 데이터가 모아져 있는 곳
  • 공유 목적
    • 데이터 관리 위해 수정 권한 부여
  • DBMS - database management system
    • DB를 만들고 운영하는데 필요한 소프트웨어
    • DB에 사용자의 명령을 전달해주고 DB로부터 사용자에게 data를 꺼내오는 일을 도와줌
  • 체계(RDB와 Non - RDB)
    • RDB - relational database, 관계형
      • 엑셀 시트를 모아둔 형태와 비슷
        • table = 엑실 시트 역할
          • 행 - 가로 줄 = row
            • 각 상품
          • 열 - 세로 줄 = column
            • 상품(=row)의 특징
      • SQL - structured query language
        • RDB와 소통하기 위한 언어
        • 쿼리 - query
          • DB에 무언가를 요청하는 행위
          • 명령한다 = 쿼리를 짠다
        •  ex) ORACLE(비쌈, 안정적), 무료, 오픈소스(MySQL, PostgreSQL)
      • RDBMS
      • 일관적이고 안정적
        • EX) 결제, 유저, 주문, 상품
    • Non-RDB
      • \= NoSQL(not only sql) 
        • SQL은 언어, NoSQL은 DB의 한 종류
        • ex) mongoDB, redis, DynamoDB
      • RDB보다 빠르고 유연
        • ex) 앱/웹로그, 무선신호, 채팅
      • RDB와 상호보완적으로 사용

RDB

  • 각 주제별로 데이터 table 존재
    • ex) 주문, 소비자, 제품 table 등
    • Primary Key
      • \=PK, = Key Value 
      • 여러 개의 컬럼 중 하나의 컬럼만이 이 primary key를 가져갈 수 있다 
      • 주민등록번호 같은 것
      • 중복, 누락 불가, 고유한 값
      • 2개 이상의 table 연결할 때 기준이 됨
  • ERD(entity relationship diagram) 
    • DB에 있는 데이터들을 한눈에 볼 수 있게 펼쳐놓은 그림
    • primary key를 기준으로 table을 연결한 경우 관계를 나타내주는 그림
  • table
    • 데이터 타입 
      • DBMS마다 구분 다름
        • 큰 줄기는 같고 세분화 하냐 안하냐 차이 
      • SQL의 Data type의 경우
        • 문자 - char, string
          • type 앞에 var이 붙으면 고정되어 있지 않고 변할 수 있는 것 뜻함
          • 뒤에 붙는 숫자는 용량
        • 숫자 Numeric - int, float
        • 날짜와 시간 - date(날짜), time(시간), datetime(날짜와 시간), timestamp*
      • 데이터 타입에 따라 우리가 쓸 수 있는 SQL 구문이 달라진다
        • 데이터 타입이 숫자를 나타내는지 문자를 나타내는지 구분 필요
          • 테이블 스키마
            • table 선택 - 스키마를 통해 타입 알 수 있음

데이터 마트

  • 생성

    • CREATE TABLE (데이터 마트 이름) AS
      SELECT...
  • 분석

    • 데이터 마트를 생성해 작업 후 엑셀로 시각화 가능
      • 시각화 할 때 적합한 그래프, 차트 선별 필요
      • 분석함에 필요한 자료들을 SQL로 찾고 엑셀에 전달해 함수를 통해 구하려는 값들은 엑셀을 통해 해주는 것이 효율적
    • 종류
      • 회원 프로파일 분석
      • RFM 분석
      • 재구매율 및 구매 주기 분석
      • 제품 성장률 분석
  • 함수 참고

    • 집계 함수 SUM은 NULL을 계산 X
    • ORDER
         BY  4 DESC;		//왼쪽부터 4번째 열을 내림차순으로 정렬

데이터 분석 tool

  • 엑셀 
    • 간단한 분석
    • 커뮤니케이션, 정보 전달 목적
      • 공유, 수정 불가
    • 로우 데이터 전달
      • 하지만 데이터 양의 한계 존재
  • SQL
    • 기본이자 필수
    • 데이터 추출/전처리
    • 비즈니스 분석
    • SQL은 필수
  • python과 R
    • 가장 많이 쓰임
    • 알고리즘, 모델링 필요할 때
      • 모델링
        • 데이터 사이의 관계를 수학적으로 찾는 것
    • R
      • 통계학자들로부터 유래되어 통계분석 기능과 생태계 풍부
      • 시각화에 뛰어난 ggplot
    • python
    • 기능에 있어 R과 python 큰 차이 X
    • 호환도 잘 됨
  • B.I tool - business intelligence tools
    • 데이터 분석이나 대쉬보드 제작을 더 쉽게 만들어주는 툴
  • 특정 산업에 활용하는 tool들도 존재
  • 어느 tool이 좋다가 아닌 매 상황에 적절한 tool 찾아 이용하는 것이 중요
  • 데이터 분야도 개발과 마찬가지로 빠르게 변화
    • 학습력이 가장 중요

0개의 댓글