데이터 사이언스 석사 – 이렇게 돌아간다

데이터 사이언스 석사 프로그램에 관심있다면서 어떤 내용을 배우는지, 어떻게 준비해야되는지, 그리고 졸업하고나면 어떻게 진로가 잡히는지 물어보는 분들이 참 많다. 

필자는 데이터 사이언스 석사 프로그램에서 공부한 적이 없고, 학위 중에 데이터 사이언스도 없어서 정확한 답변을 해 줄 수 없겠지만, 그래도 일단 알고 있는 내용들을 많은 분들과 공유하는 게 좋을성 싶어 짧게 정리해본다. 다른 의견이 있으신 분들은 아래에 댓글을 달아주시면 좋겠다. (필자의 개인적인 백그라운드는 여기의 맨 마지막 질답)

 

1. 학위 과정 전반 – 수업, 생활 등등

데이터 사이언스라는 필드가 생긴지 얼마되지 않았기 때문에, Coursework은 기존 필드 출신들 눈에는 “뒤죽박죽”처럼 보인다. 학교마다 약간 차이는 있지만 전반적으로 보면 기본적인 Computer Science, Statistics, Math가 들어가 있고, 그위에 Data Visualization, Data Analysis 처럼 실제 데이터로 작업하는 경영학 스타일 수업이 추가되어 있다.

이렇게 여러 전공의 수업들을 뭉쳐놓다보니 3학기동안 큰 수업 12개 정도를 들을 시간동안 저걸 다 커버하기에는 턱없이 부족하다. 거기다 1학년이 끝나고 2학년 올라가기 전에 여름 학기 동안 인턴도 해야되니 아마 1학년 1학기 11월부터 2학기가 막 시작할 1월말~2월초까지 학교 공부와 인턴 면접을 병행하기에 참 빠듯한 시간이 계속될 것이다.

우리가 알고 있는 좋은 학교들, MIT, CMU, UC Berkeley, Columbia, NYU 같은 학교들에 이미 비슷한 프로그램들이 있으니 각 학교의 프로그램 페이지를 참조해보면 더 잘 알 수 있겠지만, 좀 더 상세하게 정리되어 있는 Johns Hopkins의 데이터 사이언스 석사 프로그램을 살펴보고 간단하게 수업이 어떻게 돌아갈지 정리해보자.

미리 들어야 되는 수업들

  • Intro to Python
  • Intro to Java
  • Data Structures
  • Discrete Mathematics
  • General Applied Mathematics
  • Multivariable and Complex Analysis
  • Intro to Ordinary and Partial Differential Equations

Python이랑 Java 프로그래밍은 “도구”니까 반드시 들어야할 것 같고, 4번째부터 7번째까지에 있는 수학(?) 수업은 아마 공업수학 정도의 내용을 가르치는 것 같다. 3번째의 Data Structures 수업에서는 빅데이터가 뭔지에 대한 개론, 3V + Value (Volume, Velocity, Variety, Value 같은 빅데이터의 속성…) 같은 내용을 가르치고, 어떤 종류의 프로그램을 써서 빅데이터를 관리한다는 이야기, Hadoop을 어떻게 쓰고, Map Reduce가 뭐고 등등에 대한 기본적인 개념을 가르쳐주는 수업이 될 것이다.

또 들어야 되는 수업들 (Foundation courses)

  • Foundations of Algorithms
  • Statistical Methods and Data Analysis

딱보면 공대 2학년과 통계학과 2학년이 듣는 수업이라는 걸 알 수 있다. 석사 2학년 말고 학부 2학년. 그래서 이런 걸 미리 다 공부하고 간 학생들은 쉽게 Waiver를 받고 좀 더 윗레벨 수업을 쉽게 들을 수 있을 것이다.

필수 수업 (Required Courses)

  • Principles of Database Systems
  • Data Science
  • Data Visualization
  • Introduction to Optimization
  • Statistical Models and Regression
  • Computational Statistics

