데이터 분석 강의를 패스트캠퍼스에서 듣기 시작하면서 강의 내용등은 대부분 노션에 정리 하기 시작 했다.
노션이 확실히 편리하긴 한데 , 블로그랑 연동 하는 것은 불편해서 강의를 들으면서 받게된 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에서 요구하는 사항이 위에 요약에서 정리한 사항과 비슷한지 비교해보세요.
- 차이점 ( 강의 때 알려주셨던 Google , Naver 와 의 비교 )
- 업무 : Google 과 Naver 가 전반적인 데이터 분석 및 처리에 대한 업무 였다면 , 두 나무는 가상화폐 관련 Data Science 를 컬리는 물류 관련 Data Science 에 대한 업무로 더 도메인에 집중된 업무를 하고 있는 것으로 보인다.
- 공통점
- 업무 : 데이터 수집 , 분석 과 처리 , 알고리즘 및 모델 개발 , 머신러닝 등
- 성격 : 타 부서들 과의 유기적인 협업 능력.
- 경험 : 데이터 분석 및 서비스화 의 경험
- 기술 : 데이터 분석 ( Python ) , 머신러닝/ 딥러닝 ( Tensorflow , Pytorch 등 ) , 데이터 처리 ( SQL ) , Cloud 인프라 ( AWS , GCP , Azure , MLops 등 )
- 공통점
- 그 외 성격 , 경험 , 기술 등에 대해서는 비슷 비슷 해 보인다
- 업무 : Google 과 Naver 가 전반적인 데이터 분석 및 처리에 대한 업무 였다면 , 두 나무는 가상화폐 관련 Data Science 를 컬리는 물류 관련 Data Science 에 대한 업무로 더 도메인에 집중된 업무를 하고 있는 것으로 보인다.
- 개인적인 생각
- 대형 서비스 회사에 비해서 기업의 특성이 분명한 경우에는 업무의 도메인적 성향이 분명하게 나타난다.
- 데이터 사이언티스트를 요구 하는 건지 엔지니어를 요구 하는 건지 구분에 대해서는 불명확해 보인다.
- 특히 두나무의 경우는 클라우드 엔지니어링 기술 까지 요구 하는 것으로 보아 입사 할 경우 , 데이터 사이언티스트를 원하는 건지 인프라 관리를 원하는 건지 불명확하다. 개인 적인 경험으로 봐서는 인프라 관리에 더 초점이 맞춰질 성향이 높아 보인다.
3. 위의 JD들을 보면서 몰랐던 용어들을 모두 적어보세요.
- 데이터 Parsing :
- 어떤 data를 원하는 form으로 만들어 내는 것 , 특정 문서(XML, HTML 등)을 읽어 다른 프로그램이나 서브루틴이 사용할 수 있는 내부의 표현 방식으로 변환해 주는 것
- ex ) 학교 홈페이지의 공지사항(태그 안의 text 내용이 있는 것)을 읽어와서 그 중 텍스트 내용만 따로 저장하는 등의 다른 프로그램이나 서브루틴이 사용할 수 있는 표현방식으로 변경
- OCR : 광학 문자 인식(OCR)은 텍스트 이미지를 기계가 읽을 수 있는 텍스트 포맷으로 변환하는 과정
- FDS : Fraud Detection System( 이상감지시스템) 으로 금융 거래 사기 방지 시스템으로 이해 하면 되겠다.
- MLops : 머신 러닝 운영 시스템 이라고 이해하자 . 추상화 된 개념으로 , 머신 러닝 라이프 사이클을 자동화하여 운영 하는 시스템 . 통합 모델 관리 , 배포 모니터링 까지 포함 .
- 퀀트 : 퀀트란 고도의 수학, 통계지식을 이용해서 투자법칙을 찾아내고 컴퓨터로 적합한 프로그램을 구축해서, 이를 토대로 투자를 행하는 사람을 일컫는 말로 Quantitative의 줄임말
Chapter1 _ 03. Hands On
1. wandb 회원가입을 하고 tutorial을 살펴보세요.
- Wandb
- 최근 핫하게 떠오르고 있는 AI 학습 결과를 관리 하는 대시 보드 라고 했다.
- WandB(Weights & Biases)란 더 나은 모델을 빨리 만들 수 있도록 도와주는 머신러닝 Experiment tracking tool 이라고 소개 한다.
- MLops 를 수행 하는 것이 보통 매우 어렵다고 하는데 , 그 중에 하나가 다양한 feature 들을 모니터링 및 관리 하는 것이라고 들은 적이 있다. WanDB 는 그것 들을 대시보드 형태로 관리 해주는 Tool 이라고 하니 , 매우 유용 하게 사용 될 수 있을 것 같다.

