대니킴의 TEKnology
데이터 사이언스란?? - 배우기에 앞서... 본문
데이터 사이언스라는 분야를 처음 접한다면 데이터 사이언스가 과연 어떻게 정의되는지부터 알아야 합니다. 느낌적으로는 다들 아시겠지만 데이터 사이언티스트는 정확히 어떤 일을 하는 사람인가? 혹은 데이터 사이언스를 공부하려면 무엇을 어떻게 공부해야 하는가? 라는 질문에는 쉽게 대답하시기 힘들 겁니다.
이에 대하여 미국의 유명한 사업가이자 데어터 사이언티스트인 Drew Conway는 데이터 사이언스를 위의 사진과 같이 Venn Diagram으로 정의했습니다. 오히려 사업가보다도 저 벤 다이어그램적 정의로 더더욱 유명한 인물이죠. 이 유명한 정의에 의하면, Data Scientist는 Domain Expertise (자신의 연구분야에 대한 지식), Mathematical and Statistical Knowledge (수리 통계학) 그리고 Programming Skills or Computer Science (프로그래밍 능력 혹은 컴퓨터 공학적 지식) 이 세 가지를 모두 겸비한 과학적 분석가?? 입니다. 또한 그는 이 세 가지 역량 중 단 하나라도 부족할 시에, 그 데이터 과학자가 도출해 낸 결론에 대한 신뢰성은 떨어진다고 말합니다. 이 세 가지 지식들이 무엇이고 이들이 왜 꼭 필요할까요?
첫 번째로 Domain Expertise에 대해 알아볼게요. 제가 만약 데이터 과학자로서 자동차 교통사고 판례 분석을 통하여 한 사고에 대한 승소여부 예측을 한다고 가정해 봅시다. 하지만 저는 법률 전문가가 아니기 때문에 자동차 사고 전문 변호사와 같은 분을 모시지 않는 이상 저는 이 프로젝트를 원활히 진행할 수가 없습니다. 아무리 양질의 자동차 사고 기록 데이터가 주어 졌다고 하더라도, 그 데이터를 어떻게 사용할지에 대한 감각이 저는 부족하겠죠. 따라서 데이터 과학자는 현재 진행하려는 프로젝트 분야에 대한 지식이 많아야 합니다. 그래야 더 의미 있는 결과를 뽑아낼 수 있으니까요. (이러한 이유에서 많은 domain specialist와의 협업이 필요할 것 같네요^^)
두 번째는 Mathematical and Statistical Knowledge입니다. 데이터 사이언스나 인공지능 (특히 머신러닝/딥러닝)을 배워보신 분이라면 많이 공감하실거에요ㅎㅎ 으ㅡㅡ 그냥 다 수학입니다ㅋㅋㅋ 상대적으로 비교해 보았을 때, 데이터 사이언스 분야는 통계학적 센스가 필요하고 인공지능 분야는 선형대수학이 필수죠 (물론 통계학도 엄청 다루더라고요). 실제로 코드화 시키는 과정에서도 이러한 수학적 배경을 알고 있어야 자신이 무엇을 하고 있는 줄 알겠죠ㅎㅎ 그냥 라이브러리만 import 해서 의미를 제대로 모른 채 사용한다면 결코 좋은 결과가 나올 수 없을 것입니다. 현업에서 일하고 계시는 분들의 말씀을 들어보면 오픈 소스 라이브러리를 그대로 사용하는 경우는 거의 없다고 합니다. 결국엔 그 라이브러리를 자신의 프로젝트에 맞게 수정하는 과정이 필요하다는 이야기인데 그러려면 그 수학적 원리를 알아야 하겠죠ㅠㅠ
마지막은 너무나 당연한 Programming Skills / Computer Science입니다. 데이터 과학이나 인공지능의 수학적 모델을 코드화 시키고 프로그래밍으로써 최종적으로 프로젝트를 구현하고 더욱 효율적인 알고리즘을 사용하여 결과의 질을 개선시키는 부분입니다.
데이터 과학자... 지금 다시 보니 정말 대단한 분들이십니다... 정말 완벽한 데이터 과학자가 되는 길은 험난하겠지만 21세기의 가장 섹시한 직업이라고 불리어질만큼 매력 있고 어느 곳에나 쓰일 수 있는 분들입니다. 완벽한 프로그래밍 능력과 수리적 능력을 갖춘 상태로 수많은 Domain Expertise들을 받아들일 준비가 되어있다면 당신은 이 시대의 맥가이버가 아닐까요.