데이터 베이스 시스템에 대한 수업에서 저 위에 잠깐 언급한 MapReduce가 어떻게 돌아가는지, 서버 관리는 어떻게 되는지 등에 대한 수업을 들을 것이고, 이게 Data Engineer 커리어를 밟으려는 분께는 필수적인 지식이 될 것이다. 두번째 수업에서 머신러닝을 어떻게 데이터에 적용하는지를 배우고, Data Visualization에서는 Tableau같은 유료 프로그램이나 R의 ggplot같은 함수를 써서 그래프를 그리는데, 3차원 이상의 데이터를 어떻게 시각화하는지에 대한 공부를 한다. Intro to Optimization은 수학적으로 연속함수가 최소/최대 값을 갖기 위해서는 2차 미분이 그 구역에서 음수/양수여야 한다는 조건을 놓고 Gradient descent가 언제 작동하지 않는지, 이럴 때 파라미터 수정은 어떻게 되는지 같은 지식을 배운다.

뒤에 두 개 수업에서는 머신러닝에 들어가는 통계학 기초지식과 회귀분석을 배우고, 통계 계산하는 모델들 (ANOVA 같은거)을 어떻게 쓰는지를 다루게 될 것이다.

선택 수업들

그리고 나면 자기의 커리어 목표에 따라서 Data Engineer가 목표인 사람들은 Database 관리에 관련된 수업을 더 듣고, 통계와 머신러닝이 더 궁금한 사람들은 그 쪽 수업을 더 찾아듣고, 데이터 분석을 비지니스에 적용하는게 궁금한 사람들은 Data Mining이나 Simulation, 심지어 게임이론 같은 경제학 수업을 들을 수 있도록 커리큘럼이 갖춰져 있다.

수업에 대한 개인적인 생각

구글링을 해보면 Data Science 수업들이 수준이 낮다, 너무 쉽다, 배워봐야 도움 안 된다 등등의 말이 많은데, Johns Hopkins 대학의 수강 목록을 보면 나쁘지 않다는 생각이 든다. 학생들 수준이 어느정도 받쳐줘야 가르치는 교수들도 수업 수준을 높게 유지하고, 본인도 배워가면서 강의 노트를 열심히 잘 만들텐데, 그런 개인적인 차이를 감안해도, 수업들 참 잘 짜놨다 싶다. 학부에서 수학, 통계, 공학쪽 전공한 친구들, 문과로 오면 경제학 공부한 친구들이라면 (대신 경제학에 선형대수, 미분방정식, 회귀분석 정도는 들은 사람들) 충분히 따라갈 수 있을 것이다. 그리고 배워서 나온 지식을 잘 쓸 수만 있으면 직장가서 일 잘한다는 소리 들을 것 같다.

 

2. 졸업 후 진로

미국사회의 전체적인 분위기를 보면 석사학위는 학부수준보다 좀 높은 수준의 지식을 배워서 직장 업무에 활용하기 위해서 만들어진 프로그램이다. (박사학위를 위한 예비 프로그램이 아니다. 한국 학생들이 “학벌 세탁”과 “제대로 다시” 배우기 위해서 가기는 하겠지만)

미쿡 대부분의 석사 프로그램들이 졸업 후 취업률과 연봉을 항상 강조하는 것도 같은 이유다. 그런 “직장용”의 가장 끝판왕인 프로그램이 MBA인 것 같다.

외국인 학생이 다른 전공으로는 직장 비자 (Working Permit)을 받기가 참 힘들지만, 미국에서는 STEM 전공이라고해서 수학, 과학, 공학 쪽 전공들은 비자를 길게 연장할 수 있는 옵션이 있다. 당장 1년짜리 비자밖에 안 나오는 문과 출신보다 길게 쓸 수 있는 가능성이 높기 때문에 미국 기업들도 좋아라 한다. 거기다 3년 비자가 나오는 H1B를 받고, 영주권을 신청해서 미국 에 눌러앉으려는 경우도 많이 본다. 왜 이렇게 STEM에게 많은 혜택을 주냐고? 사실 미쿡애들은 STEM 전공 잘 안 한다. 수학이 어렵거든.

