본문 바로가기
AI데이터 엔지니어, 새싹

1주차(1) - [Data] 데이터 리터러시와 파워쿼리를 통한 API 활용

by Leetora 2023. 9. 13.

데이터를 수집을 거치기 위해 해야할 사전 과정

  1. data.go.kr 접속
  2. https://www.data.go.kr/data/3046071/openapi.do
  3. 국민연금공단_국민연금 가입 사업장 내역 / 국토교통부_아파트 전월세 자료 활용 신청
  4. XML(API)

활용신청을 통해 해당 API활용을 할 수 있음


DATA LITERACY

Data Literacy의 정의?

  • Literacy: 문해력 = 글을 읽고 쓸 줄 아는 능력
  • 데이터를 읽고 쓸 줄 아는 능력
  • 데이터 사용 의존도가 높아지는 사회에서 갖춰야할 능력
  • 왜곡된 데이터가 만들어낸 가짜를 구분할 수 있는 기본 능력

즉, 데이터 문해력은 데이터 기획을 한다면 필수적인 능력


DATA LITERACY 하위 역량

  1. 데이터 기획
  2. 데이터 수집
  3. 데이터 이해 및 관리
  4. 데이터 분석
  5. 데이터 시각화

데이터 리터러시의 하위 역량을 모두 탑으로 갖고 있을 순 없음 / 특화 시킬 수 있는 능력을 갖추자

1. 데이터 기획

가설을 잘게 쪼개 기획하는 단계

  • 문제 해결을 위한 가설 설정
  • 세운 가설이 적정한가?

💡 예시

제주도의 대중교통

  • 지하철 / 기차가 다니지 않음
  • 대중교통(버스)의 불편함을 세부화
  • 버스 기사의 불친절함

그렇다면 문제해결을 위해 어떤 데이터가 필요한가
수집할 데이터의 카테고리는?

2. 데이터 수집

즉, 제대로 분석하기 위해 데이터 수집 기획이 맞는가를 재고할 필요가 있음

육하원칙을 기반으로 데이터를 수집할 경우, 디테일한 정보 수집이 가능함.

차현나, 데이터 수집, 스타벅스

국내 1호 데이터 사이언티스트 차현나 인터뷰 https://www.joongang.co.kr/article/23634026#home
WHO: 생년월일 , 성별 , 거주지 , 멤버십

WHAT: 제품기준 정보 / 속성 / 발주

WHEN: 연월시분초 / 요일 / 공휴일

HOW: 결제수단, 쿠폰 사용, 이벤트 참여

WHERE: 매장이름, 주소, 상권

WHY: 민원, 설문조사 등

3. 데이터 관리

수집한 데이터가 깨끗하고 사용 가능한가?

데이터에 오류,변수는 얼마나 있고 추가되지 않은 데이터가 없는가?

양이 방대하다면 관리를 위해 인력 배분 필요

4. 데이터 분석

데이터셋이 내가 하고자 하는 작업에 적합한지

데이터셋을 통해 무엇을 알아낼 수 있을까

결과가 유의미한가?

가설 검증이 되는가?

5. 데이터 시각화

찾아낸 의미를 어떻게 전달할 것인가?
누구에게 전달할 것인가?
데이터를 모르는 사람도 한눈에 의미를 알 수 있는가?
제작된 결과물이 편향되지 않았는가?
데이터 시각화의 기준 또한 인지하고 있어야한다.


VISUAL VOCABULARY 페이지 참조

-목적에 맞는 시각화가 가장 중요
-의사결정권자에게 정확하게 전달이 되는가?

데이터 분석의 순환

  1. 문제정의
  2. 가설설정
  3. 데이터수집
  4. 데이터평가
  5. 데이터분석
  6. 해석 및 결론
  7. 개선조치시행 / 평가

일직선으로 진행하는 것이 아니라, 1과 6을 번갈아가면서 검증의 과정을 거쳐야 한다


DT/DX?

