머신 러닝 엔지니어 vs. 데이터 사이언티스트

이 글은 원문 Machine Learning Engineer vs Data Scientist (Is Data Science Over?) by Jason Jung을 저자의 동의하에 번역한 글입니다. 흔쾌히 번역에 동의해 주신 저자 Jason Jung 님께 감사의 말씀을 드립니다.

Introduction

오래전부터 이 주제를 생각하고 있었지만, 다뤄야 할 내용이 너무 많아서 차마 끝낼 엄두를 내지 못하고 있었다. 하지만 Shelter in Place Order 때문에 집에 틀어박혀 있던 도중, 드디어 이 글을 끝내야겠다고 생각했다.

2013년부터 인기가 폭발적으로 치솟은 데이터 사이언스 분야는 점차 발전하며 구체적인 역할과 직업으로 세분화되고 있다. 하지만 그 과정에서 직업마다 일관성 없는 역할이 주어졌고, 어쩔 수 없는 혼란을 가져왔다. 예를 들어, 다양한 직업이 똑같은 역할을 수행하는 경우도 있고, 한 직업이 다양한 역할을 수행하는 경우도 있다:

Analytics Data Scientist, Machine Learning Data Scientist, Data Science Engineer, Data Analyst/Scientist, Machine Learning Engineer, Applied Scientist, Machine Learning Scientist…

이 외에 많은 직업이 존재한다. 채용 담당자들은 필자에게도 데이터 사이언티스트, 머신 러닝 전문가, 데이터 엔지니어 등과 같은 다양한 직책으로 연락한 적이 있다. 데이터 사이언스의 필요와 용도가 회사마다 다르기 때문에 이렇게 다양한 직업명이 생겨났다. 하지만 그 이유와 상관없이 데이터 사이언스는 다음과 같은 범주로 나눌 수 있는 것 같다: 분석(Analytics), 소프트웨어 엔지니어링, 데이터 엔지니어링, 그리고 연구. 직업이 어떻든 주로 이 카테고리 중 하나에 해당한다. 특히 큰 테크 회사의 경우 이런 모습이 자주 보이곤 한다.

이 글에서는 데이터 사이언스 산업의 전반적인 트렌드를 살펴본 후, 머신 러닝 엔지니어와 데이터 사이언티스트의 차이점을 더 심도 있게 비교할 것이다. 데이터 사이언스의 깊은 역사를 알려주기보다는. 실리콘밸리에서 직접 데이터 사이언티스트로 살면서 경험하고 본 것을 소개하려고 한다. 참고로 2017년에 How to Data Science Without a Degree라는 글을 쓸 때까지만 해도 데이터 사이언스에 대한 관점이 매우 달랐다.

작년에 Metis Bootcamp의 데이터 사이언스 학생들을 위한 짧은 강연에 초대를 받았을 때 이 주제를 다룬 적이 있다. 이번 기회를 통해 다양한 직업의 차이점을 설명하고 사람들이 본인에게 제일 적합한 직업을 찾을 수 있도록 돕고 싶다. 데이터 산업이 여전히 발전하는지, 혹은 그 반대인지 한번 알아보도록 하자! 그게 데이터 사이언티스트가 하는 일이지 않은가? (아마 아닐 것이다). 어쨌든 이 글이 도움이 됐으면 좋겠다.

Trend of Data Science Industry

본론으로 들어가기 전에, 링크드인에서 발견한 두 개의 직업 설명글을 살펴보자. 읽어보며 어떤 직업을 위한 설명인지 맞혀보는 것을 추천한다. 중요한 포인트들은 빨간색으로 표시해두었다.

Source.

두 설명이 매우 다른데, 놀랍게도 둘 다 데이터 사이언티스트 포지션을 위한 설명이다. 왼쪽은 페이스북, 오른쪽은 엣시의 글이다. 여기서 핵심은 같은 직업을 위한 잡디스크립션이 이렇게나 다를 수 있다는 것이다.

Source.

회사에서도 데이터 사이언티스트의 정의에 대한 토론이 여럿 오간다. 데이터 사이언티스트를 컴퓨터 공학 박사, 혹은 새로운 데이터 분석가라고 말하는 사람도 본 적 있다. 이는 기업마다 ‘데이터 사이언티스트’라는 단어를 다른 직무에 사용하기 때문이다. 하지만 현재는 모든 역할을 데이터 사이언스라는 광범위한 분야에 묶어 표현하기보다는, 더 구체적이고 전문적인 역할로 세분화 되고 있는 것으로 보인다.

