여러분이 지금부터 데이터과학자가 되기로 마음 먹었거나 아니면 경험이 부족하다고 생각해서 데이터과학 기술을 더 향상시키기를 원한다면 데이터과학자가 되기 위해 필요한 기술들이 어떤 것인지 궁금할 것이고 배우려고 할 것이다. 미리 말하지만 데이터과학자에게 필요한 기술은 매우 광범위하고 현재에도 데이터과학이라는 환상이 듬뿍 섞인 단어의 한부분으로 끼어들기 위해서 위해서 여기저기에서 서로 필요한 기술이라고 주장하며 새롭게 붙여 넣는 것이 많기 때문에 계속해서 공부해야 하는 것이 늘어나는 경향도 있다.
모두를 다 간단하게 정리하기는 어렵지만 그래도 정리를 하라고 한다면 크게 3가지 큰 분류로 나눌 수 있다.
이제 이 세가지 큰 분류의 데이터 과학에 필요한 기술에 대해서 자세히 살펴보자.
IT 활용능력은 컴퓨터와 정보 관련 디바이스 및 기술을 사용할 수 있는 능력을 말하는데 조금 더 협소하고 구체적으로 말하자면 “컴퓨터 프로그래밍 기술”을 뜻한다. 수학이나 통계학을 하기 위해서 반드시 프로그래밍 능력이 필요하지는 않았던 때가 있었다 하지만 지금은 데이터를 처리하기 위해서는 프로그래밍 기술이 필수인 시대가 되었다. Excel과 다른 통계분석툴로는 데이터과학을 할 수 없는 것이 아니지만 모든 상황에 유연하게 대처하고 빠른 작업과 자동화가 필수라고 할 수 있기 때문에 프로그래밍 능력이 반드시 필요하며 데이터과학자가 되기 위해서는 주력으로 사용하는 능숙한 컴퓨터 랭귀지가 최소 1개이상은 있어야 한다. 그리고 가능하다면 범용 언어인 것이 좋다. Python이 데이터과학을 위한 언어로 각광을 받는 이유도 그런 필요성을 가장 잘 만족시켜주기 때문이다.
데이터 분석과 관련된 학술 분야는 사실 꽤 많다. 하지만 이중에 특별히 어떤 학문을 전공한다고 해서 특별히 데이터과학에 유리하다고 할 수는 없다.
최근에 많은 대학교들이 융합과정 또는 최신 기술 동향을 반영한 커리큘럼을 반영하기 위해 데이터과학학부, 데이터융합학부 같은 용어로 데이터과학 전공을 만들어내고 그런 곳에 진입하는 학생들이 늘고 있다.
만약 독자분이 대학의 데이터과학과에서 공부하고 있다면 위에서 열거한 학문들을 골고루 얇게 일부만 배울 것이다. 그래서 데이터과학을 전공했고 졸업했다고 해서 데이터과학을 능숙하게 할 수 있다고 생각해서는 안딘다. 위의 학문을 모두 다루는 학부 또는 학과를 별로 만들었다고 해서 저런 깊은 공부가 필요한 학문들을 모두 한번에 다 익히게 할 수는 없다.
그 외의 학문 중에서 데이터과학에 가장 적합한 전공은 컴퓨터공학과 통계학이라고 할 수 있다.
데이터과학자의 상당수가 컴퓨터공학 전공인 사람이 많으며 그 다음 통계학 전공자가 많은 것이 그 증거라고 할 수 있다.
하지만 이런 전공을 선택하는 것이 유리한 출발점이 되는 것은 점점 사라지고 있다. 데이터사이언스가 빠른 속도로 일반화되고 있기 때문이다.
사실상 현대의 학술에서 공학과 관련된 곳은 대부분 데이터를 다룰 수 밖에 없고 인문학에서는 숫자와 돈을 다루는 학문은 모두 데이터를 다루는 학문이라고 볼 수 있다. 공학이나 이학을 전공한 사람들은 이상하게 생각할지 모르지만 경영, 경제, 금융에서도 데이터과학을 하며 프로그래밍도 한다. 순수 인문학이나 예술과 관련된 학문이 아니라면 현대에는 대부분 수학과 컴퓨터공학은 다른 학문에서도 적극 활용할 수 밖에 없는 도구라고 보면 수학과 컴퓨터공학은 데이터과학의 필수이며 다른 학문들은 관련이 매우 깊다고 할 수 있다.
수학은 공학계열에서 반드시 학습해야하는 기초대수학에 포함되는 선형대수, 미분, 적분, 미분방정식까지는 기본학습이 되어야 한다. 이 수학들은 대수학에서 가장 쉽고 기초가 되는 수학들이며 공학을 전공한 사람들은 이런 대수학은 필수로 알아야 한다. 공개된 소스코드나 튜토리얼을 보고 기계학습 모델을 생성하고 따라한다고 데이터과학자가 될 수 있는 것이 아니다. 스스로 수리모형을 작성하거나 통계모형을 이해하고 활용할 때도 기계학습을 할 때도 반드시 필요한 것은 수학능력이다.
추가로 말할 것은 수학을 전공하고 수학을 매우 잘한다고 해서 데이터과학을 잘하는 것은 아니다. 실제로 데이터과학을 하다가 깊은 내면과 어려운 원리를 이해해서 더 능숙하고 전문적으로 데이터과학을 하려고 한다면 대수학 몇개는 필수로 학습이 필요하지만 대수학을 잘한다고 해서 데이터과학을 잘하는 것은 아니다.
수학과를 졸업한 사람 중에 데이터과학을 잘하는사람은 상상하는 것 많큼 많지 않다.
컴퓨터 없이 데이터과학을 하는 것은 불가능하다.
컴퓨터공학의 매우 깊은 하단까지 데이터과학자가 반드시 이해해야 하는 것은 아니지만 컴퓨터의 구조, 원리, 작동방식, 소프트웨어 기술을 알게 되면 작성한 모델을 구현하고 전개할때 매우 유리하다.
그리고 만들어진 모형은 정확도와 같은 성능도 중요하지만 수행속도와 같은 고속연산도 필요하다.
딥러닝을 하는데 TPU의 원리나 작동방식을 이해하지 못한다면 원하는 결과를 얻기 위해 여러 장벽에 부딪힐 수 있다.
특히 컴퓨터 언어는 여러가지를 익혀 두는 것이 필요하다.
Python, R, C/C++, Java, Javascript, Shell script, Scala, Matlab, Mathematica 등 익혀두어야 할 것이 많다. 하나의 컴퓨터 랭귀지로만 데이터과학을 하려고 한다면 불가능한 것은 아니지만 분명 한계에 부딪힐 것이다.
통계학은 원래 응용수학에 대한 학술분야라고 할 수 있다.
데이터사이언스를 시작하기에 가장 유리한 학술 분야이지만 최근의 순수 통계학은 이론에 집착하는 경향이 매우 많다.
반면 응용통계학은 수학, 컴퓨터공학 능력을 겸비할 수 밖에 없어 여전히 좋은 출발이라고 할 수 있다.
통계학은 데이터과학의 효시이다.
경영과학은 영어로 “Operational Research” 또는 “operations research”라고 한다. 기업운영을 하는데 필요한 것을 연구하는 것인데 경영과학 또는 경영공학이라고도 한다.
경영과학은 대부분 최적화(Optimization) 문제를 해결하는 것에 집중한다. 따라서 높은 수학적 능력이 필요하고 역시 컴퓨터 할용 능력이 필수이다. 경영과학에 대해서 사전지식이 전혀 없다면 경영과학에서 하는 것이 물건의 수요예측, 택배의 배송 경로 최적화, 공장에서의 최적 재료 혼합비, 최적 생산 비율, 엘리베이터의 최적 이동, 신호등 조절을 통한 통행량 관리 등과 같은 문제의 해결책을 찾는 것이라고 알아두면 쉬울 것이다.
설득 및 설명은 인문학적 소양이다. 데이터를 해석하고 가치를 찾아내고 가설을 검증한 뒤에 할 일은 누군가에게 설명을 하는 일이다. 설명을 하기 위해서는 조리있게 설명을 하고 전달하려는 바를 명확히 전달할 필요가 있다.
전달을 할 때 데이터과학자는 보통은 다음과 같은 최종 결과물을 생산한다.
설득을 위한 설명을 할 때 중요한 것은 다음과 같다.
데이터과학의 결과물은 데이터 분석 리포트가 될 수도 있고 작성 모형을 배포한 소프트웨어 구현체일 수도 있지만 대부분 리포트를 작성하게 된다. 리포트는 보는 사람이 결과를 알아보기 쉽게 작성해야 한다.
설명을 어렵게 기술하지 않아야 하며 시각화와 도표 등을 잘 활용해야 한다.
시각화는 기술과 예술의 중간쯤에 해당한다. 미적감각도 필요하며 연습도 필요하고 프로그래밍이나 컴퓨터 소프트웨어 활용능력이 필요하다. 연습을 통해 예술 작품을 만드는 것까지는 아니더라도 왜곡없이 사실을 표현해서 주목도를 높이고 이해를 쉽게 할 수 있는 능력이 필요하다.
프리젠테이션은 설명의 능력이다. 여기서 말하는 프리젠테이션 능력은 청중에게 잘 설명해서 현혹시키는 그런 것을 말하는 것이 아닌 잘 정돈된 스토리라인에 따라 전달하려는 바를 잘 전달하는 것을 말한다. 파워포인트와 같은 발표 문서를 잘 작성하는 것도 여기에 포함되며 표현문구를 쓸 때도 고심해서 작성해야하며 그런 능력도 필요하다. 보통 작성한 리포트를 말로 설명하기 위해서 재구성하는 것이 많다.