DT와 DX는 모두 디지털 전환을 의미하는 용어.DT는 Digital Transformation의 약어이며, DX는 Digital의 D와 Transformation(전환)의 의미를 갖고 있는 X로 만들어진 합성어

테슬라

기술력을 통해 고객 충성도를 보유
소프트웨어 업데이트를 통해 성능 증진

나이키

데이터를 활용해 고객 만족도 상승
자발적 디자인을 수집해 제품 디자인 활용

국내성공사례

  • 머신러닝 기반 폐기불 발생량 예측 시스템
  • 데이터 수집 / 분석 / 예측 자동화
  • 시설 관리 공단 - 생활폐기물 관리 관공서 즉, 효율적 인원배치를 예측할 필요가 있음
  • 사회구조 / 도시규모 / 생활수준 / 계절 / 기상상황 / 공휴일을 분석

시각화를 통해 폐기물 발생 예상량이 일정 기준 이상인 경우 빠르게 파악 가능

pdf / 엑셀 / 인쇄 등을 통해 유저 편의성 제공

**비용이 0원으로 전혀들지 않았다는 것이 중요

빅데이터 인턴 - 관공서 / 국가 공공기관에서 인턴십 거쳐 경험

실패 사례

데이터를 활용했다고 해서 모든 데이터 분석이 효율적인 건 아님

  • 외국인 여행객 인기 관광지 TOP 10 → 유의미한 결과를 내지 못함
  • 이미지 분류 모델 / 이동경로예측 / 상품추천
  • 설문으로만 진행해도 충분한 결과

‘가치있는’ 데이터 활용을 위해 관점을 바꿔야 한다

“있는 데이터를 어떻게 분석할까?”라는 방식은 X

“비즈니스 성과 창출에 집중 / 문제해결을 위한 데이터를 어떻게 구할 것인가”에 집중

  1. 비즈니스
  2. 서비스
  3. 데이터

데이터는 항상 정답으로 이어지지 않는다.

실무자의 목소리를 들어야만 인사이트를 얻을 수 있는 데이터가 있음

아메리카노 / 라떼의 선호 분석

  • 라떼 언급량 증가
  • 유당불내증 언급량 증가
  • 유당불내증
    • 락토프리
    • 오트 / 귀리
    • 두유
    • 아몬드
  • 즉, 유당불내증을 갖고 있는 사람에게도 팔 수 있는 라떼를 만들자는 인사이트로 이어질 수 있다

맥락을 통해 데이터 기획을 통한 데이터 리터러시가 가장 중요


웹크롤링 - 파워쿼리(노코드)

파이썬을 몰라도 파워쿼리를 통해 학습할 수 있다.

*맥 환경에선 어려움. 때문에 윈도우 바탕으로 진행해야 함

**파워쿼리 / 파이썬으로 가져오기 어려운 경우도 있음. 즉 만능이 아님

파워쿼리: MS EXCEL 내부에 있는 데이터 도구

  • EXTRACT(추출) / TARANSFROM(변환) / LOAD(로드) ETL 툴
  • DB / 클라우드 / SQL 등 다양한 데이터 소스를 로드시켜주는 유용한 툴
  • 데이터 / 파워쿼리 탭이 없다면?
    • 파일 - 옵션 - 리본사용자 지정 - 데이터 / 개발도구 체크

파워쿼리 실습

  1. https://ko.wikipedia.org/wiki/대한민국의아카데미국제영화상_출품작 검색 후 링크 복사
  2. 테이블 주소 복사 - 데이터 탭 클릭 - 데이터 가져오기 - 파일에서 - ‘웹에서’ - 연결
  3. 고르고자 하는 테이블을 선택 - 목록[편집] - 데이터 편집
  4. 첫 행들을 헤더로 올릴 필요가 있으니 - 홈 탭 - ‘첫 행을 머리글’로 사용
  5. 연도에는 회차와 연도가 정보 병합이 되어있음 - 헤더 클릭 - 열 분할 - 구분 기호 기준
  6. 줄바꿈 기준으로 잡아서 변환하면 열 분할 끝 - 닫기 및 로드

