답정너가 아닌 데이터 기반의 커리어로 가기 위한 첫걸음
SQL과 엑셀을 할 줄 아는 주니어 분께 최근 제목과 같은 질문을 받았습니다. 가설 검증을 통해 데이터로 일하기 위해서는 어디서부터 시작해야 하는지 말이죠. 상당히 넓고 어려운 질문이었습니다.
사실 누구나 데이터로 일해보고 싶은 생각이 들 수밖에 없는 요즘입니다. 데이터는 어떤 모양으로든 지난 몇 년간 기업 내부에서 많이 축적되었고 데이터로 말하지 않으면 주장하면서도 찝찝한 문화가 도래했습니다. 커리어의 발전을 생각해봐도 데이터를 잘 다루는 사람이 그렇지 못한 분들보다 더 나은 대우를 받는 모습을 보게 되면서 데이터로 일하지 않던 분들이 데이터를 통해 일하고자 하는 생각이 더 들 수밖에 없습니다.
처음 시도하는 것은 이 주니어분처럼 스킬입니다. SQL을 배우고 Python을 배웁니다. 집계를 할 수 있고 기술적 통계를 할 수 있죠. 업무를 자동화하거나 간단한 통계 분석을 할 수 있습니다. 학원 커리큘럼만 잘 따라가면 일단 예측이란 걸 어떻게 하는지부터 간단한 자연어 처리까지도 할 수 있습니다.
하지만 다시 이렇게 질문으로 돌아옵니다. 어떻게 실무에 적용해서 성과를 만들 수 있을까? 어떻게 데이터를 통해 기존과 다르게 분석적으로 결론을 만들어 낼 수 있을까? 이것은 스킬과는 다소 다른 내용이란 걸 얼마간의 시간을 지나 다시 깨닫게 됩니다.
물론 도구를 다루지 못하면 시작할 수도 없습니다. 칼질도 못하는데 요리를 알려줄 수 없죠. 요리법을 알려줘도 칼질을 못하면 다시 칼질부터 배워야 하니까요.
제가 그 주니어분께 도움을 드리고자 말씀드린 건 스킬과는 사실 상관없는 두 가지 내용이었습니다. 하나는 지표를 입체적으로 바라보는 연습이고 다른 하나는 회사 내 데이터를 평소에 많이 봐 두어야 한다는 것이죠. 가설을 정하고 가설을 검증하면서 데이터에서 답을 찾는, 기본적인 분석을 하기 위해서는 SQL을 다루는 능숙함만큼 이런 연습들이 필요합니다.
지표를 입체적으로 바라보기
제 브런치를 지난 몇 년간 보신 분들이라면 새삼 처음 듣는 내용은 아닐 것입니다. 지표를 입체적으로 바라본다는 것은 지표를 다른 지표로 설명할 수 있다는 것입니다. 여러 지표를 통해 이 지표를 설명하는 것은 모든 데이터 분석의 기초가 됩니다.
지표를 다른 여러 개의 지표로 쪼갤 수 있습니다. 마치 트리(Tree) 구조처럼 말이죠. 하나의 큰 개념의 지표는 여러 변수의 영향을 받고 해석이 쉽지 않지만 세부적으로 나눈 지표는 영향을 받는 변수가 적고 영향을 받는 환경이 한정되어 있어 가설을 더 뾰족하게 잡기 좋습니다.
쉬운 예로 매출을 어떻게 나눌 수 있을까요? 이미 많이 예로 든 사례지만, 여러 서비스로 구성된 매출이라면 서비스별로 매출을 나누어 봅니다. 나눈 서비스들의 매출 합이 전체 매출이 되도록 하는 것이죠. 그렇게 되면 어떤 한 서비스의 매출이 너무 많이 오른다거나 부족하다거나 혹은 목표 대비 어떤 추세를 보이는 것을 확인할 수 있습니다. 다른 것보다 특이하거나 예상한 추세보다 특이한 그 세부적인 서비스를 집중해서 보는 것입니다. 우리가 무엇을 볼지 Y값, 종속변수를 찾는 데 도움을 줍니다. 서비스가 아니라 영업 채널이 그 자리에 올 수도 상품이 그 자리에 와서 여러 개의 기준으로 하나의 매출을 자를 수 있겠죠.
종속 변수를 정했다면 종속 변수를 설명하는 여러 개의 설명 변수, X값을 찾는 게 가설을 만드는 데 도움을 줍니다. Y = aX1 + bX2 + cX3 + … +zXn처럼 여러 개의 변수들을 통해 한 변수를 설명해 보는 것이죠. 우리가 세부적으로 찾은 종속변수가 있다면 어떤 변수들을 비교해 보면서 종속변수를 잘 설명하는 변수를 찾는 것입니다.
하나의 독립변수로 종속변수를 이해하고자 할 때 독립변수를 여러 개의 범주로 만들어 범주별로 종속변수 값이 얼마나 다른지 보는 것이 시작이 될 수 있습니다. 아까 예로 든 어떤 서비스의 매출액이 특히 이번에 떨어졌다면 어떤 변수의 여러 개 범주 중에서 이 서비스 사용에 영향을 미친 것이 있는지 살펴보는 것이죠.
당일 배송 서비스의 매출이 지난주 급감했다면 여러 개의 변수 중에서 예를 들어 지역을 몇 개의 범주로 보고 범주별로 차이가 있는지 보는 것입니다. 광역시도 단위나 수도권/지방, 혹은 도시와 비도시로 나누어 어떻게 범주를 잡느냐에 따라 비교하는 범주끼리 뚜렷한 차이를 보일 수도 그렇지 않을 수도 있습니다. 지지난주까지 수도권과 비수도권의 당일 배송 서비스 매출액 차이가 없었는데 지난주 갑자기 수도권에서 주문량이 급감하면서 매출액 감소가 왔다면 지역이라는 하나의 독립 변수로 종속변수를 설명할 수 있게 된 것입니다. 그렇다면 수도권 당일 배송 서비스 감소 이유에 대해 다른 지표로 다시 설명하는 과정을 찾을 수 있습니다.
이렇게 계속 지표로 지표를 설명하는 과정을 거치면서 어떤 지표의 값 변화가 다른 지표의 값 변화를 야기하는 것을 알게 된다면 하나의 지표 변화를 통해 다른 지표, 우리가 중요하게 생각하는 KPI의 변화를 미리 예측하거나 정책을 만들 수도 있습니다.
하지만 모든 지표가 다 의미를 서로 가지지 않기에 인내의 시간이 필요한 것도 사실입니다. 하지만 이 과정을 거치면서 우리는 하나의 지표를 단편적인 시각에서 입체적인 모습으로 이해할 수 있게 됩니다.
회사 내 데이터를 평소에 많이 보기
지표로 지표를 설명할 수 있으려면 지표를 많이 알고 있어야 합니다. 내가 다룰 수 있는 재료가 무엇이 있는지 평소에 많이 알고 있어야 합니다. 어떤 알고리즘을 쓰려고 해도 어떤 분석 방법을 쓰려고 해도 재료가 부실하면 아무 답도 나오지 않습니다. 그러기 위해서는 누가 알려주든 알려주지 않든 회사 내 데이터 베이스에 어떤 테이블, 어떤 컬럼에 어떤 의미의 값들이 있는지 더 많이 알고 있는 것이 도움이 됩니다.
사실 회사 내부 데이터를 누가 친절하게 가르쳐 주거나 코드 값에 대한 설명까지 친절하게 잘 설명되어 어떤 테이블의 컬럼이 다른 테이블의 이 컬럼과 같다고 알려주는 문서가 있는 회사는 드뭅니다. 그러기에 내가 다룰 수 있는 재료가 무엇이 있는지 알기 위해 평소에 찾아보는 작업은 나 스스로 해야 합니다. 웃프지만 어쩔 수 없죠.
회사 내부의 데이터를 보는 방법은 일단 테이블 별로 몇 줄씩만 먼저 보는 것입니다. 눈으로 한 열씩 보면서 어떤 의미를 담고 있는 데이터인지 이해해 보는 것이죠. 그리고 다른 테이블에서 유사 형태로 되어 있는 테이블을 보면서 이렇게 서로 연결될 수 있는지 생각을 먼저 해 보는 것이죠. 물론 정확한 분석을 위해서는 정말 이게 그것인지, 이것은 어디서부터 온 데이터인지 데이터를 생성하는 조직에 문의할 필요가 있습니다.
지표를 더 많이 알게 될수록 가설에 사용할 수 있는 내용이 늘어납니다. 그러면 선후 관계가 있는 지표들의 조합도 더 많이 알게 되고 상관성이 높은 지표, 예측이 가능한 일들을 꾀할 수 있습니다. 그리고 간단한 머신러닝을 할 때도 보다 더 좋은 성능을 가진 모델을 만들 수도 있습니다. 여러모로 도움이 되죠. 회사 업무로 평소 시간이 부족해서 데이터 살펴볼 시간이 없다면 이 도메인에 계속 있겠다고 생각한다면 업무 시간 외라도 투자의 개념으로 혼자 살펴보는 것도 나쁘지는 않다고 생각합니다. 물론 누가 도와주거나 친절한 위키가 있다면 더할 나위 없겠지만요.
일단 자주 만지는 데이터부터 적용해 봅니다. 항상 다루고 있어야 하는 지표부터, 늘 끼고 있는 대시보드, 엑셀 파일에 있는 숫자부터 다른 숫자들로 설명해 봅니다. 그 결과가 스프레드 시트에 더 늘어난 열이 될 수도 있고 그것을 통해 관계를 설명한 보고서가 될 수도 있겠죠. 혹은 예측 모델을 통해 어떤 지표가 다른 지표로 어떻게 설명될 수 있는지 만들어 볼 수도 있을 것입니다. 사람의 감으로, 경험으로 어떤 것은 어떤 결과를 야기하고, 어떤 것은 어떨 때 어떤 경우에 잘 될 것이다라는 관념을 전복시켜 버릴 수도 있을 것입니다. 내가 도메인을 더 잘 아는 변수이기에 지표로 만드는 가설에 대한 설명이 더 쉬울 수 있습니다. 일단 한 번 해 보는 것이죠. 도움이 되셨기를 바랍니다.
PETER님이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.