미래 데이터 사이언티스트에게 추천하는 6가지 경험들

Image from Unsplash

이 글은 원문 Six Recommendations for Aspiring Data Scientists by Ben Weber를 저자의 동의하에 번역한 글입니다. 흔쾌히 번역에 동의해 주신 저자 Ben Weber 님께 감사의 말씀을 드립니다.

데이터 사이언스 커리어로 새롭게 시작하는 사람들에겐 전문성을 증명할 수 있는 포트폴리오를 만드는 게 어려울 수 있다. 데이터 사이언티스트 구직과 구인 경험을 바탕으로 데이터 사이언티스트 커리어를 얻는 데 도움이 될 수 있는 몇 가지 주요 경험을 소개하고자 한다.

  1. 클라우드 컴퓨팅 활용하기 (Get hands-on with cloud computing)
  2. 새로운 데이터셋 생성하기 (Create a new dataset)
  3. 여러 기술 사용해보기 (Glue things together)
  4. 실제 애플리케이션으로 배포해보기 (Stand up a service)
  5. 멋진 시각화 만들기 (Create a stunning visualization)
  6. 백서 쓰기 (Write a white paper)

데이터 사이언스의 핵심은 기업에 가치를 줄 수 있는 데이터 제품을 만드는 것이다. End-to-End 제품을 만들 수 있는 데이터 사이언티스트는 매우 필요한 인재이며, 데이터 사이언티스트가 되기 위해서 위 여섯 가지 경험을 가지고 있으면 유용하다.

클라우드 컴퓨팅 활용하기 (Get hands-on with cloud computing)

클라우드 컴퓨팅 플랫폼은 데이터 작업 및 예측 모델링을 대규모로 확장할 수 있도록 도와준다. 때문에 기업에서는 클라우드 컴퓨팅 경험이 있는 데이터 사이언티스트를 주로 찾는다. 일상 업무에서 아마존 웹 서비스(AWS)나 구글 클라우드 플랫폼(GCP)과 같은 클라우드 플랫폼을 사용하게 될 가능성도 매우 높다.

많은 플랫폼들이 해당 플랫폼에 익숙해질 수 있도록 서비스를 무료로 제공하는 경우도 있다. 예를 들자면 AWS는 EC2 인스턴스와 저용량 리퀘스트에 대한 람다 등의 서비스를 무료로 제공하고, GCP는 300달러의 무료 크레딧을 제공한다. 또한 Databricks는 사람들이 플랫폼을 사용해 볼 수 있도록 커뮤니티 에디션을 제공한다. 물론 이러한 무료 옵션으로는 대용량 데이터셋을 활용할 수 없지만, 간단한 경험 정도는 쌓을 수 있다.

이런 플랫폼에서 다양한 기능들을 경험하고, 그중 일부를 모델 교육과 구축에 사용해보는 것을 추천한다. 예를 들자면, 필자는 필자의 모델에 이미 익숙한 도구인 SKLearn을 활용해서 람다 함수로 모델을 변환하는 방법에 대해서 배웠다.

새로운 데이터셋 생성하기 (Create a new dataset)

보통 수업이나 데이터 사이언스 경진대회에서는 데이터 분석과 모델링에 초점을 두기 위해 이미 가공된 데이터셋을 받게 된다. 하지만 실제 프로젝트의 경우, 분석과 모델링이 더 용이하도록 원본 데이터(Raw data)에 전처리(Data Munging) 작업이 필요하다. 데이터 전처리 과정에서는 데이터 변환을 위해 추가 데이터셋을 수집해야 하는 경우가 많다. 예를 들자면 필자는 미국 가구의 자산 배분을 이해하기 위해서 Federal Reserve의 데이터를 다룬 적이 있었다. First-Party 데이터의 정확성을 측정하기 위해 Third-Party 데이터를 다뤄야 했기 때문에 꽤 흥미로운 프로젝트였다.

