프로그래밍/IT 이것저것

데이터 직군 현실 조사

이자다 2023. 7. 2. 17:40
반응형

데이터 직군 관련해서 여러 영상들을 보며 내용들을 정리해본다.

 

데이터 직군 별 역할

 

데이터 분석가

- 해당 업계의 도메인 지식 많이 필요

- 의사결정자에게 발표, 설득을 위한 데이터 시각화와 커뮤니케이션 능력이 필요함. 

- 데이터 시각화 툴인 Power BI, Tableau, Google Analytics 등을 다룰 수 있어야함

- 데이터 가공, 분석 과정에서 SQL, R, Python 등 언어를 사용하기에 데이터 분석을 위한 최소환의 수준은 갖춰야함.

 

 

데이터 사이언티스트

- 수학, 통계 지식 필요

- 분석 모델, 머신러닝 모델을 개발해야 하기에 관련 지식 필요함. 예시로 한 쇼핑몰의 고객별 재구매 주기 모델을 들 수 있음.

- Python, scala 언어 지식 필요

- Pytorch, tensor flow 라이브러리 지식 필요

- 빅데이터 저장 플랫폼인 Hadoop, Spark 지식이 있으면 플러스 요인

 

 

데이터 엔지니어

- 데이터 웨어하우스, 데이터베이스를 구축 및 관리, 데이터 파이프라인 구축, SQL 튜닝, 대용량/실시간 시스템 개발 등 업무 담당

- 한눈에 파악하기 어려운 로그 자료들을 유의미하게 분석하고 이용할 수 있도록 데이터 전처리 작업을 거쳐 하둡과 같은 빅데이터 시스템에 저장하는 업무를 맡음.

- 사실상 개발자이고 때문에 프로그래밍 지식과 더불어 Hadoop, Spark 같은 빅데이터 플랫폼 관련 업무 경험과 지식을 필요로 함.

- 학생들이 학교에서 배우기 어려운 주제를 다루다보니 백엔드 개발자로 커리어를 시작해서 데이터 엔지니어로 직무 변경하는 것을 종종 보게 됨.

- 데이터 엔지니어와 데이터 사이언티스트의 업무가 겹치는 경우가 많아서 머신러닝 지식을 요구하기도 함.

 

 

 

데이터 사이언티스트, AI 엔지니어의 현실

 

커리어 시작 시 데이터 사이언티스트로 시작하기 보다는 백엔드 엔지니어로 커리어를 시작해 넘어오는 것이 이상적이라고 한다.

회사에서는 데이터만으로 성과를 낼만한 환경이 갖춰져 있지 않음. 

웬만한 회사의 데이터는 두가지 경우다

 

1. 데이터가 없거나

2. 데이터를 쓸 수 없는 상태

 

그러면 데이터가 없을 때는 데이터(로그)를 남기도록 만들어야 하는데 그러려면 백엔드 개발을 할 줄 알아야 한다. 그것을 할 줄 모르면 백엔드 개발자가 내가 원하는 대로 로그를 남기도록 설득을 해야 하고 그것을 또 개발시켜야한다. 현실적으로 그렇게 남에게 일을 시키기는 어렵다.

 

이렇게 다른 사람에게 백엔드쪽 개발을 의지한 상태로 진행하면 일 처리 속도가 느려지게 되고, 데이터 전처리 하는 데 코스트가 많이 들다 보면 자연스럽게 성과를 낼 수 없다. 그래서 일반적으로 데이터 사이언티스트가 신입으로 와서 성과를 내기가 진짜 힘들다. 때문에 신입을 뽑지 않는다.

 

추천하는 방안은 백엔드 엔지니어로 커리어를 시작해서 데이터 사이언트스트 역량을 갖추는 것.

 

백엔드 엔지니어는 자연스럽게 빅데이터를 접할 수 있고 로그를 마음대로 설정할 수 있음. 그러다보면 데이터를 직접 다루기도 하고 그것을 전처리하는 역할도 맡게 됨. 그걸 자연스럽게 머신러닝 문제로 변환할 수도 있고 데이터 사이언스 관점에서 접근성이 상당히 높아진다. 내가 마음만 먹으면 데이터 사이언스 문제를 풀 수 있게 된다.

 

때문에 데이터 사이언티스트를 바로 시작하기보다는 엔지니어링 능력을 먼저 키우는 게 커리어 면에서, 몸값을 올리는 면에서 더 좋은 방향이다.

 

또 하나의 이유는 전반적으로 데이터 사이언티스트 잘하는 것 보다는 엔지니어링을 잘하는게 더 시장에서 수요도 많고 몸값도 비싸다. 엔지니어링을 잘하면 어떤 프로젝트에 갖다놓아도 할 일이 넘쳐난다. 데이터 사이언티스트는 데이터가 잘 정리된 상태가 있어야 하고 문제 정의 자체를 하기가 어렵다. 

 

