Curriculum

나만의 데이터 사이언스 커리큘럼

마지막 수정일: 2021.06.02

  • 현재는 Product Data Analyst로 @요기요 에서 일하고있다!
    • 어떤 공부를 했는지는 추가하지 않겠지만, 아래 내용은 모두 살려둘 예정이다!
    • ‘혼자 데이터 공부하려면 뭐부터 해야하지..’ 하는 고민을 하는 사람이 있다면, 이 글이 조금이나마 도움이 되었으면 좋겠다.

데이터 분석가가 되기 위해 공부한 커리큘럼을 정리한 페이지
도서를 제외하면 대부분 무료 온라인 강의로 구성되어있다.

0. 배경 (TMI)

어떤 배경을 갖고있는 사람인지 궁금하실 분들을 위한 나의 배경. TMI주의!

  • 이 글을 쓰고있는 나는,
  • 경영학 학사를 졸업했다.
  • 운이 좋게도, 졸업 전에 스타트업에 마케터로 취업하였다.
  • 취업 후에는 마케팅 데이터 분석, 데이터 매니저 역할을 수행했다.
    • KPI설정 및 모니터링
    • 로그, 매출 데이터 분석 및 보고서/대시보드 작성
    • Ad-hoc 분석 (타 부서 데이터 업무 지원)
    • 데이터 기반 프로젝트 수행(등급 별 고객 특성 분석, 이탈 고객 분석 등)
    • 데이터 관련해서는 위와 같은 업무를 수행했고, Excel, GA를 사용했다.
  • 3년 근무 후, 퇴사하였다.
    • 2달 정도는 평소에 못갔던 여행도 다니고, 하고싶었던 일들(운전연수 등)을 하면서 쉬었다.
    • 동시에 진로를 깊게 고민했고, 데이터 분석, 기획에 강점이 재미있었고 강점이 있다고 생각했기 떄문에 전문가가 되고싶어서 공부를 시작했다.
      • 특히 데이터에서 비즈니스 문제를 찾아내고, 해결하는 과정이 재미있었다.

한 마디로, 비전공자 + 커리어 전환 시도중인 취준생이다.




1. SQL

데이터 조회, 추출을 직접 하기 위해 데이터베이스 기본 및 쿼리 공부

  • 생활코딩 - SQL
    • 이 강의를 이해하면 데이터베이스에 대한 기초 지식을 얻을 수 있고, Insert, Select, Update, Delete에 관련한 기초적인 쿼리문을 짤 수 있다.
    • egoing님의 매력적인 목소리와 군더더기없는 설명은 정말 최고
  • 문제 풀어보기 - 프로그래머스, 해커랭크
    • SQL문을 익히는 것 자체는 상대적으로 어렵지 않아서, 기초를 공부하고 바로 문제를 푸는 것을 추천한다.
    • 프로그래머스 문제를 먼저 모두 푼 후, 해커랭크 문제를 풀어보면 좋다.
      • 해커랭크는 영문사이트이기도 하고, 문제 난이도가 조금 더 어렵다.
      • 해커랭크에서 문제를 많이 풀면 이런 배지도 준다.
      • Image
  • 도서) 데이터 분석을 위한 SQL레시피, SQL 레벨업
    • 이 책들을 공부하면 쿼리를 좀 더 효과적으로 짤 수 있고, 분석을 위해 어떤 쿼리를 짜야하는지 알 수 있다.
      • 데이터 분석을 위한 SQL레시피는 보다 분석을 위한 쿼리에 집중되어있고,
      • SQL레벨업은 속도, 메모리 최적화 등의 성능 개선에 초점이 맞춰져있다.
    • (아직 나도 다 읽지는 못했다….!)
  • 기타
    • SQL은 회사마다 부서마다 자주 쓰는 쿼리가 다르다고 한다.
    • 자주 쓰는 쿼리는 회사에 가서 익히겠지만,
      • 언제나 그렇듯, 씨앗을 뿌리지 않으면 비가 와도 싹이 나지 않는다. (오오 명언)

