아무도 이야기해주지 않은 진실, 문제 해결 능력
“어떤 툴을 배워야 할까요?”라는 질문이 적합하지 않다는 말은 아닙니다. 당연히 분석을 하기에 앞서 나의 목적에 맞는 도구가 무엇일지 고민하는 과정에서 생긴 의문이고, 쓸 수 있는 툴이 널리고 널린 요즘에는 누구나 궁금해하는 부분입니다. 하지만 오늘은 무엇을 배우는 게 ‘낫다’라는 이야기가 아닌 데이터 분석에 있어 중심이 되는 역량을 이야기해보려 합니다.
Tool은 생각의 확장과 정리를 거드는 수단입니다. 원하는 데이터를 추출할 수 있도록 sql을 쓰고, 통계 분석이 필요하다면 R을 쓰고, 머신러닝 모델을 만들고 싶다면 Python을 쓰는 것입니다. (혹시나 오해하실까 봐 드리는 말씀은 R, Python 모두 통계 분석, 모델링 가능합니다. 다만 R이 좀 더 통계학을 위한 툴이기 때문에 위와 같은 예시로 표현하였으니, 이해해주시기 바랍니다.)
최근에는 좋은 온/오프라인 데이터 입문 강의들이 등장해서 많은 분들이 도움을 받고 계십니다. 주로 이 강의들은 tool 활용에 집중을 합니다. 그래서 간혹 입문자 분들은 하나 끝나면 다른 툴을 배운다거나 주최 기관에서 추천하는 커리큘럼을 따라 다음 코스를 밟기도 합니다. 제 경험을 토대로 제안드린다면 tool 이것저것 배우느라 시간 보내고 체력 쓰고 하시기보다, 더 중요한 것에 집중하셨으면 합니다. 툴은 우선은 하나만 제대로 배우시면 충분합니다. 그리고 솔직히 말씀드리면 웬만한 데이터 분석은 sql과 엑셀로 다 가능합니다.(속닥속닥)
문제 해결 능력(Problem-solving skill), 구조를 잡고 논리를 통해 주어진 문제를 해결하는 능력입니다. 이 부분이 얼마나 중요한지 말씀드리고 싶어 제가 생각하는 좋은 데이터 분석가가 가지는 역량을 그려보았습니다.
가장 아래에 위치한 문제 해결 능력을 기반으로 세 기둥(Tool 활용능력, Communication Skill, 수에 대한 감)이 있어야 하고 거기에 전달력 있는 보고서 작성 능력까지 갖춰진다면 훌륭한 분석가라고 생각합니다. 문제 해결 능력이 토대가 되는 이유는 기둥을 이루는 구성, 지붕의 구성 모두 문제 해결 능력을 기반으로 기술이 다듬어지고 발전합니다.
역으로 말해 문제 해결 능력이 있는 분석가 여부를 빠르게 확인하기 위해서는 간단한 케이스 질문으로도 검증할 수 있지만 이 세 기둥 중 적어도 하나가 얼마나 견고하게 이루어져 있는지만 봐도 알 수 있습니다.
구조적 사고법이 무엇인지 간단히 설명하자면 다음과 같습니다.
지난주 우리 회사 영업 이익이 20% 하락했다고 생각해봅시다. 이 하락의 원인을 찾기 위해서 우리는 영업 이익을 구성하는 매출과 비용을 나누어 관찰하겠지요. 매출이 하락해서 발생한 하락인지, 비용이 상승해서 발생한 하락인지 구분하는 것입니다. 더 세부적으로 확인한다면 매출을 구성하는 요소, 비용을 구성하는 요소까지 확인하여 데이터 분석을 진행합니다. 이렇게 구조를 그려서 분석 가지를 차근차근 전개해나가고, 필요 없는 가지, 필요 있는 가지를 걷어내면서 내가 원래 찾고자 했던 목적의 원인을 탐색해 나갑니다. 이것을 구조적 사고법이라 합니다.
더욱이 데이터는 구조 형태로 되어 있기 때문에 구조적/논리적 사고력이 있는 사람일수록 더 쉽게, 깔끔하게 문제를 풀 수 있습니다.
위의 예시를 읽어 내려가시면서 느끼셨을 수도 있겠지만 이 역량은 데이터 분석에만 해당하는 것이 아닌 어쩌면 모든 영역에서도 필요한 역량입니다.
분석할 시간은 정해져 있고, 해야 할 일은 많은데 그 와중에 변수까지 발생하는 것이 현실입니다.
데이터 분석가는 효율적으로 일할 줄 알아야 본인도 편하고 남들도 편합니다. 그렇지 않으면 자신의 하루가 데이터에 압도되어서 지쳐 나가떨어지는 일이 허다합니다. 특히나 반복 작업이 많은 데이터 분석가에게 효율성이 없다면 언젠가는 데이터라는 산 속에서 제 무덤을 파고 있는 본인의 모습을 마주하게 될 것입니다.
문제 해결 능력과 구조적 사고법의 훈련이 습관처럼 자연스러울수록 실전에 더 강합니다.
Tool을 배우는 수업 중에도 병렬로 함께 생각하시면 좋을 것이
내가 작성하는 이 한 줄의 코드가 어떤 상황에 쓰일 수 있을지
같은 코드를 통한 결과라도 목적이 다르면 어떻게 표현할지
실전 데이터가 가지고 있을 한계점은 무엇일지
시뮬레이션을 해보는 방법입니다.
쉽게 떠올리기 어려운 세 번째 예시인 ‘실전 데이터가 가지고 있을 한계점’을 예로 든다면
교육용 자료에 있는 100개의 레코드(행)를 가진 5개의 칼럼(열)으로 구성된 데이터에서는 빈 값이 하나도 없다. 근데 내가 재직하는 회사에 100개 중 40개가 빈 값이 있다면 나는 데이터를 어떻게 처리/가공해야 할까?
Table(a.k.a 데이터 한 묶음)끼리 연결하는 Key 값이 잘못되어 있다. (첨언. 서로 다른 Table을 연결할 때에는 우리가 집 문을 따듯이 공용으로 쓰는 Key가 존재해야 합니다.) 그럼 나는 key를 대체할 수 있는 컬럼을 어떻게 만들어야 할까?
시뮬레이션의 핵심은 본인 스스로가 문제를 가상으로 설정하고 문제를 해결해나가는 프로세스를 머릿속으로 그려보는 것입니다. 그래서 꼭 tool을 배우면서가 아니더라도 일상생활에서도 문제를 정의하고 해결하기 위해서 데이터로 어떻게 접근하면 좋을지 상상해 보셔도 됩니다.
실전을 경험해보지 않고서 데이터 관점에서 생각을 계속적으로 확장시키는 일은 당연히 어렵습니다. 말도 안 되고 전혀 쓸모없는 생각으로까지 확장할 수도 있고요. 그렇지만 이 말도 안 되는 생각도 일단은 끊임없이 해보는 것이 생각의 근육을 키우고 논리적으로 생각해보는 훈련입니다.
끊임없이 질문할 줄 알아야 합니다
데이터 분석을 익혀나가는데 무엇을 더 먼저 배워야 한다 등의 정의는 없습니다. 다만 저는 문제를 구조화시키고 논리 있게 해결 방안을 찾아가는 일이 데이터 분석가로서 무엇보다 중요하다고 여겨 이 부분을 더욱 강조드립니다. 본인에게 가장 적합한 공부법을 하루빨리 찾으셔서 재미있게 데이터 분석을 즐기셨으면 하는 바람입니다.