본문 바로가기

학습자료

[패스트캠퍼스] 데이터분석 강의 1주차.

데이터 분석 강의를 패스트캠퍼스에서 듣기 시작하면서 강의 내용등은 대부분 노션에 정리 하기 시작 했다. 

 노션이 확실히 편리하긴 한데 , 블로그랑 연동 하는 것은 불편해서 강의를 들으면서 받게된  Hand_on 만 따로 추출 해서 블로그에 정리 하였다. 

  

Chapter1 _ 01 . Hands On

1.여러분들이 생각하는 좋은 기업의 Data Scientist JD(Job Description)를 2가지 찾아서 아래에 정리해보세요 

 

데이터 사이언스 ( 인턴 ) _ 두나무 

 **구글 인크루트 참조 

 

[담당업무] 

  • FDS / FDI
  • 업비트 서비스 내 이상거래 및 행동 탐지를 위한 모델 개발
  • 비정형 데이터 처리
  • 암호화폐 백서, 기업공시 문서, 증권사 보고서, 등 여러 형식의 보고서 등의 자동화 처리 모델 개발
  • 데이터 PARSING 및 OCR 모델 등에 대한 연구 진행
  • 추천 모델 개발
  • 유저 로그 데이터를 통한 두나무 서비스 내 추천 모델 개발
  • B2C 금융모델 개발
  • 유저에게 유의미한 B2C 모델 개발
  • 기존 퀀트모델 뿐만 아니라 자연어 처리를 통한 서비스 개발 등 여러 Domain 의 데이터를 활용한 모델 개발

[자격요건]

  • 성격
    • 다양한 직무/직급의 인원과 원활한 커뮤니케이션이 가능하신 분
    • 데이터 처리의 필요성 및 중요성에 대해 공감하시는 분
    • 데이터 수집 단계부터 진행 할 수 있는 분
    • 남들이 시도하지 않은 방법에 대해서 시도하는 분
    • 문제 해결 능력이 뛰어나신 분
  • 경험
    • 자신의 데이터 분석을 어떠한 형태로든 서비스화 시켜본 경험이 있으신 분
    • 다양한 이해관계자와 커뮤니케이션하여 데이터 분석 작업을 진행한 경험이 있으신 분
  • 지식
    • ML 에 대한 이해
    • 금융 데이터 및 금융 산업에 대한 이해
    • 추천 서비스에 대한 이해
    • 데이터 처리 기술에 대한 이해
  • 기술
    • Python (Pandas, Numpy, PyTorch, Tensorflow, Keras, FastAPI 등 라이브러리 경험)
    • AWS (S3, Redshift, RDS, EMR, MWAA 등의 서비스 경험)
    • DB (MySQL, Postgres 등의 DB 경험) • * 저희가 다루는 데이터에 관심이 많은 개발자도 지원 가능 합니다

데이터 사이언스 ( 인턴 ) _ 컬리

 **구글 인크루트 참조 

 

[ 담당 업무 ]

  • 물류 리소스의 효율적인 계획을 위해 지역별, 상품별 등 다양한 조건 별로 미래 수요량을 예측합니다.
  • 수요예측 모델의 정교화를 위해 내/외부 피처를 발굴하고 실험하며, ML 알고리즘의 효과를 검증합니다.
  • 비즈니스 성과를 극대화할 수 있는 상품, Creatives, 채널을 유저에게 효율적으로 전달하기 위한 추천/ 랭킹/타게팅 알고리즘을 개발하고 운영합니다.
  • MLOps 엔지니어와 협업하여 모델 성능 모니터링 및 관리, 업데이트 등의 운영 업무를 진행합니다.
  • 유관 부서와 미팅을 통해 프로젝트 기획 및 방향성 설정, 우선순위 협의를 적극적으로 진행합니다.
  • 작게 시작하여 빠르게 결과를 확인하고, 반복적인 피드백을 통해 점진적으로 모델을 개선해 나갑니다.

[합류하시게 되면 이런 업무를 수행합니다] _ 업무 예시

  • 물류 부문 A 배송팀의 요청
    • “내일부터 A,B,C 지역에 주문이 얼마나 발생할 지 하루 전에 미리 예측해서 제공해주세요. 단 B 지역의 주말 예상 주문량은 예측에서 제외하고, 예측에 기반한 적절한 수준의 배송 담당자 수를 산정해주세요.”
  • 요청 받은 데이터사이언티스트가 해야 할 일
    • 해당 지역의 과거 주문 패턴을 추출하고 EDA 를 통해 분포 등을 시각화하고 주요 패턴을 분석
    • 누락 데이터 및 이상치 처리, 필요시 데이터 삭제/보정 등 전처리 진행
    • 다양한 피처를 설계하고 알고리즘을 실험/검증하여 Best Model을 선정하고 제외/방어 로직 등 설계
    • MLOps 엔지니어와 협업하여 Feature 데이터 적재, 모델 학습 자동화, 예측값 서빙 등 진행
    • 모델 성능을 트래킹하기 위한 대시보드 구축 및 모니터링 (필요시 모델 수정 및 업데이트)
    • 중간 및 최종 결과 발표/공유

 