2. Python 기초

데이터 사이언스 입문자가 가장 먼저 검색하는 것: ‘R이냐 Python이냐?’
내 생각: 고민만 하지 말고 뭐든 빨리 하자. 내 경우는 Python부터.

  • 점프 투 파이썬
    • 기초를 자세히 익힐 수 있고, 까먹었을 때 다시 찾아와서 공부하게되는 수학의 정석 Python ver.
    • wikidocs에 무료로 공개되어있다.
  • 김왼손님의 유튜브 - 입문편, 기초편
    • 이 강의를 통해 파이썬의 기초를 쉽게 익힐 수 있다.
    • 김왼손님은 입문자들을 위한 강의로 유명하시다. 설명도 잘 하고, 차근차근 하나씩 짚어주신다.

3. R

분석가들을 위한 최강의 무기, 나도 가져보자

  • 도서) 쉽게 배우는 R 데이터분석
    • R을 쉽게 익힐 수 있고, 간단한 분석들을 진행해볼 수 있다.
    • dplyr, ggplot2를 활용한 데이터 정제, 분석 및 시각화가 주를 이룬다.
    • 확실히 python 하나를 잘 익혀놓으니, R은 금방 배우는 것 같다. 같이 공부했으면 진짜 헷갈렸을듯.
    • 저자는 데이터 분석가 김영우 님이다.
      • 내가 매일 꼬박 듣는 데이터홀릭의 진행자(?)
      • 데이터 분석 커뮤니티 운영자

4. 통계 공부

분석이 밥짓는 과정이라면, 통계는 쌀이 아닐까?

  • 유튜브) 노경섭님의 기초통계학 강의
    • 기초통계에 대해 기본적인 개념을 ‘가볍게’ 공부할 수 있다.
  • 도서) 데이터 과학을 위한 통계
    • 데이터 과학에서 자주 쓰이는 통계에 대해 학습할 수 있다.
    • 개념이 자세히 잘 설명되어있고, 정통적 통계와 데이터 과학에서 자주 쓰이는 통계가 어떻게 다른지 알 수 있다.
    • 아쉬웠던 점은, 책 안의 코드가 R기반의 코드이다.(나는 파이썬인데 ㅠ)
      • 물론 구글링을 하면, 파이썬으로 구현한 코드를 찾을 수 있다.
  • 도서) 빅데이터를 지배하는 통계의 힘
    • 실무에서 통계가 어떻게 쓰이는 지 알 수 있다.
    • 개념책은 아니고, 보다 실무 중심 책이다.
      • 예를 들면, 언제 평균을 쓰고 언제 중앙값을 쓰는지 등?
  • 기타

5. 머신러닝/딥러닝