그러면 데이터 사이언티스트가 의미하는 역할에는 뭐가 있을까? 개인적으로 소프트웨어 엔지니어, 데이터 분석가, 데이터 엔지니어, 그리고 연구자(applied/research scientists)로 나눌 수 있다고 생각한다. 각기 다른 일을 하는 “데이터 사이언티스트” 친구들이 있는데, 그들 모두 위 네 가지 분야에 포함되는 일을 한다. 아래 만든 사진을 참고하자면, 데이터 사이언스 초창기에는 네 분야(리서치, 소프트웨어 엔지니어링, 데이터 엔지니어링, 그리고 분석)를 모두 포함했다. 하지만 요즘 직업은 아래와 같이 점점 자세하고 전문적으로 바뀌고 있다.

Source.

Did Harvard Business Review see it coming?

이런 트렌드가 신기할 수 있지만, 사실 Data Scientist: The Sexiest Job of the 21st Century라는 유명한 기사를 참고한다면 그리 놀랍지는 않다:

Data scientists’ most basic, universal skill is the ability to write code. This may be less true in five years’ time, when many more will have the title “data scientist” on their business cards.

번역: 데이터 사이언티스트의 가장 기본적인 스킬은 코드를 쓰는 능력이다. 더 많은 사람들이 “데이터 사이언티스트”라는 직업으로 일하게 될 5년 후에는 다를 수도 있다.

기사에서 나와 있듯, 요즘에는 데이터 사이언티스트가 되기 위해서 반드시 좋은 코더가 될 필요는 없다. 예전에는 정리되지 않은 복잡한 데이터를 분석할 도구나 방법이 많이 없거나 쉽게 사용하기 어려웠다. 그 때문에 데이터 사이언티스트는 다른 스킬에 더불어 훌륭한 엔지니어링 스킬도 꽤 많이 요구했다. 하지만 이제는 머신러닝과 데이터 사이언스 관련된 도구도 발달했고, 코드 몇 줄로 최신 모델을 사용할 수 있을 만큼 그 어느 때보다 쉽게 활용할 수 있다. 따라서 분석가와 엔지니어의 역할을 구분 짓기 더 쉬워졌고, 예전과 다르게 데이터 사이언티스트가 되기 위해서 분석, 엔지니어링, 그리고 통계학을 전부 마스터할 필요까지는 없다.

예를 들면, 페이스북은 데이터 분석가를 사이언티스트로 바꾸기 시작한 회사 중 하나다. 사실 이는 아주 자연스러운 과정이었다. 데이터 양이 증가하고 복잡한 데이터 문제가 생겨나자, 분석을 위해 더 많은 스킬과 훈련이 필요했기 때문이다. 페이스북 뿐만 아니라 애플이나 에어비엔비와 같은 회사도 분석/제품 데이터 사이언티스트(analytics/product data scientists)와 머신 러닝 데이터 사이언티스트의 구분을 더 분명하게 하고 있다.

How company size affects the roles

물론 이러한 전문화가 큰 테크 회사에서 주로 발생한다는 점은 알아둬야 한다. 소프트웨어 엔지니어는 모든 테크 회사에서 필요하지만, 전문적인 리서치 과학자나 머신 러닝 엔지니어가 모든 회사에서 필요하지는 않다. 몇 명의 데이터 사이언티스트로도 충분할 수 있다. 따라서 작은 회사에서는 위에서 말한 네 가지 분야를 전부 다루는 데이터 사이언티스트도 있다.

일반적으로 흔히 FANG(Facebook, Amazon, Netflix, Google)이라고 부르는 대기업의 데이터 사이언티스트는 상급 분석가의 역할을 하고, 작은 회사에서의 데이터 사이언티스트는 머신 러닝 엔지니어의 역할을 한다. 물론 두 역할 모두 중요하고 필요한 작업이다.

Different Data Scientists and How to Choose Them

아래 도표에는 위에서 보여줬던 그림에 더 자세한 내용이 담긴 차트를 준비했다. 완벽하게 모든 내용이 들어가 있지는 않지만, 참고할만할 것이다.

Source.

Job search — Which title to choose and how to prepare?

