'프로그래밍 능력'에 해당되는 글 1건

  1. 2016.06.16 '데이터 사이언스' 다시 생각하기
Share           Pin It
데이터 과학 Data Science 또는 데이터 과학자 Data Scientist에 대해서 검색해보면 아래의 다이어그램 또는 비슷한 설명을 필히 보게 된다. 데이터 과학자는 프로그래밍 능력과 수학과 통계에 대한 지식과 도메인/비즈니스에 대한 이해가 있어야 한다는 내용이다. 물론 이 세가지 영역에서 모두 또는 특정 영역에서 확연히 뛰어나면 좋겠지만 전문 개발자들보다 프로그래밍에 능할 수 없고 수학만 파고든 사람들이나 한 분야에서 수년간의 경험을 쌓은 이들보다 더 뛰어날 수가 없다. 그러나 이 세분야에서 고른 지적 능력을 가져야 함을 부인할 수 없다. 

데이터 과학자는 어떤 능력이 필요한가? (출처. Quora, 아래링크)


데이터 과학에 대해서 더 자세히 알고 싶은 이들은 다음의 Quora 쓰레드를 참조하면 된다.

오늘 글을 적는 것은 단순히 위의 다이어그램을 소개하거나 각 영역에 대해서 자세히 알려주기 위함이 아니다. 페이스북을 통해서 수학을 전공하는 어느 대학생이 금융공학에서 데이터마이닝을 해보고 싶다는 진로 상담을 해왔는데, 질문을 제대로 읽지 않고 바삐 출근하는 길에 잠시 생각했던 생각을 적으려는 것이다.

질문을 제대로 읽기 전에는 이 세 영역의 중요성을 말해주면서 지금 어차피 수학을 전공하고 있으니 어떻게 해서라도 프로그래밍 언어 하나 정도는 마스터하라는 조언을 해줄 참이었다. 그리고 비즈니스/도메인 지식을 습득하는 것이 가장 중요하지만, 이것은 학부 과정 학생이 쉽게 얻을 수 있는 것도 아니고 나중에 대학원에 진학하거나 취직을 해서 여러 프로젝트에 참여하고 경력을 쌓다보면 자연히 얻게 되는 것이다정도로 조언을 해줄 참이었다. 물론 질문의 요지는 이게 아니었기 때문에 다른 대답을 해줬지만...

그런데, 프로그래밍, 수학/통계, 그리고 도메인 지식… 이 세 영역의 의미를 다시 생각하면서 데이터 과학에 대한 생각이 좀더 발전했다. 첫째, 수학/통계 지식은 데이터 과학의 원리나 기초를 제공해주는 것 같다. 소위 말하는 데이터 분석 또는 마이닝에서 (고급) 수학이 핵심이 되지 않는 경우가 많기는 하지만 -- 특히 데이터가 충분히 많은 경우 --, 적어도 데이터에 내재한 패턴/의미를 이해하는데 기초 수학과 통계는 원리적 가이던스를 제공하다.

둘째, 프로그래밍은 데이터 과학의 실행을 담당한다. 요즘은 많은 통계 및 분석 패키지나 오픈소스가 존재하기는 하지만, 여전히 많은 경우 코딩이라는 행위가 이뤄져야 한다. 수학 지식만으로 많고 다양한 데이터 속의 패턴과 의미를 밝혀낼 수가 없고, 많은 도메인 경험은 중요한 인사이트를 주지만 인사이트가 결론이 될 수가 없다. 결국 인사이트를 검증하기 위해서 데이터를 하나하나 캐나가는 과정이 필요한데 그 과정이 결국 코딩/프로그래밍의 도움없이 이뤄지지 않는다. 멋진 툴들이 이런 과정을 쉽게 해주기도 하지만, 아직 만능의 툴은 없다. 손으로 직접 해봐야 한다. 코드를 한 줄씩 짜가면서 실행해야 한다는 거다.

세째, 도메인 또는 비즈니스 지식은 경험이다. 이 경험이라는 것이 문제 (도메인)에 대한 경험일 수도 있고, 방법(분석/마이닝)에 대한 경험일 수도 있다. 그리고 앞서 말했듯이 경험은 인사이트라는 결실을 맺는다. 뛰어난 추론 능력과 실행 능력이 있더라도 인사이트가 없으면 삽질의 연속이다. 물론 그런 삽질을 통한 경험이 유능한 데이터 과학자를 만들어낼 수도 있지만… 내가 풀어야 하는 문제를 잘 이해하는 것 그리고 그걸 풀어가는 과정을 빨리 파악하는 것은 경험이 주는 귀한 선물이다.

위의 다이어그램은 데이터 과학을 설명하는데 유용하지만, 한가지 빠진 게 있다. ‘데이터’에 대한 직접적인 내용이 없다는 점이다. 도메인이 데이터를 약간 내포하고 있지만 명시적으로 데이터의 중요성이 그림에 나타나지 않는다는 거다. 데이터를 다루는 수학, 데이터를 다루는 프로그램밍, 데이터를 다루는 경험은 그냥 수학과 코딩과 도메인과 다를 수가 있다.

그리고, 수학/통계와 프로그래밍이 만나서 — 다이어그램에서는 ‘머신러닝'이라 표현했지만 — 알고리즘이 나온다. 데이터 분석 업무에서 (고급) 알고리즘이 불필요한 경우가 허다하지만 어쨌든 수학과 프로그래밍 양쪽을 마스터해야지 제대로된/쓸만한 알고리즘을 만들 수 있다. 그리고 이 알고리즘과 도메인 지식이 결합해서 일종의 지혜가 된다. 뭐, 그냥 데이터 지식이라고 말해도 된다. 데이터 과학은 결국 원리와 실행과 경험이 만나서 지혜를 구축해나가는 학문이다. 끊임없이...

===
F: https://www.facebook.com/unexperienced


댓글을 달아 주세요