데이터 과학 개념이 어느 정도 자리를 잡고, 데이터 레이크가 구축되기 시작하면서 많은 기업체 내에는 소위 데이터 분석 팀이라 불리는 조직들이 생기기 시작합니다. 세부적인 업무 내용은 차이가 있을 수 있지만, 이런 팀들의 공통적인 목적은 데이터에서 의미를 발굴하여 그것을 비즈니스 성과로 연결시키는 것입니다.
데이터 분석 팀은 다양한 분야에서 생겨나서 많은 응용 업무를 수행했는데, 예를 들어 제조업에서는 공장 운영 최적화, 생산 수율 증대, 불량률 감소 등의 응용이 활발히 이루어졌고, 서비스업 분야에서는 고객 관리, 고객 맞춤형 제품 추천 등의 응용이 이루어졌습니다. 전통적인 대기업의 경우 데이터 분석 팀은 중요 지원 부서인 경우가 많으며, 소기업이나 벤처 기업의 경우 데이터 분석 팀의 역량이 그 자체로 회사의 핵심 경쟁력이 되는 경우도 자주 발견됩니다.
데이터 분석 팀은 어떻게 구성될까요? 데이터 분석 팀원의 역할을 3가지[1]로 분류하는 경우도 있고, 10가지[2]로 분류하는 경우도 있는데, 다음과 같이 두 단계, 6가지로 분류하는 것도 괜찮을 것 같습니다.
- 인프라 개발자 (Infrastructure Developer)
- 데이터 엔지니어 (Data Engineer)
- 데이터 과학자 (Data Scientist)
- 분석가 (Analyst)
- 통계학자 (Statistician)
- 머신 러닝 엔지니어 (Machine Learning Engineer)
- 연구자 (Researcher)
인프라 개발자는 하드웨어 인프라와 그 위에 설치된 하둡 등의 빅 데이터 처리 도구들을 유지 보수하고, 데이터 엔지니어나 과학자가 그 인프라를 편리하게 사용할 수 있도록 여러 가지 도구도 추가로 개발하는 사람들을 말합니다. 아마존과 같은 외부 클라우드 인프라를 활용하는 경우, 이 인프라를 셋팅하고 관련 도구를 개발하는 사람들도 여기에 포함됩니다.
데이터 엔지니어는 앞서 설명했던 데이터 레이크의 가공되지 않은 원본 데이터를 팀의 업무 요구에 맞게 가공하는 임무를 담당합니다. 그리고 더 나아가, 팀에서 쓸 데이터를 가져와서 가공하고, 팀 내에서 생성한 결과물을 외부로 내보내는 자동화된 시스템을 개발, 유지 보수하는 일을 맡기도 합니다. 이러한 시스템을 데이터 파이프라인이라 부르며, 이 파이프라인은 하둡을 비롯한 다양한 오픈 소스 소프트웨어를 기반으로 구성됩니다.
데이터 과학자의 업무는 크게 4가지 성격으로 분류할 수 있습니다.
우선 분석가는 데이터를 살펴보고 영감과 인사이트(Insight)를 얻습니다. 이들은 주로 영업을 담당하는 리더인 경우가 많습니다. 이들은 주로 팀 전체를 이끌면서 요구사항을 불어넣는 역할을 합니다. 이들은 데이터의 시각화에 능하며, 주로 그 시각화 결과를 통해 데이터의 의미에 대한 초기 통찰을 얻습니다.
데이터에 대한 인사이트란 사실 거창한 무언가가 아닙니다. 아래 그림을 보고 네스호에 괴물이 있지 않을까 하고 생각한다면, 그런 것도 일종의 인사이트라고 할 수 있습니다.[2] 인사이트는 어떤 의견이든 상관없습니다. 이후에 통계적 검증, 머신 러닝 성능 평가만 엄정하게 이루어진다면 말입니다.
[그림 1] 네스호의 괴물
다음으로 통계학자는 말 그대로 전통적인 통계학자로서 데이터 분석 과정에 참여하는 사람입니다. 기술 통계 기반의 여러 기초 분석을 수행할 수도 있고, 통계 모델을 수립할 수도 있습니다. 그러나, 데이터 비즈니스 팀에서 통계학자라고 불리는 사람의 가장 핵심적인 역할은 팀이 통계적 엄밀함을 추구할 것을 지속적으로 주장하는 것입니다. 데이터 과학이 효율성을 위해 통계적 엄밀함을 일부 포기한다고는 하지만, 너무 심한 오류는 바로 잡아야 하기 때문입니다. 특히 분석 대상 데이터 자체가 가지고 있는 여러 가지 편향들에 대한 검토는 최종 분석 결과까지 지대한 영향을 끼치기 때문에 초기에 바로 잡을 필요가 있습니다.[3]
머신 러닝 엔지니어는 통계학과 컴퓨터 공학이 만난 영역 즉 머신 러닝 영역을 담당합니다. 이들은 오픈 소스 도구를 활용하여 다양한 머신 러닝 모델을 학습시키는 역할을 합니다. 예를 들어 신경망에 대한 기본적인 이해를 가지고 있으면서, 텐서플로우 사용법을 잘 익히고 있는 소프트웨어 개발자가 머신 러닝 엔지니어라 할 수 있습니다. 이들은 응용 머신 러닝 엔지니어(Applied Machine Learning Engineer)라고도 불립니다.[4]
마지막으로 연구자는 머신 러닝 알고리즘 또는 오픈 소스 자체를 개발하고, 연구 논문을 쓰는 사람들을 말합니다. 많은 경우 통계학이나 머신 러닝 분야 대학원 과정을 마친 사람들이 이 일을 합니다. 이들은 머신 러닝 엔지니어나 통계학자의 역할을 완벽하게 해낼 수 있습니다만, 주 관심사는 새로운 알고리즘의 개발로 데이터 과학 세계 전체에 기여하는 것입니다. 이 사람들은 강력한 만능의 패라고 할 수 있습니다만, 대부분의 데이터 비즈니스 팀에는 불필요한 호사(Luxury)이기도 합니다.[5] 사실 연구자는 데이터 비즈니스 팀 멤버의 역할 중 하나로 언급되지 않는 경우가 많습니다. 이들은 많은 경우 기업체가 아니라 학교에 있습니다.
여기 언급된 다양한 역할은 역할마다 한 사람씩 지정되어 있어야 하는 것은 아닙니다. 소규모의 팀에서는 한 사람이 데이터 엔지니어와 머신 러닝 엔지니어 역할을 겸하거나, 머신 러닝 엔지니어와 통계학자 역할을 겸할 수 있습니다. 분석가나 연구자 역할만 하는 사람을 팀에 두는 경우는 거의 없습니다. 이 역할은 보통 팀 리더가 겸하거나 팀원 전체가 나누어 담당합니다.
데이터 과학자라는 용어는 의미가 확장되어 쓰이는 경우가 있습니다. 본문에서 언급된 것처럼 통계학과 머신 러닝 기술 중심의 역할을 의미하는 경우가 많지만, 데이터 과학자라는 말로 데이터 엔지니어까지 포함하는 개념으로 사용되는 경우도 있습니다. 예를 들어, 많은 데이터 과학 서적이나 교과 과정이 통계학과 머신 러닝뿐만 아니라 데이터 엔지니어링 영역도 일부 내용으로 포함하고 있습니다.[6] 글을 읽거나 발표를 들을 때 문맥상 잘 판단하여야 할 부분입니다.
데이터와 직접적인 관계가 없기 때문에 여기 언급되지 않았지만, 분석 팀에 도움이 되는 역할들이 더 있다는 것도 알아두시기 바랍니다. 예를 들어 프론트앤드(Front-end) 개발자는 데이터의 시각화를 체계화 함으로써 분석 팀 업무에 크게 기여할 수 있습니다.
[3] 데이터 편향의 유명한 사례로, 2016년에 나온 "얼굴 사진으로 범죄 성향 예측하기(Automated Inference on Criminality using Face Images)" 논문이 있습니다. 이 논문은 윤리적으로 심각한 비판을 받았지만, 데이터 편향 오류로도 웃음거리가 되었습니다. 범죄자 사진은 경찰청 제공 증명 사진을 사용하고 비범죄자 사진은 SNS등 웹에서 가져다 썼는데, 결과적으로 '범죄 성향' 보다는 '굳은 표정'을 예측하는 모델을 만들었다는 비판을 받습니다. https://www.callingbullshit.org/case_studies/case_study_criminal_machine_learning.html
[4] 게임 용어로 말하자면, 머신 러닝 엔지니어와 데이터 엔지니어는 소프트웨어 엔지니어가 2차 전직하여 되는 것입니다.
[6] 다만, 많은 경우 그런 교과 과정이 데이터 엔지니어링 관련 내용을 포함하는 이유는, 데이터 과학자의 본래 역할, 즉, 통계/분석 역할을 수행함에 기본적으로 엔지니어링 기초 지식도 필요하다고 생각했기 때문이지, 데이터 과학의 영역에 엔지니어링도 들어간다고 보는 경우는 많지 않습니다. 이 책도 마찬가지입니다.