머신 러닝 엔지니어든, 데이터 사이언티스트든, 이쪽 분야에 들어오고 싶다면, 어떤 직업을 골라야 할지 고민이 될 것이다. 고민 해결에 도움을 주기 위해 머신 러닝과 관련된 4개의 주요 직업에 대해 간단하게 설명하려고 한다. 물론 모든 직업으로 일해 본 것은 아니다. 하지만 그 분야에서 일하는 친구들로부터 얻은 인사이트를 참고해서 공유해보려고 한다. 부가적으로 각 직업 설명의 마지막 부분에 인터뷰의 예상 질문이나 내용에 대한 정보를 적어두었다. 인터뷰는 총 4 라운드로 진행한다고 가정했다.

  1. 데이터 사이언티스트: 빅 데이터 분석하고, 실험과 A/B test 설계하고, 사업 전략을 짜기 위해 간단한 머신 러닝과 통계 모델을 구축하고 싶다면? 데이터 사이언티스트는 덜 체계적이며 불확실성이 많고, 당신이 프로젝트를 이끌어 나가는 경우가 많다. (인터뷰: 1 확률/통계, 1 Leetcode, 1 SQL, 1 머신러닝).
  2. 머신러닝 엔지니어: Tensorflow나 PyTorch 같은 최신 머신 러닝 모델을 빌드하고 배포하고 싶다면? 단순히 모델을 만드는 것뿐만 아니라, 그 모델을 실행하는 소프트웨어를 만드는 일도 담당해야 한다. 소프트웨어 엔지니어(SWE)와 비슷하다. (인터뷰: 3 Leetcode, 1 머신러닝).
  3. 리서치 과학자(Research Scientist): 컴퓨터 공학에 PhD를 갖고 있고 ICLR(International Conference on Learning Representations, 머신러닝학회)에 머신 러닝 논문이 있다면? 머신러닝 리서치의 한계를 벗어나고 싶고, 당신의 논문이 인용될 때 신난다면? 대부분의 리서치 과학자는 구글이나 페이스북에서 일하게 된다. PhD 없이 리서치 과학자가 되는 것도 가능하지만, 아쉽게도 그런 사람들은 많이 찾을 수 없다. (인터뷰: 1 Leetcode, 3 머신러닝/리서치)
  4. 응용 과학자 (Applied Scientist): 머신러닝 엔지니어와 리서치 과학자의 혼합이라고 생각하면 된다. 코드와 최신 머신 러닝 모델에 모두 신경을 쓰는 직업이다.

물론, 위 설명이 엄청나게 길지는 않다. 하지만 친구들과 얘기하고 다양한 직업 설명 글을 읽어본 뒤, 공통으로 나온 내용을 정리했다. 아직 어떤 직업으로 지원해야 할지 감이 오지 않는다면 약간의 팁을 더 주도록 하겠다:

  • 잡 디스크립션을 읽어라: 사실 직업명은 큰 신경을 쓸 필요 없다. 같은 “데이터 사이언티스트”여도 전혀 다른 일을 할 가능성이 있다.
  • 링크드인을 활용해라: 애플의 데이터 사이언티스트는 무슨 일을 하는지 궁금하다면, 링크드인에 애플 데이터 사이언티스트를 검색해서 그들의 이력이나 활동을 살펴보면 된다. 대부분 컴퓨터 공학 PhD인지, 학사 졸업생인지, 어떤 연습을 했는지에 대해 알아보면 그 회사의 데이터 사이언티스트에 대해 더 자세하게 알 수 있다.
  • 인터뷰: 테크니컬(technical)한 일을 할 줄 알았던 직업에서 코딩 인터뷰를 보지 않았다면, 테크니컬한 직업이 아닐 가능성이 높다. 대부분의 경우, 인터뷰 내용이 실제 업무에서 할 일과 비슷하다.

ML Engineer vs Data Scientist

이제 본론으로 넘어가자면, 최근 몇 년 동안 데이터 사이언티스트 직업에 대한 부정적인 말을 꽤 들었다. 몇 가지 이유로는 더 이상 데이터 사이언티스트가 복잡한 머신 러닝 작업을 하지 않고, 직업 또한 얻기 쉬워졌다는 인식 때문이다. 물론 5년 전까지만 해도 최소 석사 학위를 요구하는 데이터 사이언티스트 직업이 대부분이었지만 이제는 그렇지 않다. 데이터 사이언스가 더 이상 유망하지 않다는 사람들의 이유가 무엇이든, 관련 자료를 한 번 살펴보겠다.

아래에는 Salary Ninja라는 유명한 연봉 데이터베이스 사이트의 자료이다. H1-B 데이터베이스를 통해 미국에서 일하는 외국인들의 데이터를 검색했다. 2014년과 2019년 사이에 “데이터 사이언티스트”와 “머신 러닝 엔지니어”의 평균 연봉과 직업의 수를 보여주고 있다.

Source.

두 직업의 평균 연봉은 비슷하지만, 데이터 사이언티스트의 평균 연봉이 2015년과 2016년 사이에 감소한 것이 보인다. 이러한 트렌드 때문에 데이터 사이언티스트의 좋은 날은 끝났다라는 사람들이 있을 것이다. 사람 수만 보자면 데이터 사이언스가 머신 러닝보다 훨씬 많지만, 자료에서 보이듯 머신 러닝 엔지니어의 수가 급격히 증가하고 연봉도 더 높다.

