데이터사이언스 - DATA SCIENCE
데이터사이언스, 데이터과학 - Data Science
데이터과학 또는 데이터 사이언스(Data Science)는 컴퓨팅 기술 + 분산컴퓨팅 + 데이터 마이닝 + 기계학습 + 데이터 분석을 모두 다 관통하면서 아우르는 것들을 그럴 듯하게 있어보이도록 보이기 위해서 다소 상업적인 의도로 만들어진 용어이다.
전통적인 데이터 분석은 작은 데이터를 주로 다룬다. 반면 대량의 데이터를 프로세싱하는 것은 컴퓨팅 연산(computation power)을 많이 소모하고 처리하는데 많은 시간을 소모합니다. 그래서 현실에서는 실제로 할 수 없는 문제가 있었다. 빅데이터와 함께 분산컴퓨팅이 일반화되면서 이런 제약이 점차 사라지게 되었다. 물론 완전히 다 사라진 것은 아니지만 과거에 비하면 실제로 가능하지 않았던 것들이 가능하게 되긴 했다. 이런 분산컴퓨팅환경에서의 데이터분석과 현대의 비즈니스는 아주 새롭지는 않지만 기존에 나눠서 했던 작업을 한꺼번에 융합해서 하는 작업을 요구하게 되었고, 그것이 데이터과학(Data science)이다.
데이터사이언스와 빅데이터 - Data Science And Big Data
데이터사이언스라는 용어가 유행이 된 것은 빅데이터(Big data)가 유행이 되면서라고 볼 수 있다. 빅데이터와 함께 유행이 된 이유는 빅데이터라고 부르는 분산컴퓨팅과 데이터분석, 기계학습을 동시에 하는 사람이 필요하게 된 것인데 이 사람들이 지금 유행하는 직업 중 하나인 데이터사이언티스트(Data scientist)이다.
이렇게 된 것은 사실 당연한 것이라고 볼 수 있는데 인터넷이 발달하면서 엄청나게 많은 양의 데이터가 생산되었고 이렇게 쌓이는 데이터를 버리던 중 이 데이터로부터 쓸만한 것들을 찾아서 활용하는 시도가 생겼는데 이렇게 많은 데이터를 활용하기 위해서 분산컴퓨팅이 필요하게 되었다. 그리고 기계학습, 인공지능, 통계 능력을 활용해서 이 많은 데이터를 가치화(Monetization)하고 직접 또는 간접적으로 비즈니스에 변화를 주거나 새로운 비즈니스를 만들어서 돈을 벌기 위한 시도 또한 생겨났다. 이 작업을 모두 한꺼번에 통칭해서 데이터사이언스라고 한다. 여기에 데이터와 관련된 여러가지 업무들이 데이터사이언스라는 이름으로 달라붙어 더 범위를 넓히게 되었다. 그래서 지금은 데이터사이언스가 매우 광범위한 것을 다루는 것처럼 되어버렸다.
데이터사이언스에 필요한 스킬
데이터과학을 하기 위해서는 다양한 스킬들이 필요이다. 다음과 같은 것들이 주로 필요한 스킬이다.
통계 - statistics
통계학은 오랜 전통을 가지고 있으며 데이터를 분석하기 위한 학문이라고 할 수 있다. 데이터 과학의 대부분은 데이터를 분석하는 작업이며 필요한 많은 것들을 통계학을 통해서 얻을 수 있다. 데이터사이언티스트는 통계학에 대한 지식이 많이 필요하다. 하지만 통계학은 배우기 어려운 학문 중에 하나이며 분량이 매우 방대하고 난해한 것들도 많다. 기초지식을 익힌 후에 필요한 것들을 확장해서 배우고 익혀야 한다. 단언컨데 통계학의 모든 것을 한 사람이 다 아는 것은 너무나도 어렵다.
ICT기술 - Information and Communication technology
컴퓨터 자원 활용 능력을 말한다. Linux, Windows server를 잘 다룰 수 있고, 터미널(Terminal)에서 명령어를 통해 Linux/Unix 환경에서 원할하게 작업을 할 수 있어야 한다. 몇개의 스크립트언어(Script language)를 잘 다루어야 하고 때로는 소프트웨어 개발이나 플랫폼에 관련된 개발도 어느 정도 할 수 있어야 한다. Excel, Powerpoint와 같은 사무용 소프트웨어도 잘 다룰 수 있어야한다.
컴퓨터 활용 능력은 데이터사이언스에 있어서는 실행능력과 같은 것이다. 자신의 생각이나 아이디어를 즉시 실행해서 확인하기 위해서는 스스로 컴퓨팅 자원을 구성하고 활용해서 데이터에 어떤 처리를 해서 알고자 하는 사실을 알아내거나 증명하고자 하는 가설을 확인해야 한다.
빅데이터와 분산컴퓨팅 기술 - Big data nd Distributed computing technology
앞에서 말했듯이 대용량 데이터 처리를 위한 기술은 현대의 데이터 처리에서 필수적으로 필요하다. 현대의 데이터는 이미 대용량이 된지 오래이다. 1대의 컴퓨터에 장착된 연산 자원과 저장 장치로는 분석의 대상이 되는 데이터를 모두 저장하고 분석을 할 수 있는 환경이 되었다. 여러 대의 컴퓨터를 연결해서 데이터를 분산해서 저장하고 데이터 처리 및 계산도 분산해서 처리해야 하는 시대가 된 것이다.
분산 컴퓨팅은 과거에는 매우 어려운 기술이었고 설비를 갖추기 위해서 돈도 많이 필요했지만 Hadoop과 그 에코시스템(Echo system; Hadoop과 관련된 분산컴퓨팅 관련 소프트웨어들) 및 유사 소프트웨어들이 많이 생겨나고 각광을 받기 시작했고 그와 더불어 하드웨어의 가격이 낮아지고 성능이 점점 높아지게 되었다. 그 결과로 모두가 어렵지 않게 분산컴퓨팅을 사용할 수 있도록 일반화가 많이 되었다. 하지만 여전히 분산컴퓨팅을 사용하기 위해서는 역시 많은 연습과 지식이 필요한 것이 문제이다.
이제 분산컴퓨팅 환경에서 작업을 할 수 없다면 현실에서 데이터 분석이 어려운 상황에 맞닥드리는 경우가 많아질 것이다.
Hadoop, Spark, Storm, Kafka와 같은 분산 컴퓨팅과 Bigquery, Redshift와 같은 클라우드컴퓨팅에서 제공하는 유로 솔루션도 잘 사용할 수 있어야 한다.
분산컴퓨팅에 관련된 모든 소프트웨어 플랫폼을 다 배우고 활용할 수는 없겠지만 상황에 맞게 적절한 것을 빨리 도입해서 사용하고 문제를 해결할 수 있는 능력이 필요하다. 그리고 그 중에 몇가지는 자신의 주력 플랫폼으로 사용할 수 있어야 한다.
기계학습 및 데이터마이닝 기술 - Machine learning and Data mining
컴퓨터를 활용해서 어떤 가치를 찾는 작업이 분표을 통해서 통찰(Insight)를 찾는 것에서 추가로 뭔가를 해야 한다면 자동화(Automation)이 필요하다. 기계학습은 대표적인 자동화이다. 데이터마이닝 또한 데이터에서 가치를 찾는 작업을 일부 자동화한 것이라고 볼 수 있다. 자동화 기술은 구현된 이후에는 편하게 사용할 수 있지만 구현 작업 자체는 매우 어렵다. 기계학습은 빅데이터와 데이터사이언스에 있어서는 필수라고 할 수 있으며 기계학습 기술이 포함된 데이터마이닝 기술 역시 필수라고 할 수 있다.
데이터시각화 - Data visualization
분석 결과의 적절한 표현이 필요하다. 무엇을 하던지 시각적으로 표현해 주지 않으면 사람이 빨리 이해하는 것은 어려운 일이다. 데이터 분석 결과나 기계학습의 모형에 대한 성능 확인, 시뮬레이션 등을 하기 위해서는 데이터의 상태와 모형의 결과를 눈으로 확인하기 위한 시각화가 사람에게는 매우 유욤하다. 또 동적인 시각화를 위해서 Javascript를 이용한 웹개발도 일부 필요하다.
수학(Mathematics)
수리적 능력 및 여러가지 문제 해결 능력에 당연히 필요한 것이 수학이다. 데이터사이언스에 관련된 일을 오래하다고 보면 알고리즘이나 모형의 깊숙한 부분을 보거나 수리적 모형을 고민해야 할 때 항상 마지막에 부딪히는 것은 수학이다. 수학은 모든 과학과 공학의 기본이라고 할 수 있다.
특히 선형대수학, 미적분, 미분방정식까지는 어느 정도의 지식을 쌓아두어야 하며 위상수학과 해석학을 비롯한 다른 대수들도 알아야 할 수 있다.
비즈니스 지식(Domain Knowledge)
관련된 비즈니스에 대한 상당한 수준의 전문 지식이 있어야 한다. 보통의 직장이라면 회사의 주력 비즈니스에 따라서 전문 업무 지식이라는 것이 필요하게 된다. 예를들어 통신회사에 근무하고 있다면 통신 비즈니스에 관해서 알아야 하며 관련 기술 지식도 습득해야 한다. 자동차 회사에 근무하고 있다면 자동차의 부품, 조립, 생산 및 기술에 대해서 알아야 할 것이다. 업무 지식이라고 할 수 있는 도메인 지식이 없다면 데이터사이언스의 큰 장애가 된다.
도메인 지식은 자신이 근무하는 회사의 주력 사업이나 연구소의 주력 연구 분야 또는 창업을 준비하고 있다면 그 사업 분야의 것이 되기 마련이다. 각 도메인과 관련된 일을 실제로 하지 않는다면 학습을 해서 배우기는 매우 어려우므로 각자의 상황에 따라 달라질 것이다.
위의 기술들을 한 사람이 익히는 것은 매우 힘든 일이다. 학습에 시간도 많이 소요되며 학습량도 매우 많다. 그래서 데이터사이언티스트의 수는 현재에도 아직 그 수가 적은 편이다. 물론 데이터사이언티스트에게 필요한 스킬을 갖추지 못하고 스스로 데이터사이언티스트라고 주장하는 사람들도 있다. 하지만 그런 사람들은 실제 업무 환경에서 문제해결을 할 수 없는 경우가 많다. 그래서 이 모든 것을 꿰뚫어서 한 번에 이해하고 처리할 수 없으면 현재는 데이터사이언티스트(Data scientist)가 되기 어렵다.
이 모든 것을 한꺼번에 다 익힐 수는 없겠지만 차근차근 익히고 연습한다면 모두가 데이터사이언티스트가 될 수 있을 것이라고 믿는다. 시간이 필요한 것들은 시간을 들여서 천천히 익혀야 하고 쉽게 배울 수 있고 쉽게 활용할 수 있는 것은 쉽게 하면서 점차적으로 데이터사이언티스트가 될 수 있도로 노력하는 것이 바람직한 방향일 것이다.