데이터과학(정확히는 데이터 분석)을 배우거나 활용하려고 하는 사람들에게 주는 조언은 여기저기 참으로 많다. 나까지 이런 주제로 글을 적어도 되나 싶을 정도로 말이다. 그래도 원래 업이 이쪽 계통 가르치는 일인지라 이 흔하디흔한 주제를 들고 시작해볼까 한다.
우선 데이터를 사용하려는 목적을 파악해야 한다. 목적이야 여러 가지로 나눌 수 있겠지만, 나름대로 다음과 같이 분류해 보았다.
- 데이터로 문제를 해결해야만 하는 사람
- 데이터의 문제를 해결하는 사람
- 데이터로 설득하려는 사람
- 데이터로 문제를 해결하려는 사람
해당 항목별로 당신이 경쟁력을 갖기 위해 알아두면 좋은 것들에 대한 이야기다. 이유에 대해서는 글 마지막에 이야기하도록 하겠다.
당신이 데이터과학을 시작하는 데 있어 가장 먼저 알아야 할 것은 현재 당신의 위치(혹은 당신이 서고자 하는 위치)를 파악하는 일일 것이다. 이 글이 고민에 도움이 되었으면 하는 바람으로 시작하겠다.
1. 데이터로 문제를 해결해야만 하는 사람
문제 자체를 데이터 분석의 방법으로만 풀어야 되는 사람들이다. ‘데이터 분석’하면 사용자 행동을 분석하는 마케터를 생각하기 쉽지만, 사실 데이터 형태의 정보를 다루는 것은 최근 알려진 것보다 훨씬 더 오래된 역사를 가지고 있다.
(실험) 물리학 중 열역학 분야라든가, 기계공학 분야에서 유체역학 분야 라든가, 생물학 분야에서 생통계(Bio-Statistics)라든가, 행동경제학에서의 행동분석과 같은 분야에서 이러한 형태의 데이터 문제는 다양하게 존재한다. 최근에 유행하고 있는 인공지능·머신러닝의 경우도 머신을 교육시키기 위한 데이터를 다뤄야 한다. 즉 이러한 부류의 사람들은 이미 데이터를 다루어야만 하는 부류들이다.
이 사람들에게 문제 해결 방법은 실험과 측정(혹은 분석)이다. 이들에게 기본적으로 필요한 것은 해당 분야(혹은 전공과목)에 대한 지식이다. 즉 열역학과 관련한 데이터를 다루는 사람이라면 열역학에 관한 지식이 필요하며, 기계공학(특히 유체역학) 쪽을 하는 사람이라면 유체역학 관련 지식이, 생통계(Bio-Statistics)를 하는 사람이라면 생물학에 관련된 지식이 중요하다.
또한 이들이 추가로 반드시 알아야 할 것은 통계학적 지식이다. 측정 혹은 관찰을 통해 수집된 데이터가 분석 전 실제로 의미가 있는지에 대한 파악할 필요가 있기 때문이다. 데이터과학(혹은 통계학) 하는 이들에게서 자주 쓰이는 속담이 “Garbage in, garbage out”이다. 아무리 좋은 데이터 분석 방법을 사용할 줄 안다고 하더라도, 분석하려는 데이터의 질이 좋지 않으면 좋은 분석 자체가 무의미하다.
데이터 분석 실력만큼 중요한 것이 데이터 자체에 대한 가치를 판단할 줄 아는 능력이고, 이러한 가치를 판단하는데 필요한 것이 바로 해당 분야의 전문성과 통계학적 지식인 것이다. 여기에 어느 정도의 통계 패키지 사용 능력을 가지고 있다면 좋을 것이다.
이들 부류에게는 어떤 통계 패키지를 사용하느냐는 것은 크게 중요하지 않다. R과 같은 프로그래밍 언어도 괜찮고 엑셀도 괜찮다. 당신이 다루는 데이터 양을 충분히 처리할 수 있고 당신에게 익숙하다면 그걸로 족하다.
2. 데이터의 문제를 해결하는 사람
이미 어떠한 형태로든 데이터의 형태로 되어 있는 정보를 다루는 사람들을 뜻한다. 이러한 부류들에게 ‘데이터가 어디서부터 왔느냐’는 사실은 덜 중요하다. 일단 자료를 데이터의 형태로 가져올 수 있다는 사실 하나만 중요하다. 그러므로 이런 사람들의 관심사는 “어떤 식으로 데이터를 구조화(DB화)하느냐?”, “어떻게 원하는 유효한 값들을 신속하게 계산할 것인가?”와 같은 것들이다.
사실상 이 영역은 데이터 과학의 영역이라기보다는 소프트웨어 개발자의 영역에 가깝다. 특히 데이터분석을 다루는 범용 패키지나 커스터마이즈된 모듈을 개발하는 부류들이 여기에 해당한다. 이들에게 중요한 것은 당연히 전산학 관련 기술들이다. 데이터베이스, 분산 컴퓨팅, 데이터마이닝과 같은 데이터 관련 전공들 말이다. 그리고 무엇보다 중요한 것은 이러한 데이터를 현란하게 다룰 줄 아는 프로그래밍 기술(코딩 능력)이다.
이런 사람들이 통계 이론을 알면 좋다. 데이터 분석 이론의 근간을 이루는 것이 바로 통계학이기 때문이다. 통계학적 이론과 이를 프로그래밍할 수 있는 능력이 이러한 부류의 사람들이 가질 만한 최고의 경쟁력일 것이다.
3. 데이터로 설득하려는 사람
쉽게 이야기하면 장사를 하려는 사람들, 마케팅이나 사업을 하는 사람들이 여기에 속한다. 기본적으로 데이터를 다룰 줄 알아야겠지만, 이런 이들에게 제일 중요한 것은 보여주는 것, 즉 시각화(Visualization)일 것이다.
보통 데이터의 시각화를 이야기하면 ‘연관 검색어’ 보여주기 내지는 시각화 기능이 뛰어난 R과 같은 프로그래밍 언어를 생각하기 쉽지만, 이보다 범용적으로 쓰이는 용어는 인포그래픽이다. 데이터가 의미하는 바를 올바르게 이해하는 보편적인 지식도 필요하겠지만, 이들에게 제일 필요한 것은 예술적 감각일 것이다.
인포그래픽이나 Data visualization과 같은 용어들은 최근에 데이터가 뜨면서 같이 각광을 받기 시작했다. 하지만 역사는 그보다 오래되었다. 본디 산업디자인에서 주로 다룬 영역이다. 고로 이쪽 부류의 사람들이 산업디자인과 관련된 지식들을 가지고 있다면 큰 도움이 된다. 여기에 데이터를 바로 그려줄 수 있는 소프트웨어를 잘 쓸 줄 알면 금상첨화. 참고로 엑셀도 괜찮은 데이터 시각화 도구 중 하나이다. 물론 제대로만 쓸 줄 안다면 말이다.
다만 이런 시각화가 데이터를 표현하는 데 도움이 되긴 하지만, 진정한(?) 의미의 데이터 과학이라고 부르기는 어렵지 않을까 싶다.
4. 데이터로 문제를 해결하려는 사람
사실 데이터를 다루는 전공이 아닌, 그렇지만 데이터 과학에 관심을 가지고 자신의 영역에서 사용하고자 하는 사람들은 아마도 대부분 부류에 해당할 것이다. 데이터를 직접 다루는 전산학이나 통계학이 아닌 분야에서 말하는 데이터 관련 이야기들은 모두 여기에 해당한다고 해도 과언이 아니다.
이런 부류들에게 중요한 것은 데이터를 다루는 기술이나, 통계학적 지식이 ‘아닐 수’ 있다. 사실상 이러한 부류에게 가장 절실히 필요한 것은 문제의 본질을 파악하는 능력이다.
문제의 본질을 파악한다는 것은 여러 가지 의미가 있겠지만, 여기서 의미하는 것은 (데이터와 관련한) 문제를 바라보는 관점을 뜻한다. 당신이 데이터 과학(혹은 데이터 분석)에 관심을 가지고 있다는 것은 데이터를 이용해 뭔가를 하려는 목적이 있어서 일 것이다. 어떠한 목적으로 데이터를 다루는지에 따라서 필요한 능력 수준이 달라진다.
- 때에 따라서는 ‘데이터로 문제를 해결해야만 하는 사람’ 수준의 능력이 필요할 수도 있고
- 때에 따라서는 ‘데이터의 문제를 해결하는 사람’ 수준의 능력이 필요할 수도 있다.
다만, 데이터과학(혹은 데이터분석)을 업으로 한다고 하는 사람들의 대부분은 자신을 ‘1. 데이터로 문제를 해결해야만 하는 사람’으로 여긴다. 그리고 이러한 믿음을 가진 이들은 세상을 그런 쪽으로 바라보는 경향이 강하다. 물론 이들 중에는 진짜 그 부류에 속해 있는 사람이 있을 수도 있다. 그렇지만 실질적으로 이런 믿음을 가진 부류의 대부분은 ‘4. 데이터로 문제를 해결하려는 사람들’이다.
즉 우리가 접하는 대부분의 데이터 관련 문제들은 대부분의 경우 데이터 분석 자체가 목적이 아니다. 어떤 목적을 위해 데이터과학을 이용하는 경우가 많다. 이러한 경우, 가장 우선적으로 고민해야 할 문제는 ‘과연, 데이터로 문제를 해결해야만 하는가?’ 혹은 ‘(당신의) 문제를 해결하는 데 있어 데이터과학이 필요한가?‘이다. 그리고, 이에 대해 정확한 대답을 하기 위해서 필요한 것이 바로 문제의 본질을 파악하는 능력일 것이다.
5. ‘데이터로 문제를 해결하려는 사람’에게 필요한 것
데이터 분석의 목적은 크게 두 가지로 나눌 수 있는데, 하나는 ‘분석(혹은 측정)’ 자체가 목적인 경우이고 또 하나는 (분석을 기반으로 한) 문제를 ‘해결’하는 것이 목적인 경우이다.
예를 들어 어떤 자연적 현상이나 사회적 현상을 확인하려는 목적이라든지, 거시적인 경제현상을 파악하려고 한다든지 하는 것들은 분석 자체가 목적인 경우에 해당한다. 물론 여기서 얻은 분석 결과를 어떤 문제를 해결하는 데 이용할 수는 있겠지만, 1차 목적은 분석 그 자체이다. 인구를 조사하고 남녀 구성비를 조사하고 GDP나 GNP를 계산하는 일련의 작업들은 나라 상태를 파악한다는 의미가 있다. 그래서 분석 자체만으로도 의미가 있는 일이다. 혹은 비행기 날개의 유체분석(공기 흐름)이라든지 원자를 부딪치게 해서 새로운 입자가 생성되는지 확인한다든지 하는 것들은 데이터를 모으고 분석하는 것 자체만으로 엄청난 의미가 있는 일들이다.
하지만, 대부분 데이터 분석 목적은 ‘이 분석을 기반으로 한 문제의 해결’인 경우가 많다. 빅데이터라는 용어가 인기를 끌면서, 수요 예측(Demand Forecasting)은 가장 흔하게 언급되는 빅데이터 적용 분야가 되었다. 요즘은 소프트웨어들이 좋아져서 공급망 관리 소프트웨어와 연결되어 실시간으로 수요예측을 해주기도 한다. 이러한 수요예측은 수요예측(분석) 자체가 목적이 아니라 이를 기반으로 공급망을 효과적으로 운용하기 위한 것이 그 목적이고, 수요예측은 이를 위한 기반 작업이라 할 수 있다.
소셜 마케팅에서의 데이터 분석 또한 마찬가지 목적을 가진다. 연관 검색어를 분석하고, 사용자 클릭을 수집해서 분석하는 이유는 데는 데이터 분석을 바탕으로 얻어진 정보를 마케팅에 활용하는 것, 직설적으로 말하자면 소비자들을 자연스럽게 끌어들이고자 하는 것이 최종 목표이다. 이 경우에도 데이터분석은 그 분석 혹은 측정 자체가 목적이 아니라 성공적인 마케팅 전략을 만들기 위한 기반이 되는 것이다. 이러한 상황에서 근본적으로 생각해 보아야 할 문제는 어떻게 하면 소비자의 데이터를 잘 분석하느냐가 아니라, “과연, 소비자를 끌어들이기 위해서 소비자의 데이터를 (측정) 분석 해야만 하는가?”이다.
약간 다른 이야기일 수 있지만(사실 본질적으로는 같은 이야기이다) 비슷한 예를 들어 보겠다. 많은 공학적 문제 중에는 ‘측정’에 관한 문제들이 있다. 그리고, 이러한 측정 문제 중 상당수는 측정을 기반으로 한 어떤 해결책을 위한 사전(혹은 기반) 작업인 경우가 많다. 그래서 이러한 쪽의 연구를 하는 많은 공학도들은 어떻게 하면 정확한 측정값을 얻을 수 있을까 고민한다. 정확한 측정값이 최선의 해결책이라 생각하기 때문이다.
그런데 사실 이런 경우 실질적인 최선의 해결책은 정확한 측정값을 얻는 것이 아니라, 측정 과정 없이 문제 자체를 해결하는 것이다. 물론, 가능하다면 말이다.
똑같은 상황이 데이터과학에서도 적용된다. 세상에 나와 있는데 데이터를 이용하겠다고 하는 대부분의 문제들은 데이터 분석을 기반으로 뭔가를 해결하기 위한 경우가 많다. 더구나 나름 데이터과학에 대해서 지식이 있는 부류일수록 어떤 문제를 해결할 때 데이터분석을 통해 문제를 해결하려고 한다. 위의 측정 문제를 해결하려는 공학도들처럼 말이다.
하지만 이런 경우 최선의 해결책은 데이터 취합/분석과정 없이 문제 자체를 해결하는 것이다. 그리고 많은 문제들이 데이터 분석 기반 작업 없이 해결이 가능한 경우가 많다. 당신이 생각하는 것 이상으로 말이다.
물론, 문제들 가운데는 데이터 분석을 기반해야지만 해결을 할 수 있는 문제들도 존재한다. 하지만 이 경우라고 하더라도, 데이터를 다루는 작업(데이터 분석)을 들어가기 전에 당신이 먼저 고민해봐야 할 것이 있다.
과연, 많은 양의 데이터가 있어야 하는가?
이것이다. 설령 실질적으로 데이터 분석을 필요로 하는 문제라고 하더라도 많은 양의 데이터(빅데이터)를 다뤄야 할 것인가 하는 것은 또 다른 문제이다.
데이터를 다루는 일에 있어서 분석만큼 중요한 것이 데이터의 수집이다. 많은 양의 데이터가 보다 정교한 정보 값을 제공할 수는 있지만, 가치 있는 정보 값을 보장하지는 못한다. 이전 글에도 이야기했지만 데이터 과학이 발달하고 데이터분석 도구가 정교해졌다고 하더라도, 입력되는 데이터 자체가 쓰레기면 그 결과값 또한 쓰레기이다(Garbage in, garbage out).
또 다른 의미도 있다. 입력되는 데이터에 불순물이 끼어 있을 때, 제대로 된 결과 값을 얻기 위해서는 생각보다 많은 양의 데이터와 이를 정교하게 다룰 수 있는 분석기법과 도구가 필요하다는 것이다.
예전(컴퓨터가 발달하기 이전)에는 많은 양의 데이터를 다루는 것 자체가 일이었기 때문에 어떻게 해서든 데이터를 ‘정제’할 필요가 있었다. 이렇게 많은 양의 데이터를 실질적 데이터분석에 들어가기 전에 작업하는 것을 선작업(Pre-process)이라고 한다. 그리고 이러한 선작업은 특수 값을 제외한다든지 하는 등의 보정 작업도 포함된다.
예를 들어 피겨스케팅에서 점수를 합산할 때, 최상위점과 최하위점을 제외하는 작업 같은 것 말이다. 고전적인 데이터과학, 즉 통계학에서는 이러한 선작업을 아주 심도있게 다루었다. ‘1. 데이터로만 문제를 풀어야만 사람’에게 통계학적 능력이 중요한 이유도 바로 여기에 있다. 당신이 데이터 분석을 위해 100개의 정제된 데이터와 100만 개의 정제되지 않은 데이터 중에서 선택해야 한다면, 100개의 정제된 데이터를 선택해야 한다는 것이다.
정제된 데이터를 사용한다는 기본 원칙은 빅데이터가 범람하는 지금에도 여전히 유효하다. 선작업을 통해 적은 양의 데이터로도 원하는 데이터 분석을 할 수 있다면, 굳이 많은 양의 데이터가 필요하지 않다.
물론 많은 양의 정제된 데이터가 필요할 경우도 있다. 그리고, 당신이 정말로 정제된 많은 양의 데이터를 다뤄야 하는 상황이라면, 당신은 ‘1. 데이터의 문제를 해결하는 사람’ 내지는 ‘2. 데이터의 문제를 해결하는 사람’에 가까워진다. 하지만 보통은 어떤 문제 해결을 위한 데이터 분석에 있어서 많은 양의 정제된 데이터가 필요한 경우는 드물다. 당신이 상상하는 것 이상으로 말이다.
6. 맺음말
어떤 식으로 글을 마칠까 고민하다가, 언뜻 무협 소설의 일반적인(?) 내용을 살짝 가져오면 어떨까 생각해봤다.
천하제일검을 가진 무림고수가 있다. 하지만 이 무림 고수가 실제로 천하제일검을 사용해서 상대를 제압하는 경우는 매우 드물다. 대부분은 칼을 뽑기 전에 눈빛(혹은 아우라)으로 상대를 제압한다. 설령 칼을 사용한다고 해도 칼집에서 검을 뽑지 않는 경우가 대부분이고, 실제로 천하제일검을 뽑아서 싸우는 경우는 극히 드물다.
많은 양의 데이터를 다루는 고급 기술을 가지고 있는 문제 해결자가 실제로 이 기술을 사용해서 문제를 해결하는 경우는 매우 드물다. 대부분은 데이터를 다루는 고급기술을 사용하기 전에 해결할 수도 있다. 설령 데이터를 다루는 기술을 사용한다고 하더라도, 적은 양의 데이터와 기초 통계 수준의 실력만으로도(검을 뽑지 않고 칼집만 사용) 해결이 가능한 경우가 대부분이다.
틀림없이 데이터를 다루는 고급 기술을 사용해야 하는 경우도 존재한다. 하지만 이 경우는 지극히 드물다. 마치 무림고수가 천하제일검을 실제 사용할 경우가 드문 것처럼 말이다.
진정한 무림고수에게 필요한 내공은 천하제일검을 사용하는 방법 자체가 아니라, ‘적당한 때에 맞춰 그에 맞는 무공을 사용하고 꼭 필요한 경우에만 천하제일검을 사용할 줄 아는 능력’일 것이다.
설령 누군가가 천하제일검을 사용할 줄 안다고 하더라도, 이 사람이 검을 시도 때도 없이, 굳이 검을 뽑지 않아도 될 승부에서조차도 굳이 검을 뽑아 쓰고자 한다면 이러한 사람을 무림고수라 하기는 어렵다. 이는 많은 양의 데이터를 다루는 고급기술 자체를 잘 안다고 해도, 마치 그 기술만이 전부인 양 남발하는 이를 전문가로 부르기 어려운 이유와 크게 다르지 않다.
그렇기에 데이터를 이용해 문제를 해결하는 데 있어서 문제 본질을 파악할 줄 아는 능력이 데이터를 다룰 줄 아는 능력보다 훨씬 더 중요하다. 뭐, 그렇다는 것이다.
덧붙임 하나.
데이터과학(혹은 데이터분석)이 분명 어떠한 문제를 해결하는 데 있어서 대단히 강력한 도구인 것은 틀림없는 사실이다. 하지만 세상에는 그와 비견할 만한 도구들은 얼마든지 있다. 당신이 상상하는 것 이상으로 말이다. 무협지의 내용을 한 번 더 빌리자면, 강호는 넓고 고수는 넘친다!
덧붙임 둘.
혹자는 궁금해할 것이다. 그렇다면 ‘문제의 본질을 파악하는 능력은 어떻게 키우는가?’ 글쎄, 이 질문에 대한 대답이 궁금하시다면 커피 한잔 사시라ㅎ
원문: Amang kim의 브런치