우리가 논의한 다른 직업에 대한 자료도 Salary Ninja에서 가져왔다. 지난 6년간의 자료와, 2019년 자료, 그리고 지난 6년간 마이크로소프트의 자료도 준비했다.

Source.

필자가 발견한 흥미로운 사실들:

  • 전반적으로 데이터 분석가가 데이터 사이언티스트보다 많았지만, 2019년에는 데이터 사이언티스트의 수가 더 많아졌다. 데이터 분석가가 데이터 사이언티스트로 바뀌고 있다는 신호일까?
  • 머신 러닝 엔지니어가 데이터 사이언티스트보다 연봉이 살짝 높지만, 머신 러닝 엔지니어의 수는 현저히 적다. 머신 러닝 엔지니어의 실질적인 이름은 보통 소프트웨어 엔지니어이기 때문이다.
  • 놀랍게도, 리서치 사이언티스트(research scientist)의 평균 연봉이 낮다. 이 자료에서의 리서치 사이언티스트는 테크 머신 러닝 리서치 뿐만 아니라 다른 분야의 리서치 사이언티스트도 포함하고 있기 때문이다. 때문에 한 테크 회사(마이크로소프트)의 자료만 보여주는 표도 포함했다. 예상했듯, 마이크로소프트의 연구원들의 연봉은 굉장히 높다.
  • 데이터 엔지니어의 $1.3m(한화로 약 15억) 기본급을 보고 매우 놀랐다!
  • 위 자료는 기본급 데이터라는 점과, 테크 분야에서는 주로 스톡옵션이 큰 자리를 차지한다는 것을 알아뒀으면 좋겠다. 또한, 취업 시장의 전체 그림을 보여주는 것이 아니라는 것도 명심해야 한다. 하지만 많은 외국인이 이 분야에 일하고 있는 만큼, 꽤 좋은 데이터이지 않을까 싶다.

Conclusion

이 글에서 많은 내용을 다뤘는데, 처음부터 끝까지 재밌게 읽었기를 바란다. 사실 이 글은 데이터 분야의 변화로 인해 필자 본인이 헷갈려서 쓰기 시작했다. 대부분의 사람들도 데이터 사이언스에 대해 각기 다른 의견을 가진 것 같았다. 맞고 틀리고를 떠나서, 사람들이 이 트렌드를 직접 파악하고 생각하길 바란다.

궁극적으로 높은 연봉이나 버즈 워드 때문에 직장이나 분야를 정하지는 않길 바란다. 이름이 데이터 사이언티스트인지, 머신 러닝 엔지니어인지, 데이터 분석가인지는 중요하지 않다. 누군가가 데이터 사이언티스트는 엔지니어다, 아니면 분석가다, 라고 말하는 것도 크게 상관없다 — 둘 다 사실일 수 있다.

연봉으로 직업을 비교하는 게 제일 쉽지만, 당신이 즐기고 잘하는 일을 고르는 게 훨씬 더 중요하다. 실질적으로 하는 일에 집중하고, 당신에게 그 일이 맞는지도 확인해야 한다. 평균 연봉이 상대적으로 낮다고 해서 당신의 연봉도 낮다는 뜻도 아니다. 또한 앞에서 나왔듯, 전부 최대 연봉이 굉장히 높은 직업이다.

이 글을 끝내기 전, 부가적인 정보를 찾을 수 있는 자료를 제공하려고 한다:

  • 에어비엔비의 글, One Data Science Job Doesn’t Fit All: 개인적으로 에어비엔비가 데이터 사이언스 관련 직업에 대해 정리를 잘해둔 회사 중 하나라고 생각한다. 이 글도 데이터 사이언스에 대한 디테일이 많이 담겨있다. 글에서는 모든 역할을 데이터 사이언티스트로 애매하게 부르기보단, 분석(Analytics), 알고리즘(Algorithms), 그리고 Inference, 세 가지 역할로 나눴다.
  • Joma의 What REALLY is Data Science? Told by a Data Scientist 유튜브 영상: 회사의 규모에 따라 데이터 사이언티스트의 다른 역할에 관해 설명을 잘해둔 영상이다. 영상을 보면 큰 테크 회사에서 분석 데이터 사이언티스트(Analytics Data Scientist)들이 무슨 일을 하는지 이해를 쉽게 할 수 있을 것이다.

이 글을 읽어줘서 다시 한번 고마움을 표현하고 싶다. 데이터 사이언스 분야에서 헤매지 않게 여러 인사이트를 얻었길 바란다.

--

--