3년차 데이터과학자로 주 언어는 파이썬을 공부하고 사용한다. R 프로그래밍으로 제한된 현업 과제에 참여한 적 있고, 좀 더 직접적으로 R 코드를 분석하는 일로 돈을 받아 일한 적도 있었다. 그렇지만 함께 근무하는 사람들과 팀에서 파이썬 요구사항이 높다보니 자연스럽게 파이썬 정체성을 좀 더 키우게 된 것 같다.
"개발자는 아닌데요 개발 공부를 해야하나요?"
질문에 갇혀 있을 때가 있었다. 개발자의 개발이란 소프트웨어 개발 주기에 맞춘 업무 방식을 포함하여 컴퓨터 공학 배경 지식에 이르는 덩어리 지식이다. 사실 그 무엇이든 내가 배워서 손해보는 것이 없고 잘 해서 나쁜 것이 없음에도 불구하고 말이다. (개발 이외에도) 배울 게 많은데 개발까지 배워야 하는지 불평하거나 우선순위를 따져보자고 한거 같다.
주피터 노트북 너머의 데이터과학
내가 대학원에서 데이터 과학을 전공하고 석사 학위를 취득하기까지 공부는 대체로 어떤 데이터가 신뢰할 수 있는지 판별하는 법과 데이터를 어떻게 탐색하고 활용할 수 있는지, 그래서 어떠한 인사이트를 도출할 수 있는지에 초점이 맞춰져 있었다. 머신 러닝 모델을 구축하고 평가하는 방법이나 시각화 기법 같은 것들을 배웠다.
현업 업무를 시작하면서부터는 인사이트를 얻고자 하는 과제가 할당되었다. 주로 문제 해결을 위해 어떤 데이터를 사용할 것인지 찾고 어떤 가설 설정 안에서 어떤 모델을 세웠을 때 원하던 바가 도출되는지 논한다. 대학원 공부와 반대 방향으로 초점이 바뀌었다. 서로 다른 곳에서 수집된 데이터를 연결하는 데이터 엔지니어링이나 특정 데이터를 바탕으로 무엇을 할 수 있는지 도메인 지식을 추가로 배웠다.
그 과정에서 데이터 과학자인 나에게 요구되는 파이썬 능력은 개발자와 같지 않았다. 많은 경우에 독립적인 프로젝트를 맡아 혼자 진행한다. 그렇게 설정된 업무환경이 많고 그렇게 훈련되어 있다. 데이터를 끌어와 정제하고 모델이 읽을 수 있게 변환한 다음 평가하고 보고하는 일련의 과정에서 주피터노트북이 만연하게 사용된다. 스토리 전개하기에 무척 좋은 도구이지만 협업의 관점에서 생각해본다면 주석 작성 방식부터 시작해 클린 코드 원칙을 적용하기 어려운 한계가 있다. 또한 배치 스크립트를 구성할 일이 적고 프로덕션 레벨이 아닌 과제진행으로 변경점 관리 노하우가 적으며 분석 코드 앞뒤 모듈과 연결하기 위한 모델단위 객체화 방법을 숙지하지 못해 어렵게 느끼고 했다.
데이터과학자의 공부
데이터과학자를 양성하는 과정들이 단기 코스에 집중되어 근본적인 한계가 있다. 머신러닝 수업을 듣고 시험 점수를 잘 받았다고 한들 그것이 내가 머신러닝을 마스터했다는 의미는 아니다. 기본적인 도구 사용법들을 배운 것으로 현업에서 실제 문제들을 마주하며 과제 적응력을 시험하는 업의 특성이 있다. 이것저것 고민해보고 부딪혀본 경험이 많아야 한다. 그러면서도 새로 나온 기술을 기존에 자신이 가진 워크플로우에 어떻게 적용할지에 대한 도전을 이어한다.
예를 들어 챗지피티 출시는 내가 석사 학위를 받은 이후였다. LLM 모델이해에 대한 수요가 높아지면서 자연스럽게 과외 공부를 해야 하던 시기가 있었다. 한때 채용공고는 NLP Engineer를 중점으로 올라와 해당 기술을 모른다면 채용시장에 도태된다는 불안을 조성하기도 했다. 이후에도 끊임없이 Gen AI 활용에 대한 폭넓은 담화가 오가며 RAG 등 기술적으로 따라잡아야 할 부분 뿐만 아니라 윤리적 사회적 함의를 파악하는 것까지 요구하곤 한다. 데이터 과학자가 된 이상 일상적으로 새로 나온 것들을 공부하느라 바쁜 것 같다.
그래서 데이터과학자 리소스는 비싸다. 같은 문제를 여러 사람에게 주어 비교하거나 동시 진행을 하지 못할 만큼 팀에 여유가 없다. 협업이라기 보단 동료 평가가 대부분이다. 시니어들은 여러 개의 프로젝트를 들고 PM의 역할에 가깝게, 그러나 기술 조언자의 입장에서 방향성을 제시해 줄 수 있다. 액션을 실행하는 일개미 노드는 하나였던게 대부분이고 규모가 클 때는 서로 다른 부분을 도맡아 병합할 수 있게 하는 경험들이 대부분인 것 같다.
다시 돌아서 개발 공부
내 상황에서는 조직 변화로 내게 요구하는 역량이 변화한 것이 가장 크다. 데이터과학자들에게 다소 부족한 소프트웨어 개발 영역을 외부 컨설턴트로 내주어 별도 시스템을 발주하였는데 이를 모두 인하우스로 끌어와 내부적으로 데이터 링크를 손보고 프로덕션 레벨로 릴리즈 하는 작업이 데이터과학 역할 안으로 들어왔다.
CI/CD 관점에서 모델이 구성되고 변경 피드백 구조가 잘 돌아갈 수 있게끔 Azure DevOps, Databricks workflow, 또는 Gitflow 등 여러 가지 플랫폼들을 돌아가며 파이프라인 설정을 하고 있다. 터미널 사용과 배쉬 커멘드에 아직도 익숙해지지 않은 것 같다. 팀에서 하나둘 디플로이 하는 모델들이 늘어나고 ... 조직 내 다른 팀 대비하여 우리가 가장 기술 선두주자에 앞서 있다보니 코드 리뷰 의뢰도 많이 들어온다.
정답이 없는 문제 풀이 과정에서 좀 더 표준이 되는 교본을 찾으려다보니 개발 공부를 하게 되었다. 운영 관점에서 광범위하게 통용되는 규칙들을 따라 내가 일하는 방법을 바꿔가고 있고 다른 이들과 협업방법도 개발자st하게 팀 내부적으로 정리해 가는 중이다.
걔중에 기회가 되어 중급파이썬 교재의 베타리더로 참여하고 있다. 이번주말까지 마무리될텐데 개인적으로 얻은 것들을 정리한 글을 다음 글또 제출로 계획하는 중이다. 오늘 기록을 마침
'글또9기10기:영국직장:데이터과학' 카테고리의 다른 글
런던직장: 엑셀모델 파이썬화 (2) | 2024.11.08 |
---|---|
런던직장: 월간 해커톤 고민중 (8) | 2024.11.07 |
글또 10기 | 다짐하기 위한 글 (4) | 2024.09.30 |
글또 9기 | 장기휴가 후 우선 업무 파악 (0) | 2024.05.12 |
글또 9기 | 회사 업무로 학회 발표까지 (2) | 2024.03.17 |