요즘 가장 핫한….

  • 코세라) Andrew NG교수님의 머신러닝 강의
    • 머신러닝이 무엇인지, 귀와 뇌에 쏙쏙 박아주신다.
    • 머신러닝 입문자들의 바이블이다. 다만, 음질이 좋지 않다는 것은 아쉽다.
  • Sung Kim교수님의 모두의 머신러닝/딥러닝 강의
    • 이 강의로 공부하면 머신러닝, 딥러닝의 개념에 대해 이해할 수 있다.
    • 한국판 머신러닝/딥러닝 바이블! 일단 몇 안 되는 한국어 강의라는 점과, 설명을 쉽게 잘 해주신다는 장점이 있다.
  • 도서) 파이썬 라이브러리를 활용한 머신러닝
    • 머신러닝의 개념과 구현 방법을 이해할 수 있다.
    • 머신러닝 라이브러리인 Scikit-learn의 개발자분이 쓴 책이다.
      • 따라서, Scikit-learn을 어떻게 구현하는지 자세히 공부할 수 있다.
      • 개념만 공부하는 것이 아니라, 직접 코드를 치며 공부할 수 있다는 점이 장점이다.
      • 다만, 개념이나 수식 등을 자세하게 설명하기보단 코드 중심적이기 때문에, 이론을 어느정도 공부한 후(혹은 같이) 공부하길 추천한다.
  • 도서) 핸즈온 머신러닝 개정판(2판)
    • 머신러닝과 딥러닝, 강화학습까지 살펴볼 수 있다.
    • 시중에 있는 책중에 가장 교과서스러운 책! 최근에 개정되며 많은 내용이 추가되었다. 나는 아직 머신러닝 파트 공부중.
    • 거의 1천페이지에 육박한다.. 무겁다..
  • 도서) 밑바닥부터 시작하는 딥러닝(1)
    • 딥러닝의 기본 컨셉인 퍼셉트론부터 CNN까지 ‘밑바닥부터’ 공부할 수 있다.
    • 개념을 정말 쉽게 정리했고, 이를 프레임워크 없이 numpy로 모두 구현하기 때문에 이해하기에 더 좋았다.
    • 입문자를 위해 좋은 책이고, 더 딥하게 공부하려면 다른 책이 좋을 것 같다.
    • 책은 총 2권인데, 2권에선 주로 RNN에 대해 다룬다.
  • 기타
    • 부스트코스 MOOC) 머신러닝을 위한 Python
      • 파이썬에서 어떻게 머신러닝을 구현하는지에 대한 강의로, 추후에 수강할 예정이다.
    • 머신러닝/딥러닝은 워낙 좋은 자료들이 많다.
      • 그래서 뭘 봐라! 가 정답은 아닌 것 같다.
      • 이 커리큘럼의 목적은 머신러닝 엔지니어 수준의 지식이 아니라, 머신러닝이 무엇인지, 종류는 어떤 것이 있는지, 어떻게 작동하며 구현하는지 등을 습득하는 것이다.
      • 나는 기본서(개념)를 하나 공부하고, 모르는 것들을 구글에 검색하는 방법으로 공부하고있다.

6. Python 라이브러리

분석을 할 때 아주 유용한 라이브러리를 공부하자.
공부를 위한 공부보다는, 직접 코드를 써가면서 학습했다.

  • 워낙 많은 라이브러리가 있지만, 이 정도는 알아야겠다 생각한 라이브러리를 소개한다.
    • Pandas
      • 데이터를 엑셀처럼 쉽게 다룰 수 있도록 해주는 분석 필수 라이브러리
      • 구글링으로 공부하고, 제대로 공부하고있는지 점검하기 위해 이 문제를 풀었다.
    • Numpy
      • 고성능 수치 계산, 행렬 계산 등에 사용된다.
      • 역시, 구글링 공부 후 문제를 풀었다.
    • Matplotlib, Seaborn, Plotly, Folium
      • 시각화 라이브러리
    • BeautifulSoup, Selenium
      • 데이터 수집, 파싱 등에 사용되는 라이브러리.
      • 웹 크롤러를 만들기 위해 공부했다.

7. 알고리즘 공부

코딩테스트, 코딩테스트, 코딩테스트

  • 해커랭크, 프로그래머스, 코딩도장 등에서 문제를 풀어볼 수 있다.
  • 논리적 사고, 구현 능력 등을 위해 꾸준히 공부하고있다.
  • 분석가도 코딩테스트를 보는 경우가 많기 때문에, 이를 준비하기 위해서는 많이 풀어보는 것이 정답
  • 유튜브나 인프런 등에 알고리즘 강의는 검색하면 굉장히 많이 나온다!

8. 수학