백엔드 엔지니어로 시작해서 커리어를 쌓은 데이터 사이언티스트는 뭐든지 할 수 있지만 그냥 데이터 사이언티스트는 온실 속에서만 성과를 낼 수 있는 상황이다. 그래서 내가 아는 데이터 사이언티스트들은 개발도 잘한다. 비단 데이터 사이언티스트 만의 문제가 아니라 AI 리서치도 마찬가지다.

 

요즘 학부생들이 전부 머신러닝 쪽에만 집중한다. 이게 뭐가 문제냐면 학부생이 머신러닝 모델링 조금 할 줄 아는 걸로는 아무것도 못만든다. 실제 실무에서도 일어나는 일인데 모델링만 할 줄 알면 아무것도 안 된다. 모델링은 전체 프로젝트의 5% 밖에 안된다.

 

전처리 엄청나게 해야하고, 데이터 엔지니어링 엄청나게 해야하고, 소프트웨어 개발해야하고. 소프트웨어 개발의 기본적인 요구사항은 변하진 않는다. 로그 관리도 잘해야 하고, 장애 관리도 해야하고, API 속도도 맞춰야하고 이런 것들은 다 백엔드 엔지니어링에 관련된 것이다.

 

그러니까 AI 프로젝트에서 성과를 내고 싶으면 모델링을 잘하는 건 5% 밖에 안된다. 그런데 학부생이 모델링을 아무리 잘해봐야 업계 석박사들보다 잘하긴 힘들다. 그러면 자연스럽게 무엇이 중요해지냐. 개발을 잘해야한다.

 

그러니까 AI 분야로 가고 싶은 사람들도 우선 백엔드 개발을 먼저 시작하는 것을 추천한다.

 

커리어를 정리하자면, 백엔드로 먼저 시작하고, 데이터 엔지니어링도 좀 다루면서, 머신러닝도 보는 것을 추천한다.

 

바로 AI로 가고 싶은 건 안다. 그게 멋있어 보이니까. 하지만 실제로 일이 되게끔 하려면 엔지니어링을 잘 해야 한다.

 

대부분 면접을 보는 사람들이 어떤 식이냐면 개발을 잘 못하는데 머신러닝 지식들을 조금씩 조금씩 안다. 그런 사람들이 되게 많다. 머신러닝 공부가 핫하니까 조금 해보고, 몇 가지 예제 돌려보고, 간단하게 MNIST로 토이프로젝트 만들어보는 분들이 대부분이다.

 

그런 분들이 놓치고 있는 게 커머셜 프로젝트에서 빡세게 엔지니어링을 경험해 보는 것. 그 경험 자체가 진짜 중요한 요소다. 실제로 일을 할 수 있는 역량이 있다는 것을 증명하는 것이기에. 그렇기에 백엔드 개발을 추천한다.

 

API를 어떻게 하면 좋고, 안정적으로 API를 서버를 운영하려면 어떻게 해야되고, 로그는 어떻게 남기고, 클라우드 환경에서 어떤 식으로 하면 인프라 관리를 좀 잘 할 수 있고, 장애가 났을 땐 어떻게 대응하면 좋고, 데이터 베이스에서 어떤 식으로 쿼리를 날려야지 속도가 빠르고, 이런 컴퓨터 사이언스에서 기본적인 펀더멘탈, API. 이런 것들을 실무 프로젝트에서 경험해 보는 것을 추천한다. 

 

너무 머신러닝에만 빠지지 말고 개발 역량에 집중해서 투자를 하다 보면 더 좋은 기회들이 생길 것이다.

 

 

 

항상 데이터 사이언티스트 일만 할 수는 없다

 

한 회사에 데이터 사이언티스트로 면접을 보고, 시험을 보고 입사를 했으나 데이터 사이언티스트가 필요한 일이 거의 없어지면 개발자와 같은 일을 하게 되는 경우가 많다.

 

한 개발자도 데이터 사이언티스트나 백엔드 엔지니어를 오가며 일을 한다.

 

 

 

데이터 엔지니어는 백엔드의 한 분야이다

 

데이터 엔지니어는 기본적으로 백엔드 경험이 있어야 한다고 한다. 때문에 데이터 엔지니어의 분야의 평균 연봉이 높은 이유가 신입이 있을 수 없기 때문이라고 한다.

 

백엔드는 서비스가 빠르게 출시될 수 있게 빨리빨리 일을 쳐낸다면 데이터 엔지니어는 거기서 한발짝 떨어져서 상대적으로 느긋하게 데이터를 바라보는 직군이라고 한다.

 

영상 출연자의 개인적인 생각이지만 데이터 엔지니어는 일종의 백엔드 분야의 유행, 트렌드 중 하나라고 생각한다고 한다. 

 

 

 

영상 내용들을 정리해봤는데 데이터 관련 직군 중에는 분석가가 가장 개발자랑은 떨어져 보였다. 그리고 데이터 관련 개발 직군으로 바로 취직할 순 없어 보인다. 일단 백엔드 개발자로 취업하면서 데이터 분야로 직무전환을 하는 방식이 많은 것 같다.

 

직무 전환은 특수대학원을 이용해 석사를 따는 방식으로 하는 경우가 많다고 하는데 그 부분은 나중에 더 살펴봐야겠다.

반응형