그래서 외국인에 대한 차별을 상대적으로 덜 받고, 좋은 학교 데이터 사이언스 석사 졸업하면 미국 탑 IT회사에 충분히 도전해 볼 수 있는 스펙이 된다. 최초에 전화 인터뷰로 영어 잘하는지 보고, 그 다음에 온라인으로 기본적인 코딩 테스트 1차례를 한 다음에, 면접장에 가면 학교에서 무슨 프로젝트를 해 봤냐고 물을 것이고, Whiteboard에다가 즉석에서 간단한 코딩 해 보라고 문제를 던진다. 

인터뷰 질문소스는 인터넷에 참 많은데, Github에 정리된 내용을 참고하면 되겠다. (언제 이 부분에 대해서 자세하게 한번 정리해봐야겠다.)

연봉 레벨은 실리콘 밸리에 있는 미국 탑 IT회사들은 12~3만불에 회사 지분 (아주 조금)을 얹어주고, 그 일대에 있는 스타트업들은 회사 지분을 더 얹어준다. (그래야 올테니까) 한국에서야 구글, 페이스북 같은 회사 가는게 제일 좋다고 생각하지만, 의외로 실리콘 밸리 가보면 스타트업에 갈려고 하는 사람들이 많다. 특히 10년후에 에어비앤비나 우버가 될 것 같은 “로켓”들 찾으려는 사람들의 인구 밀도는 상상을 초월한다.

그 이외 지역에 있는 직장에서 데이터 사이언티스트 포지션을 찾으면 아마 7-8만불 언저리의 연봉으로 시작할 것이다. (뉴욕 일대는 약간 다를 수 있다.)

 

주의할 점

물론 석사 학위 하나 따고 엄청나게 중요한 일을 바로 시작할 수는 없다. (석사하고 나면 세상의 모든 것을 알게 된 것처럼 까부는데 -내가 그랬지 ㅠㅠ-, 사실 별로 배운거 없다는걸 곧 깨닫게 되더라. ) 그래서 이것저것 다 따지고 직장 찾기는 힘들겠지만, 그래도 Data Analyst 포지션이면서 Data Scientist라고 타이틀만 달고 있는 직장은 구분해서 찾아가기를 충고한다. 본인이 Data Analyst의 일에 불만이 없다면 모르겠지만, SQL로 데이터 뽑아서 Tableau로 그래프 잘 그리는 일만 하는 직군은 Business Intelligence라는 예전 업무의 연장 선상에 있고, 시장에서 별로 대우가 좋질 못하다.

본인이 공대 출신이고 Database 관리 쪽에 매우 흥미가 있다면 괜히 다른 수학 수업 들으면서 머리 아프게 고생하지말고 자기 관심사를 파는 것도 괜찮다. 큰 기업들에서는 당연히 Data Engineer에 대한 수요가 많고, 또 스타트업의 초기 단계에 뽑는 Data Scientist는 실제로는 Data Engineer인 경우가 많다. 저 위에 잠깐 언급한 MapReduce 파이프라인을 만드는 일은 일반적인 Data Scientist는 관심도 없고, 할려고 하지도 않는다. 근데 그게 없이 데이터가 어떻게 쌓이고 관리될까? 미래에 잘 나갈 스타트업의 초창기에 Data Engineer가 필수적일 때 많은 지분을 받고 들어가서 “잘 먹고 잘 사는” 경우도 은근히 보이더라.

 

3. 뒷 이야기들

DS 석사 시작했다가 그만뒀다는 분의 글이 한동안 LinkedIn에서 유명세를 탔던 적이 있다. 왜 그만뒀냐니 너무 쉬워서 그만뒀다는데, 이 분이 들었다는 수업들이 첫학기에 나오는 수업들 이어서 그랬던거지, 졸업할 무렵에 들었어야할 수업들은 그렇게 만만치는 않았을 것이다. 같은 분이 쓴 글 중에 SQL 제대로 배워라고 엄청나게 강조하는 부분이 있던데, 필자의 Data Scientist 경험을 놓고봐도 120% 공감할만한 내용이다. 본인이 Data Scientist이건, Data Engineer나 Data Analyst 그 어느쪽 직업을 담당하건 상관없이 데이터 베이스에서 데이터를 못 뽑고 어떻게 데이터로 작업을 진행하겠나? 그리고 공대생들은 다들 공감하겠지만 SQL은 코딩 언어 축에도 안 끼워줄만큼 쉬운 언어다. 겁먹을거 없다. 언제 이걸로 공개 강좌나 몇 번 열어볼까 싶다. SQL 가르쳐주고 돈 받는건 정말 너무한다 싶더라.