2. 찾은 2가지의 JD에서 요구하는 사항이 위에 요약에서 정리한 사항과 비슷한지 비교해보세요.

  1. 차이점 ( 강의 때 알려주셨던 Google , Naver 와 의 비교 )
    1. 업무 : Google 과 Naver 가 전반적인 데이터 분석 및 처리에 대한 업무 였다면 , 두 나무는 가상화폐 관련 Data Science 를 컬리는 물류 관련 Data Science 에 대한 업무로 더 도메인에 집중된 업무를 하고 있는 것으로 보인다.
      1. 공통점
        1. 업무 : 데이터 수집 , 분석 과 처리 , 알고리즘 및 모델 개발 , 머신러닝 등
        2. 성격 : 타 부서들 과의 유기적인 협업 능력.
        3. 경험 : 데이터 분석 및 서비스화 의 경험
        4. 기술 : 데이터 분석 ( Python ) , 머신러닝/ 딥러닝 ( Tensorflow , Pytorch 등 ) , 데이터 처리 ( SQL ) , Cloud 인프라 ( AWS , GCP , Azure , MLops 등 )
    2. 그 외 성격 , 경험 , 기술 등에 대해서는 비슷 비슷 해 보인다
  2. 개인적인 생각
    1. 대형 서비스 회사에 비해서 기업의 특성이 분명한 경우에는 업무의 도메인적 성향이 분명하게 나타난다.
    2. 데이터 사이언티스트를 요구 하는 건지 엔지니어를 요구 하는 건지 구분에 대해서는 불명확해 보인다.
    3. 특히 두나무의 경우는 클라우드 엔지니어링 기술 까지 요구 하는 것으로 보아 입사 할 경우 , 데이터 사이언티스트를 원하는 건지 인프라 관리를 원하는 건지 불명확하다. 개인 적인 경험으로 봐서는 인프라 관리에 더 초점이 맞춰질 성향이 높아 보인다.

3. 위의 JD들을 보면서 몰랐던 용어들을 모두 적어보세요.

  1. 데이터 Parsing :
    1. 어떤 data를 원하는 form으로 만들어 내는 것 , 특정 문서(XML, HTML 등)을 읽어 다른 프로그램이나 서브루틴이 사용할 수 있는 내부의 표현 방식으로 변환해 주는 것
    2. ex ) 학교 홈페이지의 공지사항(태그 안의 text 내용이 있는 것)을 읽어와서 그 중 텍스트 내용만 따로 저장하는 등의 다른 프로그램이나 서브루틴이 사용할 수 있는 표현방식으로 변경
  1. OCR : 광학 문자 인식(OCR)은 텍스트 이미지를 기계가 읽을 수 있는 텍스트 포맷으로 변환하는 과정
  2. FDS : Fraud Detection System( 이상감지시스템) 으로 금융 거래 사기 방지 시스템으로 이해 하면 되겠다.
  3. MLops : 머신 러닝 운영 시스템 이라고 이해하자 . 추상화 된 개념으로 , 머신 러닝 라이프 사이클을 자동화하여 운영 하는 시스템 . 통합 모델 관리 , 배포 모니터링 까지 포함 .
  4. 퀀트 : 퀀트란 고도의 수학, 통계지식을 이용해서 투자법칙을 찾아내고 컴퓨터로 적합한 프로그램을 구축해서, 이를 토대로 투자를 행하는 사람을 일컫는 말로 Quantitative의 줄임말

 

Chapter1 _ 03. Hands On

1. wandb 회원가입을 하고 tutorial을 살펴보세요.

  1. Wandb
    1. 최근 핫하게 떠오르고 있는 AI 학습 결과를 관리 하는 대시 보드 라고 했다.
    2. WandB(Weights & Biases)란 더 나은 모델을 빨리 만들 수 있도록 도와주는 머신러닝 Experiment tracking tool 이라고 소개 한다.
    3. MLops 를 수행 하는 것이 보통 매우 어렵다고 하는데 , 그 중에 하나가 다양한 feature 들을 모니터링 및 관리 하는 것이라고 들은 적이 있다. WanDB 는 그것 들을 대시보드 형태로 관리 해주는 Tool 이라고 하니 , 매우 유용 하게 사용 될 수 있을 것 같다.

 