복붙하면 되는데 왜 이럴까?

내가 데이터를 추가하지 않아도(새로고침 하면) 바로 로드가 가능하다. 즉, 살아있는 데이터로 추출할 수 있다.

자동 업데이트 데이터를 만들어내는 것이 ETL 자동화의 핵심


실전 예시

Q. 대한민국 사람들이 트로트를 좋아한다는 걸 알아보려면?

  • 장르를 분류하는 데이터를 수집하자
  • 좋아요를 다 더한다면 어떨까?
  • 다른 장르의 좋아요는 어떻게 볼 수 있을까?

유의사항

  • 웹 데이터가 누락되면 새로고침을 해줘야 함
  • 하나만 보고 싶을 때 헤더 클릭 - 다른 열 제거
  • 파워쿼리는 ctrl + z가 안먹힘 / 오른쪽 히스토리(적용된 단계)클릭
  • #(lf) = LINE FEED = 줄바꿈

웹크롤링 - 리스틀리

무료 버전으로는 응용 한계가 있지만 무료로 사용할 수 있다는 장점이 존재

*데이터 리터러시는 굳이 프로그래밍을 통해 경험하지 않아도 가능하다

**직접 언어를 사용하지 않아도 데이터를 크롤링할 수 있고, 업데이트가 가능하다


API를 통해 데이터 크롤링을 해보자

API?(Application Programming Interface):사용자와 데이터 제공자끼리 소통하는 방식

  • 자동화 시스템
  • 예시) 네이버 로그인 / 기상청 데이터
  • 공공데이터 포털을 하나로 → https://data.go.kr
  • 마이페이지 - 데이터활용 - 오픈API - 활용신청현황 - 일반인증키(Encoding/Decoding)
    • 보통 인코딩 활용
  1. https://www.data.go.kr/data/3046071/openapi.do
  2. 국민연금공단_국민연금 가입 사업장 내역
  3. 참고문서(대부분의 이용방법 게재)를 통해 얻을 수 있는 정보 수집

API가 제공하는 정보를 확인 가능

  1. 사업장 정보조회서비스
  2. 상세 정보 조회
  3. 기간별 현황 정보조회

*1번에서 seq값을 얻은 후, 2번과 3번의 답을 얻는다

1번. 기본정보조회

요청 입력 메세지

  • 예시를 통해 이해를 돕는 자료 제공
  • 사업장명 / 사업자등록번호만 필수이기 때문에 사업장명과 사업자등록번호만 알면 된다
  • 필수 항목만 있어도 결과값이 나옴

응답 메세지

  • 사업장의 기본 정보를 조회할 수 있음

예제 활용 예시

  • 서비스 인증키에 해당하는 API를 삽입해 파워쿼리 데이터 API 사용 가능
  • 테이블만 필요하기 때문에 나머지 다 삭제
  • 체크한다면 Table 접두사가 붙어 보기 불편

💡 테이블을 열어야 내부에 있는 데이터를 확인할 수 있음

items → item → 또 한번 열어서 내부 데이터를 확인

2번 세부데이터 알아보기

세부데이터 요청 메세지 → seq를 이전 개요에서 검색해 삽입

예시문:

http://apis.data.go.kr/B552015/NpsBplcInfoInqireService/getDetailInfoSearchseq=36479572&serviceKey=서비스인증키

  • 1번에서 얻은 seq(식별번호)값과 서비스 인증키를 삽입

3번. 기간별 입퇴사자 수 조회

data_crt_ym은 필수항목이 아니기 때문에 입력하지 않는다면 기간이 명확하게 나오지 않음

  • 명확한 날짜로 입퇴자 수를 공시하는 기업은 적다
  • 때문에 data_crt_ym은 지우는 것을 추천

예시:

배달의 민족_ 입사자 수 45 퇴사자 수 19