한국인, 기혼, 30대 중반, 여자, 그리고 문과 출신인 분이 데이터 사이언스 석사를 가서 글을 몇 번 올리신 적이 있다. (필자가 전에 다녔던 리타게팅 광고 회사의 한국 오피스에서 신규 광고주 세일즈를 담당하셨던 분이라서 얼굴은 한번 뵌 적 있다.) 브런치에 공개된 글을 여기, 여기, 여기에서 확인해보시면 된다. 가서 무지 고생하고 계신 것 같더라ㅋㅋ 학교 수업 따라갈려고 Coursera에서 듣는 수업들 리스트가 올라와있던데, 대부분이 통계학과 1,2학년 때 배우는 내용들이다. 데이터 사이언스 석사가고 싶으면 꼭 통계학 공부 좀 해 놓자.

알고 지내는 동생 하나는 한국서 공대서 학부랑 석사한 다음에 데이터 사이언스 석사 유학을 갔다. 거기서 언어처리 알고리즘을 돌리는 프로젝트 한 걸 페이스북에도 곧잘 올리곤 하더니 미국서 직장 잡고 지금은 잘나가는 실리콘 밸리 회사 중 하나에 Data Scientist로 가 있다. 박사 재학 시절 필자의 Office Hour에 자주 찾아왔던 인도인 석사생 하나는 Financial Engineering이 재미없다고 실리콘 밸리 쪽 직장 알아본다더니 어느 날 Data Scientist 자리 잡았다고, R 코딩 숙제 도와준 덕분에 쉽게 면접봤다고 고맙다는 메일도 보냈더라.

 

 

그런데,

학위 없이도 데이터 사이언티스트 될 수 있다. 꼭 학위 있어야되는거 아니다. 생긴지 얼마되지도 않은 필드에, 필요한 지식도 “짬뽕”인 마당인데, 특별히 학위를 받지 않으면 이쪽 직장 못 찾는거 아니니까 “쫄 꺼 없다”. 한국에서 잘 모르는 회사들이나 개발자 출신이나 컴퓨터 공학과 출신들 위주로 뽑지, 제대로 뽑고있는 실리콘 밸리를 가보면 Quantitative 전공 출신이면 누구나 좋은 후보라고 생각한다. 그들 눈에는 어차피 선형대수-회귀분석으로 이어지는 수리통계학 지식과, 데이터를 학위 논문 쓰는 수준으로 다뤄본 경험이 훨씬 더 중요하기 때문이다. 필자 역시도 면접내내 받은 질문이 PCA, SVM 등에 들어가는 수학이었고, 데이터 모델링에 대한 여러가지 경험*들을 굉장히 꼼꼼하게 테스트하는 느낌을 받았었다. 실제로 일터에 나가보면 그런 경험들이 그대로 다 업무에 반영이 되더라. 

(*거시경제학에서 썼던 Calibration, Financial engineering 수업에서 했던 simulation, 심지어는 석사시절 Panel data 공부하면서 썼던 RE, FE 테스트랑 Instrumental variable 골라내는 작업들을 얼마나 robust하게 진행했는지 매우매우 꼼꼼하게 물어봤던 기억이 난다.)

데이터 사이언스 석사 프로그램에 관심있을만한 내용들을 쭉 정리해봤는데, 혹시 더 궁금한 점 있으면 따로 메일로 연락주시라. 아는 만큼 대답해드리거나, 이 글 후속편으로 답을 드리겠다.

 

후속편 링크: https://pabii.co/data-science-masters-what-to-prepare/

X