BI / CIO / How To / 개발자 / 경력관리 / 리더십|조직관리 / 비즈니스|경제 / 빅데이터 | 애널리틱스 / 오픈소스
데이터 과학자는 사람이 아니라 한 팀인가? – 데이터 과학자 역량 범위의 논란
2016년쯤에 필자가 빅데이터에 관해 읽었던 한 매체의 글에서 데이터 과학자는 한 사람이 아니라 팀을 의미한다는 요지의 주장을 펴는 글을 읽은 적이 있다. 그 글에서 그렇게 주장하는 근거는, 데이터 과학자가 갖추어야 한다고 알려졌던 역량들이 현실적으로 IT시장에서 한 사람이 갖출 수 있는 기술과 역량으로 보기에는 지나치게 스펙트럼이 넓고 많다는 것이었다.
필자가 그 글을 읽으면서, 새롭게 각광받는 IT업계의 직업군으로 떠오르고 있던 데이터 과학자에 대해, 데이터 과학에 대한 경험이 없는 IT전문가와 많은 전문 영역과 기술로 분화되어 전문성이 파편화되어 있는 IT업계에서 데이터 과학자를 보았을 때, 저렇게 다양한 분야의 기술과 역량을 갖추고 일하는 사람이 과연 있을 수 있는가라는 생각을 했을 수도 있겠다는 생각이 들었다. IT업계는 소프트웨어든 하드웨어든 새로운 기술이 부각되면 이 기술에 대한 전문성으로 컨설팅과 서비스, 제품을 제공하면서 업계에서 자리 잡는 것이 일반화되었기에 다양한 영역의 기술과 역량을 가지고 문제 해결에 집중하는 데이터 과학자의 역할과 역량에 대해서 다소 생소한 느낌이 들었을 수도 있겠다는 생각이 든다.
지금까지 IT전문가들은 하나의 기술, 하나의 제품을 깊이 있게 이해하고 이러한 깊이 있는 이해를 바탕으로 해당 기술을 구현한 제품이나 서비스가 고객의 비즈니스 문제 해결이나 운영을 어떻게 돕거나 개선할 수 있는지 컨설팅을 제공하고, 이러한 컨설팅 결과에 따라 제품이나 기술, 솔루션을 고객 비즈니스에 제공, 통합하는 것이 주된 일이었다. 이 때문에 하나의 기술이나 제품에 대한 전문성만으로도 IT전문가로서 활동할 수 있었다. 이런 관점에서 보면 데이터 과학자들이 갖추어야 할 것으로 기대되는 다양한 분야의 역량들을 과연 한 사람이 갖추는 것이 가능하냐라는 생각이 들 수도 있다.
데이터 과학자가 갖추어야 하는 역량의 영역이 넓고 종류가 많은 것은 사실이며, 실제로 그렇게 역량을 갖춘 데이터 과학자들이 활동하고 있다. 필자도 의도했던 것은 아니지만, CERN의 LHC 실험에 참여하여 연구개발을 하면서 관련된 다양한 역량들을 쌓을 수 있게 되었고, 그러한 역량들을 어느 하나만 사용하는 것이 아니라, 문제 해결에 모두 동원하여 사용하고 있다.
아무래도 갖추어야 하는 기술과 역량에 대한 영역이 넓다 보니 모든 영역에서 전문가 수준의 깊이에 도달하는 것은 어려울 수 있다. 좀더 구체적으로 얘기하기 위해 IT 기술에 한정해서 얘기하다 보면, 데이터 과학자로서 업무를 하면서 당면한 문제를 해결하기 위해 다양한 IT 기술들을 활용하다 보면 한 기술, 한 기술에 대한 깊이가 모두 똑같이 깊을 수는 없다.
데이터 과학자들이 맞닥뜨리는 문제는 이전에 없던 문제인 경우가 많기 때문에 당연히 이에 대한 솔루션이나 특화된 기술이 없는 경우도 많다. 이렇게 새로운 문제를 해결하기 위해 기존의 IT 기술들을 활용하여 새로운 솔루션이나 기술들을 조합하여 활용하고 문제 해결에 맞게 통합하다 보면 자연스럽게 사용된 IT 기술들을 피상적으로 이해하고 사용하기보다는 좀더 깊이 있게 이해해야 할 필요를 느끼게 된다. 이렇게 데이터 과학자로서 문제에 맞닥뜨려 해결하는 이력과 경력이 쌓이다 보면 자연스럽게 다양한 IT 기술에 대한 깊이와 역량이 쌓이게 된다.
그래서, 데이터 과학자는 한 사람이 아니라 팀이라는 주장은 일부 맞는 주장이기도 하지만, 반드시 옳다고 볼 수 없다. 데이터 과학을 통해 풀어내야 하는 문제가 한 데이터 과학자가 혼자의 힘으로 풀어낼 수 없는 문제인 경우가 많기 때문에 팀으로 일해야 하는 것은 맞지만, 데이터 과학자는 우선 다양한 영역의 기술과 역량을 어느 정도 이상의 수준으로 갖추어야 그 역할을 다할 수 있다. 이런 이유로 데이터 과학자로서 다양한 영역의 기술과 역량을 쌓은 전문가를 찾기가 어렵기 때문에 데이터 과학자의 몸값이 점점 더 높아지고 있는 것이 아닌가 한다.
지난 스물 세번째 칼럼에서 데이터 과학자의 특성에 대해서 살펴보면서 데이터 과학자가 갖추어야 할 역량에 대해서도 간단히 언급한 바가 있는데, 오늘 다시 한번 자세히 살펴보도록 하자.
우선 데이터 과학자로서 갖추어야 할 가장 기본적인 역량은 바로 과학적, 비판적 사고 능력이다. 이전 스물 네번째 칼럼에서 데이터 과학자들은 연역적, 귀납적 사고방식을 모두 활용하여 과학적으로 생각하고 문제에 대한 해결책과 결론을 도출하는 사람들이라고 말한 바 있다.
이런 과학적, 비판적 사고 능력은 하루아침에 길러지지 않는다. 다양한 문제를 접하고 해결하는 과정에서 과학적, 비판적 사고방식을 이용해 문제를 해결한 시간에 비례하여 그 역량의 성숙도가 높아진다. 이런 이유로 단순히 데이터 분석 도구에 익숙하다고 해서 이런 과학적, 비판적 사고 능력이 길러지는 것은 아니기 때문에 데이터 과학자를 찾기가 쉽지 않은 것이다.
두 번째로 데이터 과학자에게 가장 중요한 역량은 현재 주어진 상황을 개선할 수 있는 새로운 문제를 찾아내고, 이 문제를 현재의 기술과 자신이 가진 기술과 지식으로 풀어낼 수 있는 문제로 재정의할 수 있는 역량이다.
이는 많은 과학자가 과학자로서 가장 많이 훈련받는 역량 중의 하나이다. 사실, 많은 비즈니스 문제를 포함해서, 주어진 문제를 어떻게 정의하느냐에 따라 문제 해결의 실마리가 쉽게 나타날 수도 있고, 해결하기 아주 어려운 문제가 되기도 한다. 문제를 잘 찾아내고 이를 풀 수 있는 문제로 다시 정의할 수 있으면 문제의 절반은 이미 해결된 것과 같다. 주어진 대상에 대해서 문제를 찾아내어 정의하는 부분은 오직 과학자들만 할 수 있는 창의적인 영역이다. 데이터 과학에서도 데이터 과학자가 속한 비즈니스에서 비즈니스를 개선하고 성장시키기 위한 문제들은 그 누구도 푼 적 없는 새로운 문제일 가능성이 높다. 이런 문제들을 해결 가능한 문제로 재정의해서 풀어내는 일은 창의력이 요구되는 고도의 전문화된 작업으로 데이터 과학자들이 조직과 기업에 필요한 이유가 된다.
세 번째로, 문제 해결에 도움이 되는 정보를 얻기 위해 데이터를 선별하고 데이터 수집 및 정보 가공 프로세스를 설계할 수 있는 능력이다.
이전 연재에서도 거듭 강조했듯이, 빅데이터 비즈니스에서 가장 중요한 것은 비즈니스를 위한 정보를 어떤 방식으로 얻어 데이터로 변환하고, 이 데이터를 가치 있는 정보로 변환하느냐 하는 것이다. 데이터 과학자는 조직과 기업에서 요구하는 빅데이터 비즈니스 모델에 따라 비즈니스에 필요한 정보를 어떻게 데이터로 수집할 수 있을지 창의적으로 설계하고, 이런 데이터 수집 및 가공 프로세스가 자동화된 정보 시스템으로 구축될 수 있는 구체적인 프로세스로 만들어 낼 수 있어야 한다.
이런 데이터 수집 및 가공 프로세스를 정의하고 구체적인 시스템으로 설계해내기 위해서는 데이터 수집과 관련된 센서, 데이터 소스(source) 및 데이터 수집 장비와 기술에 대한 전문 지식, 데이터 가공 및 처리를 위한 하드웨어, 소프트웨어를 포함한 IT 기술의 특성과 기술적 세부 사항과 한계에 대해서 잘 이해하고 있어야 한다. IT 기술과 데이터 소스에 대한 지식을 충분히 갖추어야 설계할 수 있기 때문에 어느 정도 수준 이상의 전문성이 필요하다.
네 번째로, 현재 데이터 과학자의 역량과 관련해서 가장 많이 언급되고 있는 역량인, 데이터를 가공, 분석하고 자신이 원하는 결론을 내기 위해 필요한 IT 기술 역량이다. 이런 데이터 가공 및 분석에 관련된 IT 기술들이 바로 많이 알려진 하둡, 스파크와 같은 빅데이터 기술, HBase, 하이브(Hive), 카산드라(Cassandra), 몽고DB(MongoDB), 임팔라(Impala) 등으로 알려진 NoSQL DB와 데이터웨어하우스 기술, 그리고, R, 파이썬 등으로 대표되는 데이터 분석 환경이다.
전에도 간단히 언급했듯이, 데이터 과학자가 이런 모든 기술을 처음부터 다 익혀 기술로서 가지고 있을 필요는 없다. 대개 문제 해결 과정에서 필요에 의해 쓰다 보니 전문적인 수준에 이르는 경우가 많다. 대개의 데이터 과학자들은 자신이 즐겨 쓰는 한, 두 가지의 소프트웨어 기술과 도구가 있게 마련이며, 이런 즐겨 쓰는 소프트웨어 기술과 도구를 통해 문제 해결을 반복적으로 하다 보면 새로운 기술이나 도구가 필요했을 때 습득하는 시간과 노력이 크게 많이 들지 않을 정도의 소양이 쌓이기 마련이다.
이런 데이터 가공과 분석에 필요한 소프트웨어 기술 및 도구를 잘 활용하기 위해서는 기술과 도구에 대한 깊은 이해도 필요하지만, 분석하고자 하는 문제를 컴퓨터를 이용해 다루고 자동화할 수 있는 구체적인 논리로 바꾸어 줄 수 있는 수리 과학, 통계학, 컴퓨터과학에 대한 기본적인 소양과 지식이 어느 수준 이상으로 필요하다. 이런 수리 과학, 통계학, 컴퓨터과학에 대한 기본적인 소양과 지식은 문제 해결을 위한 IT 기술을 익히고 소화하여 활용하기 위한 기본적인 배경지식으로서 모든 데이터 과학자가 기본적으로 갖추어야 할 역량이다.
다섯 번째로, 데이터 과학을 통해 문제를 해결할 대상이 되는 비즈니스 조직과 운영, 비즈니스가 일어나는 산업 전반에 대한 지식과 이해가 필요하다. 이를 위해서 경영학, 경제학이나 회계 및 기업 재무, 법무 등 비즈니스 조직에 관한 모든 지식이 필요하거나 한 것은 아니지만, 어느 정도의 경영학, 회계 및 기업 재무에 대한 지식은 데이터 과학자 자신이 일하는 조직의 비즈니스 모델과 그 작동 방식을 이해하고 데이터 과학적 문제 해결 방법론을 적용하기 위해 도움이 되는 경우가 많다.
비즈니스 조직과 운영 전반에 관련된 경영학, 경제학, 회계 및 기업 재무에 관련된 지식은 데이터 과학자 자신들이 풀고자 하는 문제가 기업 경영에 어떤 연관이 있는지, 어떻게 적용될 수 있는지, 현재 다루고자 하는 비즈니스 모델을 어떻게 개선할 수 있는지 이해하고 조직의 비즈니스 모델과 데이터 과학 활동을 정렬하여 그 효과를 극대화하기 위해 꼭 필요한 역량이라고 볼 수 있다.
비즈니스 조직과 운영 전반에 대한 지식과 이해는 데이터 과학 팀 내부에서 경영, 경제학, 회계, 재무 관련 전문가가 같이 합류하여 일하면서 보완되는 경우가 많다. 데이터 과학팀에서 이런 경영, 경제, 회계 및 재무 전문가를 영입하여 비즈니스 도메인에 대한 역량과 지식이 보완될 수 있기는 해도, 이들이 얘기하는 문제와 요구 사항을 이해하고 같이 데이터 과학을 이용한 해결책을 만들어 내기 위한 커뮤니케이션을 위해서는 최소한의 이해와 지식을 데이터 과학자가 갖추는 것이 바람직하다.
여섯 번째로, 어쩌면 가장 기본적인 역량이 될 수 있겠지만, 데이터 수집, 가공, 분석을 위한 논리와 생각을 소프트웨어로 만들어낼 수 있는 소프트웨어 개발 역량이다. 아무리 좋은 IT 기술을 활용한다고 하더라도, 이들 빅데이터 및 데이터 과학 관련 IT 도구들은 기본적으로 프로그래밍과 소프트웨어 개발 역량이 필요하다. 데이터 과학자는 기본적으로 소프트웨어 엔지니어의 역량을 갖추고 있어야 한다.
개발하려는 소프트웨어의 도메인에 따라서 소프트웨어 엔지니어의 역량과 기술이 매우 다를 수 있어서, 데이터 과학을 위해서 모든 종류의 소프트웨어 개발 및 엔지니어링 역량을 다 갖추어야 한다고 얘기하는 것은 아니다. 다만, 수치 계산 및 해석, 통계학적 분석을 위한 계산 및 데이터 조작, 복잡한 데이터 분석 로직을 설계하고 구현하기 위한 데이터 분석 알고리즘과 관련된 수학적 배경지식을 이해하고 이를 프로그래밍 언어로 재활용 가능한 소프트웨어 모듈로서 구현해낼 수 있는 정도의 역량을 말한다.
데이터 과학 활동의 산출물들은 결국 모두 데이터 가공, 분석 플랫폼에서 실행될 수 있는 프로그래밍 언어로써 기술될 수밖에 없다. 자신이 생각한 데이터 가공, 분석 논리를 적절한 프로그램 언어로 표현하고 소프트웨어로 구현해내기 위해서는 소프트웨어 엔지니어 마인드는 필수적으로 갖출 수밖에 없다.
설사 빅데이터 비즈니스 시스템에서 실제로 돌아가는 소프트웨어 모듈은 데이터 엔지니어나 전문 소프트웨어 엔지니어가 분담하여 전문적으로 개발한다고 해도, 이들 데이터 엔지니어와 소프트웨어 엔지니어들이 데이터 과학자들이 생각하고 분석한 것들을 적절하게 표현해서 소프트웨어로 완성하기 위해서는 데이터 과학자 자신들이 소프트웨어 마인드를 가지고 커뮤니케이션할 수밖에 없다. 어떤 경우에도 데이터 과학자들이 소프트웨어 마인드를 가지고 일하는 것은 반드시 필요하며, 제일 좋은 것은 데이터 과학자들이 데이터 엔지니어, 소프트웨어 엔지니어의 역할을 겸하는 것이 좋다.
일곱 번째로, 빅데이터 비즈니스에서 나타나는 잘 정의되지 않은 문제를 풀어낼 수 있는 문제로 만들고, 이를 해결하기 위한 협업을 할 수 있는 원활하고 창의적인 커뮤니케이션 능력이 필요하다.
빅데이터 비즈니스에서 데이터 과학자들이 맞닥뜨리게 될 문제들은 이전의 문헌에서 직접 언급되지 않은 새로운 종류의 문제일 가능성이 높다. 그럴 수밖에 없는 것이 이미 누군가가 해결한 문제라면 이미 사업화가 되어 누군가가 서비스하고 있을 것이기 때문이다. 아무도 생각하지 못한 새로운 비즈니스 모델이어야 시장에서의 경쟁력이 있고, 이렇게 아무도 생각하지 못한 새로운 비즈니스 모델을 비즈니스로써 구현하는 경우 구현하면서 맞닥뜨리는 문제들은 누구도 똑같이 풀어내지 못한 새로운 문제들일 수밖에 없다.
이런 새로운 문제들을 빅데이터 비즈니스 맥락에 맞게 풀어낼 수 있는 구체적인 문제로 정의하고, 이 문제들을 풀기 위한 정보를 구체적인 데이터 형식과 가공 과정, 분석 과정으로 정의하고 만들어 내기 위해서는 여러 데이터 과학자들의 지혜와 역량을 모아 협업을 해야 한다. 이런 협업 과정에서 자신의 아이디어와 데이터 분석의 핵심, 그리고 빅데이터 비즈니스 시스템에서 효과적으로 작동하는 소프트웨어 모듈로서 구현해내는 과정을 적절하게 표현하고 동료 데이터 과학자, 데이터 엔지니어, 소프트웨어 엔지니어들에게 정확하게 전달하기 위해서는 높은 수준의 커뮤니케이션 기술과 대인 관계 기술이 필요할 수밖에 없다.
이런 커뮤니케이션 기술이라는 것은 단순히 말과 글을 잘 쓰는 것만 포함된 것이 아니다. 자신과 같이 일하는 동료와 전문가들의 특성과 배경, 각자의 개성에 맞게 이해할 수 있는 방식으로 표현되어야 한다는 것을 의미한다. 이렇게 데이터 과학자들이 커뮤니케이션하기 위해서는 각각의 개성을 지닌 동료들을 잘 이해하고, 각 동료의 특성에 맞게 존중하여 대할 수 있는 인내심과 대인 관계 기술도 같이 필요하다.
앞에서 간단히 같이 정리해본 데이터 과학자의 역량은 기업의 일반 구성원들이 보기에는 상당히 폭이 넓고 전문적인 높은 수준의 역량을 갖추어야 하는 것으로 보인다. 이렇다 보니 한때 데이터 과학자란 한 사람을 의미하는 것이 아니라 하나의 팀을 의미하는 것이라고 주장하는 분들도 있었고, 데이터 과학자의 역량 범위에 대한 논란도 기술 관련 미디어에서 있었던 것으로 기억한다.
최근에는 데이터 과학자가 갖추어야 할 역량이 다양하고 폭이 넓다는 것을 인정하는 분위기이다. 다만, 아무리 뛰어나고 다양한 역량을 갖춘 데이터 과학자라고 하더라도, 데이터 과학 업무의 양과 복잡도를 고려했을 때 비즈니스의 속도에 맞추어 적절한 결과를 낼 수 있으려면 혼자서 모든 일을 할 수는 없기 때문에 데이터 엔지니어, 비즈니스 전문가, 소프트웨어 엔지니어들과 팀을 이루어 협업하는 것이 정착되어 가고 있다[2-4].
앞에서 정리한 데이터 과학자로서 필요한 역량들은 그 폭과 전문성이 일반인들이 받아들이기에는 수준이 높기 때문에 데이터 과학자란 한 사람이 아니라 팀을 의미한다고 생각하는 것도 무리는 아니다. 위에서 언급한 역량과 자질들은 데이터 과학자가 온전하게 자신의 일을 다하기 위해서 필요한 것들이다. 즉, 위의 역량과 자질들을 갖춘 데이터 과학자들이 있고, 필자만 해도 그렇다. 다만 모든 종류의 역량과 자질을 고르게 높은 수준으로 갖추게 되기가 쉽지 않은 것이고, 각 데이터 과학자의 성장 경로 및 업무 이력에 따라 분야별로 더 잘하거나 부족한 부분이 있을 수는 있다.