수하아아아아아 아아아아악

  • 수학의 정석
    • 미적분, 선형대수 등을 공부하기 위해 고등수학부터 다시 리뷰했다.
    • 개념 위주로 공부했고, 문제는 조금씩 풀어봤다.(간단한 문제들 위주로)
    • 수학(하), 수학(상), 수학 1 을 공부했다.
      • 당근마켓에서 위 세 권을 총 8,000원에 샀다!!
  • 칸아카데미
    • 고등수학부터 미적분, 선형대수 등 대학수학까지 무료로!! 공부할 수 있다.
    • Precalculus 내 몇 과목을 리뷰했고, 현재는 미분을 듣고있다.
    • 참고로, 언어를 영어로 설정해야 더 많은 강의를 볼 수 있음!
  • Edwith MOOC) 주재걸 교수님의 인공지능을 위한 선형대수
    • 기계학습의 관점에서 선형대수를 알기 쉽게 설명해주신다. 중간정도 들었는데, 내용이 빨라서 다른 도서와 강의를 먼저 듣고 다시 들을 예정.
  • 3Blue1Brown의 Essence of linear algebra
    • 선형대수학이 왜 공간을 이야기하는 학문인지 단번에 이해되는 강의
    • 선형대수를 직관적으로 알 수 있고, 본질에 대해 공부할 수 있다.
      • 그래픽을 활용해서 벡터들의 움직임을 보여주는데, 단번에 이해됐다.
    • 참고!
      • 몇몇 영상은 자막 없이 그냥 영어로 들어야 더 이해가 잘 되더라.
      • 수학의 정석처럼 법칙을 증명하는 법 등을 알려주는 강의는 아니니 이 점 참고!

9. 데이터 분석 프로젝트

공부한 내용을 활용해보기

  • Kaggle
    • 데이터 분석 대회 중 가장 유명한 대회
    • 입문용으로 타이타닉 생존자 예측, 집값 예측, 자전거 수요 예측 등을 주로 진행한다.
    • 다양한 주제의 데이터들이 있고, 대회에서 좋은 성과를 내면 상금과 메달도 얻을 수 있다.
  • 도서) 파이썬으로 데이터 주무르기
    • 이 책을 공부하면, 데이터 수집 - 분석 과정을 경험해볼 수 있다.
    • 다만, 책에서 사용되는 라이브러리들(Pandas, Numpy, Folium, Selenium 등)은 직접 공부해야한다.
    • 다만, 오타나 라이브러리 업데이트로 인한 변경점, 코드 누락 등이 종종 있기 떄문에, 이 책을 쓰신 분의 Github를 꼭 확인해가며 공부해야한다.
  • 개인 프로젝트
    • 많은 분들이 작은 데이터라도 직접 수집해서 분석해보는 것이 중요하다고 한다.
    • 공감이 가는것이, 경험상 실무에서 얻게되는 데이터는 굉장히 더럽다.
      • Kaggle이나 공공데이터처럼 정제가 되어있는 데이터는 거의 없었다.
    • 대단한 결과물이 아니더라도, 수집과 전처리를 직접 해보고 분석을 해보는 과정을 통해 엄청나게 많은 지식을 얻게 되는 것 같다.
    • 나의 경우는, 최근에 성수동 카페 별점 분석 프로젝트를 진행했다.

10. 기타

알아두면 좋은 것들, 혹은 나중에 공부할 것들

  • Git
    • Git이 무엇인지 알아보고, 내가 공부한 내용들을 저장해보자.
    • 일단 나는 구글링을 통해 대략적인 개념을 파악했고, 추후에 자료들을 통해 더 자세히 알아볼 예정이다.
    • Git이란? 이라고만 구글에 검색해도 이런 좋은 자료 들이 나온다.
  • Markdown 문법
    • ihoneymon님의 Github
    • 공부한 내용이나, 프로젝트 내용을 정리하기 위해서는 가독성을 높이기 위한 방법을 고민해야한다.
    • Markdown 문법을 공부하면, 가독성에 대한 고민을 어느정도 해결할 수 있다.


끝으로

  • 이 커리큘럼이 정답이라는 것은 절대 아니다.
  • 오히려 지금까지 내가 어떤 공부를 했는지 요약하고자 하는 목적이 크다.
    • 혹시나 누군가에게 도움이 된다면 정말 다행!