데이터에서 문제를 찾지 말고, 문제를 해결하기 위해 데이터를 찾아요
멘토님, 데이터 분석은 할 줄 아는데
이게 지원회사에 어떻게 어필이 되는지 모르겠어요
취업 멘토링에서 데이터 분석가로서 진로를 희망하는 학생들에게 가장 많이 받는 질문입니다. 제 생각에 요즘 학생들 못하는 것이 없습니다. 코딩, 영어, 자격증 등 개개인의 역량이 과거보다 월등히 뛰어나다고 생각합니다. 그럼에도 현업에서 다소 아쉽게 느껴지는 부분이 바로 '문제 그 자체' 보다는 '도구를 다루는 능력을 먼저 익히고 있다'는 점입니다. 그러나 가장 중요하면서도 간과하고 있는 것, 바로 "문제 해결 역량"입니다.
당신의 능력이 회사의 문제를 해결할 수 있다는 것을 예시를 통해 보여주세요
회사에 입사하는 동시에 수많은 문제들에 직면하게 됩니다. 단순히 "내가 어떤 일을 해야 하는지?"부터 새로운 상황과 위기 속에서 "회사가 어떻게 대응해야 하는지?" 같은 것들 말이죠. 그것들은 일정한 과정도, 정답도 존재하지 않습니다. 심지어 스스로 없는 문제도 만들어서 풀게 되는 경우도 있습니다.
간단명료한 문제 해결 3단계 : 문제정의 → 원인 분석 → 해결방안
일상생활에서 문제가 생기면 대부분의 사람들은 직관적으로 해결하려 합니다. 기침이 나면 약국에서 감기약을 먹는다거나, 회사 매출이 부진하면 홍보나 마케팅을 공격적으로 합니다.
즉시 해결이 가능한 문제는 직관적인 답이 효과적일 때도 있습니다. 왜 그 문제가 생겼는지 깊게 생각해 볼 시간이 없거나 또는 그럴 필요가 없는 문제들이 그렇습니다. 하지만 비즈니스 상황을 비롯한 많은 문제들은 복잡한 상황과 영향을 주는 다양한 요인들로 구성되어 있습니다. 그럴 때는 누구나 알 수 있는 다음 3단계를 거쳐 문제를 해결합니다.
문제정의 → 원인 분석 → 해결방안
"문제가 무엇인가?"는 굉장히 중요한 부분입니다. 풀고자 하는 문제가 명확해야만 해답을 구할 수가 있습니다. 만일 문제가 명확하지 않다면, 문제가 정해져 있지 않은 시험지를 받고 답안지를 작성해야 하는 상황과 같습니다. 답안지를 작성해서 제출했는데 문제를 바꾼다면, 시험에서 좋은 점수를 받기 어려울 것입니다.
실제 비즈니스에서는 문제가 계속 변하는 상황이 발생하기도 합니다. 그래서 어떤 프로젝트를 시작할 때, '문제는 이것이다'라고 정의하고 시작하는 것이 매우 중요합니다. 그렇지 않으면 계속해서 변하는 문제를 푸느라고 프로젝트는 종료될 수 없습니다.
문제를 정의할 때, 다음의 세 가지 질문을 거칩니다.
첫째, 이상적인 상태는 무엇인가?
둘째, 현재 상태는 어떠한가?
셋째, 이상적인 상태와 현재 상태의 차이(Gap)는 얼마인가?
문제는 바로 이상적은 상태와 현재 상태의 차이가 발생하는 지점에 있습니다. 이상과 현재, 둘 사이의 gap 차이를 우리는 문제로 정의하고 이것을 좁히거나 없애는 것을 목표로 삼습니다.
현재 사업의 매출이 10억 원이고, 이상적인 매출이 12억 원이라면 그 차이는 2억 원이고 이것을 달성하는 것이 문제입니다. '연간 매출 2억 원의 매출을 어떻게 증가시킬 것인가?'라는 문제를 정의할 수 있습니다.
기침 때문에 한 달 이상을 고생한 적이 있습니다. 우리는 기침이 나면 직관적으로 판단하고 바로 감기약을 먹습니다. 물론 저도 약국에서 바로 감기약을 사 먹었습니다. 하지만 낫지를 않더라고요. 아무리 약을 먹어도 낫지 않아서 병원에 가서 의사 선생님이 이런저런 진찰을 해보니 "역류성 식도염"이라는 진단을 해주셨고, 원인에 맞는 약을 먹고 나았습니다. 원인도 모른 채 증상만 없애려고 하다가 병을 키운 꼴이었지요.
이처럼 정확한 원인을 도출하기 위해서는 우선 원인 '후보' 들을 선정해야 합니다.
그러려면 우선은 원인 '후보' 들을 2개 이상 나열한 뒤 평가하는 방식을 사용하면 됩니다.
그 방법을 보다 논리적으로 구성한다면 어떠한 현상을 나타내는 원인을 빠짐없이 구조화하는 것입니다.
그리고 그 원인에서 한 단계 더 잘게 쪼개거나, 더 깊게 생각해보는 것입니다.
저의 기침의 경우를 살펴보겠습니다.
의사 선생님께서는 다음과 같은 질문을 하십니다.
"담배 피우시나요?" "아니요", "드시는 약 있으세요?" "아니요" → 약물 유발 기침 아님
"콧물이나 가래같이 다른 증상 있으신가요?" "아니요" → 감기/폐렴/기관지염 아님
"식사 전후로 심해지시나요?" "네" → 소화기 이상 증상
"통증 같은 거 같으세요?" "가슴 쪽이 타는 느낌이 나요" → 위/식도 이상 증상
"커피나 빵, 초콜릿, 술 좋아하세요?" "네" → 역류성 식도염 확률이 높음
의사 선생님의 질문은 그냥 하는 것이 아니라, 논리적 사고를 통해 문제를 구조화한 뒤 진찰하는 방식과 같습니다. 이처럼 원인을 구조화하게 되면, 직관적으로 생각하지 못하는 것들에 대해 알 수 있게 되니다. 그리고 어떤 데이터를 분석해야 하는지 구체적을 알 수 있게 되죠.
* 추가 원인 분석 접근방법 : Logical Tree, 5 WHY , Fishbone Diagram
지금까지 문제 해결을 위해 현상태와 이상적인 상태의 차이를 파악하는 1. 문제정의, 원인의 후보들을 구조화하여 빠짐없이 생각해보는 과인 2. 원인 분석을 수행하였습니다. 이제는 문제 해결에 필요한 구체적인 해결작업을 해야 합니다.
좀 더 익숙한 예를 들어보겠습니다.(최근에 브런치에서 다른 작가님께서 써주신 '김밥'에 관한 추억)
소풍날 김밥을 만들기 위해 필요한 것은 김밥 재료, 요리 도구, 그리고 아이가 좋아하는 김밥 종류 등이 있습니다. 입력되는 데이터는 밥하기, 재료 손질, 김밥말기, 자르기, 도시락 싸기 등의 작은 단위로 나눌 수 있습니다. 이렇게 하면 소풍 김밥이 완성되는 것이지요.
많이 들어보신 것 같다고요? 네, 이것이 [07 인공지능 부려먹기 역량]에서 익힌 컴퓨팅 사고력입니다.
우리는 해결방안을 데이터 관점에서, 그리고 컴퓨터 관점에서 접근할 수 있도록 합니다.
데이터를 활용했을 때 더 효과적인가?
무엇보다도 제일 중요한 것은 해결방안이 "데이터를 활용했을 때 더 효과적인가?"라는 질문을 먼저 해야 합니다. 데이터에서 문제를 찾지 말고, 문제를 해결하기 위해 데이터를 찾는다는 말의 의미가 바로 여기에 있습니다. 누구나 다 알고 있는 김밥 문제를 컴퓨터로 풀 필요는 없습니다. 하지만 외출 중에도 김밥 재료가 냉장고에 있는지를 컴퓨터가 알 수 있다면(냉장고가 김밥 재료를 인식할 수 있다면) 이야기는 좀 다르게 전개될 수 있을 겁니다.
이처럼 컴퓨터와 함께 문제를 해결하는 열쇠를 바로 "알고리즘" 했습니다. 일반적인 문제 해결 과정과 다르게 컴퓨터를 이용하여 문제를 해결할 때는 현제의 문제를 데이터 관점에서 접근하고 분석해야 합니다. 문제 정의 과정에서 핵심 요소를 추출하여 컴퓨터로 처리할 수 있는 알고리즘을 설계하고 설계된 알고리즘에 따라 프로그램을 작성하여 문제를 해결합니다. 또한 프로그램이 제대로 작동되는지 확인해보고 오류가 생기면 수정을 통해 정확한 프로그램을 만들어야 합니다.
컴퓨팅 사고력에 대해 되짚어보면서 이번 글을 마치고자 합니다.