2. AAAI 2022에 accepted된 paper list중에서 제목이 마음에 드는 논문을 2가지 골라보세요.

  1. AAAI 2022 데이터 사이언스 및 인공지능 분야에서 주목 받고 있는 저널 정도 인 것만 알고 가도록 하자
  2. 언어 적인 문제를 차치 하고서 , 지금은 내용을 봐도 논문을 읽을 만한 도메인 지식이 현재는 너무 없는 관계로 그냥 이 정도 까지만 아는 걸로 하자.

3. Towards datascience blog의 Data Science 섹션에서 읽어보고 싶은 블로그 2개를 여기에 archiving 해보세요.

  1. Blog 는 포르폴리오를 표현 하는데 있어서 가장 효율적 인 방법 일 것 같다.
  2. 다만 그 내용에 있어서 신뢰성을 가질 수 있는 지에 대해서는 논쟁이 있겠지만 , 그건 감안해서 여러 전문가 들이 추천 하는 블로그 위주로 학습을 하는 방법도 있을 것 같다.

Chapter1 _ 03. Hands On

1.Mathematical Model과 Statistical Model에 대한 영문 위키피디아를 읽고, 나름대로 생각한 정의를 정리해보세요.

  1. 수학적 모델링 , 통계적 모델링 모두 현실세계 에서 벌어지는 모든 현상을 수치화 혹은 데이터 화 하여 , 수학적 공식과 확률 등으로 그 현상을 분석 하고 해결 하기 위한 모델이나 공식 이라고 생각 해도 될 것 같다.
  2. 모델링 이라는 말이 좀 거창 하게 느껴 진다면 , 수학 이나 물리 공식 정도로 생각 하면 될 것 같다.
  3. 다만 수학적 모델링은 물리적 , 화학적 , 수치적 현상을 해결 하기 위한 것에 가깝다면 , 통계적 모델링은 다량의 데이터를 기반으로 통계/확률 을 이용하기 때문에 사회적 , 추상적인 현상의 해결에 더 적합 한 것으로 이해 하자.

2.대표적인 머신러닝 모델들을 3가지 정도 찾아서 정리해보세요.

  1. 지도 학습 : 정답이 정해진 데이터를 가지고 모델이 학습 하는 것으로 주로 Classifcation ( 분류 ) 에 사용 한다. 범주형으로 결론 내어 져야 하는 현상을 분석 하는 것에 용이 하다. 선형 회귀 , Decision Tree , ANN 등이 여기 속한다.
  2. 비지도 학습 : 정답 정해져 있는 않은 데이터를 가지고 모델을 학습 시키는 것으로 , 레이블이 없느 훈련데이터를 이용하여 시스템이 스스로 학습을 하도록 하는 방법으로 , Clustering , 연관 등이 여기 속한다.
  3. 강화 학습 : 시스템 이 스스로 학습 하면서 정답에 대한 보상을 받는 방식이며 , 대표적인 모델로 알파고 가 있다.

 

Chapter.02 Hands-on

1. 여러분들이 생각하는 좋은 기업의 Data Engineer JD를 2가지 찾아서 아래에 정리해보세요

카카오픽코마 ( 데이터엔지니어 채용 공고 )

[어떤 역할을 해주셔야 하나요]

  • 이런 일을 합니다
    •  MySQL 기반의 데이터베이스에서 다양한 쿼리와 스크립트를 통해 원하는 데이터와 통계 수치를 추출합니다
    • 대량의 사용자 데이터를 빠르게 처리할 수 있는 데이터 분석 플랫폼을 설계하고 구축합니다
    • Python과 같은 프로그래밍 언어를 이용하여 데이터의 실시간 및 배치 처리를 위한 스크립트를 작성합니다.
    • 글로벌 서비스의 지역간 데이터를 효율적으로 연계하고 관리할 수 있는 데이터 아키텍처를 설계하고 만들어나갑니다
  • 그리고 이런 마음가짐이 필요합니다
    • 실제 사용자들이 생산하는 다양한 데이터에서 가능성을 찾아내고 서비스를 성장시키기 위한 인사이트를 찾아내는 과정을 즐기는 태도
    • 글로벌 서비스를 위한 데이터 아키텍처를 고민하고 다양한 개발자들과 협업하여 올바른 구조로 개선해나가는 빙향을 추구하는 자세
    • 기존에 가지고 있는 지식으로만 업무를 처리하지 않고, 새로운 기술과 트렌드를 적용하여 수행하는 업무의 효율성을 개선해나가고자 하는 태도
    • 자신이 알고 있는 / 알아낸 지식을 적극적으로 공유하고 토론하여 팀원들과 함께 완성도 높은 플랫폼을 만들고자 하는 자세