필자는 여기서 한 걸음 더 나아가 직접 데이터셋을 만드는 것을 추천한다. 웹사이트 스크래핑, 배포 중인 서비스에 데이터 샘플링(예: SteamSpy), 또는 여러 데이터셋을 하나로 집계하는 작업이 필요할 수 있다. 필자의 경우 대학원 시절 스타크래프트 데이터셋을 만들어서 새로운 데이터셋에 전처리를 한 경험이 있다.

여러 기술 사용해보기 (Glue things together)

데이터 사이언티스트는 임무를 수행하기 위해 서로 다른 기술 요소나 시스템이 같이 작동할 수 있게 하는 능력이 필요하다고 생각한다. 데이터 사이언티스트 커리어는 하나의 모델을 만들기 위한 방법이 명확하지 않을 수 있으며, 이를 위해 아예 새롭고 독특한 솔루션을 생각해내야 할 수도 있다. 이상적으로 데이터 사이언스 팀에는 시스템을 가동하고 실행할 수 있도록 엔지니어링 기술 지원이 있으면 좋지만, 프로토타이핑은 데이터 사이언티스트가 빠르게 작업할 수 있게 도와주는 좋은 기술이다.

한 데이터 사이언스 워크플로우에 다양한 시스템이나 구성요소를 통합해 보는 것을 추천한다. 데이터 파이프라인을 만들기 위해 Airflow 같은 툴을 사용해 볼 수도 있다. Java에 StarCraft Brood War API를 적용해본 JNI-BWAPI 프로젝트처럼 다른 시스템을 사용해 볼 수 있다. GCP DataFlow로 BigQuery 데이터를 가져와 예측 모델에 적용하고 결과를 Cloud DataStore에 저장하는 것과 같이 플랫폼에서 다양한 기술을 함께 사용해보는 작업을 해도 된다.

실제 애플리케이션으로 배포해보기 (Stand up a service)

데이터 사이언티스트로서 회사의 다른 팀이 사용할 수 있도록 서비스를 만들어야 하는 경우가 종종 있다. 예로 딥러닝 모델에서 결과를 낼 수 있는 Flask 앱이 그중 하나다. 서비스를 프로토타입으로 만들 수 있다는 뜻은 다른 팀이 회사의 데이터를 더 빠르게 사용할 수 있다는 것을 의미한다.

웹 애플리케이션으로 배포하기 위해 Flask나 Gunicorn과 같은 도구, 혹은 Python으로 인터렉티브한 웹 프로그램(Web Program)을 만들기 위해서 Dash와 같은 도구로 경험을 쌓는 것을 추천한다. 도커 인스턴스에서 이런 서비스 중 하나를 설정해 보는 것도 유용하다.

멋진 시각화 만들기 (Create a stunning visualization)

모델이나 그에 대한 분석이 왜 중요한지 설명하기 전에, 먼저 청중의 관심을 받는 것도 필요하다. 눈에 띄는 시각화를 만들기 위해 다양한 시각화 도구를 배우기를 추천한다.

시각화를 만들어두면 포트폴리오를 만드는 데에도 유용하다. 아래 블로그에서는 필자가 데이터 사이언티스트로서 10년 동안 사용해본 다양한 툴과 데이터셋을 찾아볼 수 있다.

백서 쓰기 (Write a white paper)

데이터 사이언티스트는 백서(White Paper)의 형식으로 프로젝트를 요약하고, 어떻게 사용할 수 있는지 논의하고, 방법과 결과를 세부적으로 제공하는 능력이 필요하다. 백서의 목표는 다양한 사람들이 프로젝트의 연구를 쉽게 이해할 수 있고, 다른 데이터 사이언티스트들이 해당 연구를 기반으로 확장할 수 있도록 쉽게 설명하는 것이다.

블로깅 같은 글쓰기는 의사소통 실력을 향상하기 좋은 방법이다. 광범위한 독자를 위해 다양한 수준의 내용을 가진 데이터 사이언스 글을 써보는 것을 추천한다.

--

--