2. AAAI 2022에 accepted된 paper list중에서 제목이 마음에 드는 논문을 2가지 골라보세요.
- AAAI 2022 데이터 사이언스 및 인공지능 분야에서 주목 받고 있는 저널 정도 인 것만 알고 가도록 하자
- 언어 적인 문제를 차치 하고서 , 지금은 내용을 봐도 논문을 읽을 만한 도메인 지식이 현재는 너무 없는 관계로 그냥 이 정도 까지만 아는 걸로 하자.
3. Towards datascience blog의 Data Science 섹션에서 읽어보고 싶은 블로그 2개를 여기에 archiving 해보세요.
- Blog 는 포르폴리오를 표현 하는데 있어서 가장 효율적 인 방법 일 것 같다.
- 다만 그 내용에 있어서 신뢰성을 가질 수 있는 지에 대해서는 논쟁이 있겠지만 , 그건 감안해서 여러 전문가 들이 추천 하는 블로그 위주로 학습을 하는 방법도 있을 것 같다.
Chapter1 _ 03. Hands On
1.Mathematical Model과 Statistical Model에 대한 영문 위키피디아를 읽고, 나름대로 생각한 정의를 정리해보세요.
- 수학적 모델링 , 통계적 모델링 모두 현실세계 에서 벌어지는 모든 현상을 수치화 혹은 데이터 화 하여 , 수학적 공식과 확률 등으로 그 현상을 분석 하고 해결 하기 위한 모델이나 공식 이라고 생각 해도 될 것 같다.
- 모델링 이라는 말이 좀 거창 하게 느껴 진다면 , 수학 이나 물리 공식 정도로 생각 하면 될 것 같다.
- 다만 수학적 모델링은 물리적 , 화학적 , 수치적 현상을 해결 하기 위한 것에 가깝다면 , 통계적 모델링은 다량의 데이터를 기반으로 통계/확률 을 이용하기 때문에 사회적 , 추상적인 현상의 해결에 더 적합 한 것으로 이해 하자.
2.대표적인 머신러닝 모델들을 3가지 정도 찾아서 정리해보세요.
- 지도 학습 : 정답이 정해진 데이터를 가지고 모델이 학습 하는 것으로 주로 Classifcation ( 분류 ) 에 사용 한다. 범주형으로 결론 내어 져야 하는 현상을 분석 하는 것에 용이 하다. 선형 회귀 , Decision Tree , ANN 등이 여기 속한다.
- 비지도 학습 : 정답 정해져 있는 않은 데이터를 가지고 모델을 학습 시키는 것으로 , 레이블이 없느 훈련데이터를 이용하여 시스템이 스스로 학습을 하도록 하는 방법으로 , Clustering , 연관 등이 여기 속한다.
- 강화 학습 : 시스템 이 스스로 학습 하면서 정답에 대한 보상을 받는 방식이며 , 대표적인 모델로 알파고 가 있다.
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 은 블로그 별도 페이지에서 정리 하기로 하자.
'학습자료' 카테고리의 다른 글
| [패스트캠퍼스] 데이터분석 강의 _ 5주차 (0) | 2023.02.01 |
|---|---|
| [패스트캠퍼스] 데이터분석 강의 _ 4주차 (0) | 2023.01.31 |
| [패스트캠퍼스] 데이터분석 강의 _ 3주차 (1) | 2023.01.31 |
| [패스트캠퍼스]데이터분석 강의_ 2주차 (0) | 2023.01.30 |