교보문고 ( 데이터엔지니어 채용 공고 )

  • 데이터 분석 파이프라인(Data Pipeline)을 구축하고 교보문고 내/외부에 서비스하기 위한 데이터 Product 개발 • 데이터 거버넌스 정책에 따른 클라우드 기반 분석 인프라 등 환경 구성 • 문제 해결에 적합한 클라우드 제품과 솔루션 검토/연구/실험을 통한 해결 방안 도출
  • 클라우드 기반 Data Lake, Data Warehouse 기반 파이프라인 구축 및 API 제품 개발
  • 데이터 거버넌스 구축을 위한 기술적인 이행
  • 데이터 분석 대시보드 개발 관련 API 개발과 필요 데이터 수집(Crawling)
  • 데이터 관련 클라우드 제품, 솔루션 연구와 실험

 

2. 찾은 2가지의 JD에서 요구하는 사항이 위에 요약에서 정리한 사항과 비슷한지 비교해보세요.

  • 유사점
    • 데이터 혹은 DB 를 운영하기 위한 시스템 구축 과 운영에 대한 Skill 을 요구 한다.
    • DB , Data Lake , Data Warehouse , 클라우드 시스템 운영이 필요한 능력이 요구 된다.
    • 대시 보드 개발 , 파이프라인 구축 , API 개발 등의 업무 가 주가 된다.
    • 데이터 사이언스가 분석과 모델 개발이라고 하면 , 데이터 엔지니어링은 분석 플랫폼을 구축 하고 운영 하여 서비스에 필요로 한 시스템을 개발 하는 업무라고 생각 된다.

 

3. 위의 JD들을 보면서 몰랐던 용어들을 모두 적어보세요.

  • 데이터 파이프라인
    • 데이터 파이프라인은 데이터 소스, 데이터 처리 또는 데이터 전환 단계, 데이터 종착지를 유연하게 연결 하는 가상의 통로 하고 이해 하겠다.
    • Data Lake , Data Warehouse 등이 대표적인 데이터 파이프라인을 구축 하는 플랫폼이다.
    • ETL , ELT 등은 파이프라인에 방식을 정의 하는 용어.
    • Kafka 는 점점 더 복잡해지는 파이프라인들을 Producer 와 Consumer 로 자동화 , 단순화 시키는 최근 떠오르는 파이프라인 자동화 플랫폼이다.
  • 데이터 거버넌스
    • 데이터의 보안, 개인정보 보호, 정확성, 가용성, 사용성을 보장하기 위해 수행하는 모든 작업
    • 데이터는 이용 하기 위해서 정부 , 기업 등의 규정 이라고 생각 하면 되겠다.
    • 크게는 개인정보보 보호 처럼 법적인 부분도 있겠지만 , 작게는 기업 내분에서 메타데이터등의 정규화 등에 내용이 있을 수 있겠다.

Chapter.02 Hands-on

1.서비스 관리자 입장에서 언제 ETL이 좋고, 언제 ELT가 좋을지 고민해보고 정리해보세요.

  • ETL : Extract - Transformation - Load 순으로 진행 되는 데이터 파이프라인
  • ELT : Extract - Load - Transformation 순으로 진행 되는 데이터 파이프라인
  • ETL 은 추출후 적재 되기 전에 DB의 형태로 변환 하는 과정이 많기 때문에 , 한번 설계한 DB 스키마가 자주 변경 되지 않는 환경에서 주로 많이 사용 한다, 다시 말해서 정형데이터를 많이 사용 하는 RDB 가 메인이 되는 시스템 환경에서 사용 한다면 더 효율 적이다.
  • ELT 는 추출된 데이터가 바로 적재되는 구성이기 때문에 , 다양한 데이터 형태를 수집 하는 환경에서 사용 된다. 비정형데이터의 경우 일정한 DB 스키마를 가지기 여럽고 , 파일 형태도 다양 하기 때문에 이런 데이터를 운영 하기에는 ELT 의 형태로 파이프 라인을 구축 하는 것이 훨씬 유용 한다.
  • 성능 적인 면은 당연히 분석에 필요로 한 데이터를 거버넌스에 맞춰서 변환하여 적재한 ETL 이 더 나을 수도 있겠지만 , 다양한 타입의 데이터가 필요로 한 환경에는 ELT 로 우선 많은 데이터를 적재 하는 방식이 더 용이하다.
  • DataWarehouse : ETL , Data Lake: ELT 형태로 대부분 구성 되어 있으며 , 최근에는 이 두가지의 장점만을 합친 Data Lake House 형태의 솔루션 들로 변환 되어 가고 있다.

 

Chaper 2 4와 5장에 있는 hands-on 은 블로그 별도 페이지에서 정리 하기로 하자.