Practice: Data Scientist's Presentation
지난 금요일은 인턴들이 수행한 과제의 결과를 발표하는 날이었다. 멘티의 발표자료를 첨삭하고 또 다른 인턴들의 발표를 들으면서 발표자료를 만드는 것에 관해서 짧게 적어야겠다고 마음먹었다.
하수-중수-고수, 초보자-중급자-전문가 등 여러 방식으로 어떤 기술(자)의 등급을 매길 수 있다. 데이터 과학자도 비슷하게 상중하를 굳이 나눌 수 있지만, 다른 관점에서 역량이 쌓이고 역할이 바뀜에 따라서 ‘분석 - 해석 - 소통’으로 단계를 나눌 수 있다고 생각한다. 소통 단계가 최상위의 데이터 과학자를 뜻하지는 않는다. 분석 단계에서도 최고의 기술을 갖은 고수가 있을 수도 있고, 소통을 잘 하지만 기본 데이터 과학 역량을 제대로 갖추지 못한 경우도 허다하다. 하지만 일반적으로 데이터 과학자라는 업을 시작해서 경력이 쌓이면서 자연스레 또는 외부의 요구에 의해서 분석-해석-소통의 단계를 마스터해야 한다는 의미다. (말은 번지르르하지만 기본 실력이 없는 사이비 데이터 과학자는 경계해야 한다.) 데이터 과학은 넘버크런칭으로 시작해서 스토리텔링으로 끝난다.
분석은 다양한 관점과 방법론으로 데이터 더미에서 데이터의 속성과 경향성을 파악해서 예측하는 단계다. 보통 주니어로서 주어진 태스크를 수행한다. EDA를 통해 데이터의 속성을 파악하고 피쳐 엔지니어링으로 시스템에 필요한 피쳐를 발굴, 가공하고 여러 머신러닝 알고리즘을 적용해서 결과를 도출하는 흔히 생각하는 데이터 과학자의 전형이다. 예를 들어, 현재 정확도 80% 정도의 A라는 알고리즘을 사용하고 있었는데, 데이터 가공 방식을 바꾸고 B라는 새로운 알고리즘을 적용해서 정확도를 85%로 올렸다. 이 5%의 LIFT는 통계적으로 유의미해서 시스템을 개선하기로 했다. 흔히 생각하는 데이터를 분석하고 다양한 라이브러리의 분석 도구나 알고리즘을 제대로 활용하는 단계다. 다소 기계적이지만 한편으론 편한 단계다.
해석은 데이터와 분석 결과의 숨은 함의를 찾아내는 역량을 갖춘 단계다. 분석이 데이터의 정보화 과정이라면 해석은 정보의 지식/지혜화 과정으로, 제대로 된 데이터 과학자로 성장하려면 필연적으로 이르러야/거쳐야 한다. 앞의 예에서 정확도 5% LIFT가 뭘 의미하는 것일까? 정확도를 높였으니 잘한 거 아니야?라고 생각할 수 있지만, 어째서 5%가 향상됐고 이를 통해서 얻을 수 있는 기대 효과나 부작용은 어떤 것이 있을지 등의 막전막후를 모두 파악하고 대비해야 한다. 새로운 데이터를 추가해서 정확도가 향상됐는지, 또는 어떤 데이터나 변환 과정이 얼마만큼의 향상에 기여했는지, 또는 정확도를 5% 향상했지만 속도가 2배 느려져서 컴퓨터 리소스를 2배나 더 투입해야 하고 그런데 실제 매출은 겨우 1%만 올라서 경제성이 별로 없다든지 이런 종합적인 결론에 이르려면 단순히 분석된 수치만으로 해결되지 않는다. 데이터 분석 능력 외에 다른 분야에서의 다양한 경험과 관점을 갖춰야한다. 전체적이고 종합적이고 다면적으로 데이터나 분석 과정을 검토하고 그 결과의 영향 등을 파악하는 것이 해석 능력이라 본다. 분석 단계에서 기계적으로 가용 알고리즘을 사용했다면 해석 단계라면 왜 그걸 사용해야만 했는지에 대한 명확한 이유를 댈 수 있어야 한다.
마지막으로 소통 단계는 분석, 해석을 통해서 얻은 인사이트를 주변에 공유하고 설득하는 거다. 정보화, 지식/지혜화를 거쳐 사회화 단계다. '비록 5% 정확도를 올린 새로운 방법론이 비용 편익에는 별로 도움이 되지 않지만, 사용자의 만족도가 증가할 것이므로 이 프로젝트의 산출물을 현재 서비스에 접목해야 한다’와 같은 결론을 도출하고 이를 모든 이해관계자들이 쉽게 이해하고 받아들이고 그리고 궁극적으로 공통의 목표를 향해서 달려 나가게 하는 것도 결국 데이터 과학자의 최종 스킬인 셈이다. 이를 위해서 분석과 해석의 결과를 이해하기 편하게 자료화해서 발표하는 게 필요하다. 반복해서 강조하지만 올바른 분석과 해석이라는 바탕 위에 효과적인 소통이 중요하다. 알맹이 없는 껍데기로 사람들을 현혹시키는 사이비는 경계해야 한다.
데이터 과학자가 외부와 소통할 일이 거의 없을 수도 있다. 특히 주니어거나 분석팀 내에서만 프로젝트를 진행한다면 굳이 발표나 자료를 준비하지 않아도 업무를 하는데 문제없다. 하지만 서비스/시스템이 복잡해지면서 협업이 필수가 됐다. 데이터 과학에 관한 지식이 전무한 개발자와 미팅을 갖기도 하고, 애초에 개발 지식도 없는 기획자와 회의할 때도 있다. 때론 경영자들에게 결과를 보고해야 할 때도 있고, 외부 협력사나 일반인을 대상으로 발표해야 할 때도 있다. '그냥 조용히 분석만 하고 살래요’라는 소원을 이루길 기원하지만, 예기치 않은 상황을 위해서 미리 준비/연습해둬서 나쁠 건 없다. 데이터 과학자의 사회를 향한 일종의 선한 영향력이다. 오픈 소스 활동에 적극적으로 기여할 만큼의 개발 능력이 못되더라도 이렇게 글이나 자료를 통해서 간접적으로 기여하는 것은 선행자의 책무다.
Anyway... 발표 자료를 잘 만드는 것과 발표를 잘하는 것은 별개다. 그래도 (굳이 만들어야 한다면) 자료를 잘 만드는 게 낫다. 달변가라서 자료가 필요 없어요라는 분이 아니라면 미리미리 자료를 잘 만드는 것을 고민하고 연습했으면 좋겠다. (우선 그 필요성부터 자각하자.) 언뜻 생각나는 좋은 자료의 요건 몇 가지를 정리한다.
내용. 당연한 소리지만 모든 발표에는 명확한 내용 또는 콘텐츠가 있어야 한다. 콘텐츠 없이 좋은 발표 자료가 만들어지지 않는다. 아무리 뛰어난 미적 감각으로 발표 자료를 화려하고 예쁘게 만들고 또 수준급 언변으로 사람들을 현혹시킬 수 있더라도 내용이 없으면 좋은 발표가 될 수 없다. 맛있는 요리를 만들려면 우선 신선한 재료가 있어야 한다. 일단 많이 있으면 좋다. 그래야 적절히 골라쓸 수 있다. 유명한 소위 전문가 셀럽들의 발표도 내용 없는 빛 좋은 개살구같을 때가 종종 있다. 일단 많은 내용이 있어야 하지만, 그보다 더 중요한 것은 핵심 내용/주제가 있어야 한다. 소고깃국을 끓이는데 소고기가 없으면 그냥 뭇국이 된다. (뭇국 선호자에게는 미안)
구성. 숫자는 있는데 내러티브 (스토리)가 없는/빈약한 경우가 있다. 발표할 내용이 충분하다면 이제 기승전결이 확실한 시나리오가 필요하다. 프로젝트의 정의와 필요성 (기), 제안하는 방법론 (승), 제안한 방법론의 실험 결과 (전), 그래서 이를 통해서 얻을 수 있는 기대 효과 (결)를 잘 짜인 각본을 만들어야 한다. 스토리텔링이 곧 좋은 발표다. 요리의 레시피나 세트 요리의 서빙 순서가 열쇠다. 오직 하나의 방식만 존재한다는 의미는 아니다. 상황에 맞는 효과적인 구성과 그렇지 않은 구성이 분명 존재한다. 몇몇 발표에서 '나는 지난 한 달 동안 이만큼 열심히 했어요'만을 어필했다. 했던 많은 일들을 그냥 쭉 나열해놓아서 지루한 발표였다. 많은 것 중에서 핵심이 되는 걸 선택하고 그걸 중심으로 이야기를 풀어갔어야 했다. 처음부터 완벽한 시나리오가 나올 수 없기에 자료를 만들면서 계속 수정한다. 이때 가장 어려운 부분은 애써 만들어둔 걸 삭제하는 일이다. 한번 추가한 것을 삭제하는 건 자기 자신을 부정하는 듯해서 매우 힘들다. 그래서 "추가는 신중히, 삭제는 과감히". 자료를 만들면서 아래의 캡처 화면처럼 주기적으로 타일뷰로 전체 시나리오를 재점검하고, 또 리허설 통해 부자연스러운 걸 제외/보완하는 것도 좋은 방법이다.
디자인. '같은 값이면 다홍치마'라는 속담이 괜히 만들어진 게 아니다. 디자인이란 단순히 화려, 현란하고 예쁜 걸 뜻하지 않는다. 한 마디로 "아름다움"이다. 개인적으로 아름답지 않은 걸 싫어한다. 내용에 따라서 편견이나 차별이 될 수도 있지만 나는 세상의 모든 아름다운 걸 좋아한다. 외적이든 내적이든… 발표할 내용도 알차고 스토리도 완벽하다면 그걸 효과적으로 보여주는 발표자료로 표현돼야 한다. 작은 폰트의 글씨로만 꽉 찬 페이지, 관객의 눈은 생각지 않은 총천연색 페이지, 넓은 화면을 놔두고 구석에 작게 몰아넣어둔 내용, 모든 폰트를 bold로 해서 뭐를 강조했는지 파악할 수 없는 문구들, 페이지마다 달라지는 색/폰트 조합 등 모두 나열하기 벅찰 정도다. 이런 나쁜 관행은 자신감의 부족일 수도 있다. 자신없는 내용을 적을 때 복잡하고 장황해진다. (경우에 따라서 복잡하게 표현해야 할 때도 있지만, 그게 유일한 방법인지는 깊이 고민해야 한다.) 눈에 보이는 모든 것은 심플하고 일관되고 명확한 이유가 있어야 한다. 나쁜 디자인은 손님을 초대해서 고급 요리를 만들었는데 음식을 냄비채로 내놓는 것과 같다. 발표에서 발표자료는 부가적이긴 하지만 시각이 담당하는 부분이 매우 크다. 보여주기 위한 거라면 여러 의미에서 아름다워야 한다. 어렵다면 KISS만 기억하자. Keep It Short & Simple.
관객. 처음에는 내용이 가장 중요하고 다음으로 이걸 어떻게 구성할 것인지가 중요하고 마지막으로 시각적 일관성이 필요하다는 식의 전개를 생각했다. 그렇게 글을 적다가 다시 곰곰이 생각하니 결국 관객 (및 환경)에 맞는 발표가 가장 중요하다는 결론에 이르렀다. 발표 (및 자료)는 화자가 아닌 청자를 위한 거다. 관객과 발표 환경에 맞지 않은 발표자료는 아무리 내용과 구성과 디자인이 좋더라도 쓸모없다. 새로운 레시피의 매운 떡볶이가 아무리 맛있더라도 5살 유아한테 먹으라고 내놓을 수는 없다. 관객이 특정되지 않았다면 누구나 보면 이해할 수 있게 만드는 게 가장 좋지만 특정됐다면 그에 맞게 구성해야 한다. 짧은 발표 시간 동안 관객들이 이미 다 알고 있는 특정 머신러닝 알고리즘을 소개하는데 4~5분을 허비해버리면 결국 뽐내야 할 자신의 핵심 아이디어와 그 결과를 자세히 설명할 시간이 줄어든다. 알다시피 시간이 부족하면 중요한 지점에서 조급해지고 버벅이게 된다. 아름다움이 좋다고 말했지만 그게 목적에 부합하지 않으면 오히려 관객을 더 짜증 나게 만들 수도 있다. 과하지 않게...
언젠가 인터뷰 관련 글은 따로 적을 예정이다. 최근 여러 인터뷰나 인턴 발표를 보면서 '전략적 사고/행동’이 중요하다는 걸 새삼 깨달았다. 위에서 길게 적었지만 요약하면 ‘전략적으로 준비하라’다. 부지불식간에 찾아오는 기회라면 놓칠 수도 있지만 면접같이 사전에 조율된 기회라면 전략적으로 접근해야 한다. 일전에 어떤 지원자가 인터뷰 과제에서 여러 문제점들을 지적하며 각각의 구체적인 해결책을 제시했다. 얼핏 보면 괜찮은 발표였으나 PM 포지션에 맞는 발표는 아니었다. 가장 중요한 문제를 하나 선택해서 종합적 해결책을 제시했다면 더 임팩트가 있었을 거다. 발표도 역량이다. 자신의 모든 능력을 보여주는 것도 중요하지만 가장 자신 있는 장점을 더 부각하는 것이 전략이라면 전략이다.
발표할 내용을 마련하는 것은 적절한 노력만 있으면 가능하지만, 구성이나 디자인은 시간이 해결해주진 않는다. 간혹 본능적으로 좋은 구성과 디자인을 만들어내는 사람도 있지만 — 천부적 재능이다 — 대부분은 그렇지 않다. 그렇기 때문에 연구하고 연습해야 한다. 나도 박사 3년 차 즈음에 여러 가지로 눈을 뜬 케이스지만, 그전부터 의식적으로 준비한다면 소통까지 완벽한 좋은 데이터 과학자가 될 수 있다.
인턴 발표로 돌아가서… 모두 나름 잘했지만, 어떤 친구는 수많은 시도를 했는데 그걸 쭉 나열만 하다 보니 핵심을 놓치고 지루해져서 그 친구의 장점이 뭔지를 파악하기 힘들었고, 어떤 친구는 스스로 발표자료를 잘 만든다고 자신하지만 오히려 스킬이 과해서 내용/핵심을 전달하는 데는 다소 실패한 느낌이고, 어떤 친구는 청중들이 다 알고 있는 내용을 굳이 장황하게 설명하느라 자신이 수행한, 특히 데이터 과학자로서의 역량을 보여주는 데 아쉬움이 남고, 어떤 친구는 전혀 구성이나 디자인에 젬병이었고, 어떤 친구는 결과에 자신 없었는지 변죽만 울리고 내용을 분산 배치해서 핵심에 집중할 수 없었고, 어떤 친구는 전략적으로 자신이 전달해야 할 메시지에 집중하지 않아서 (장점이 될 수도 있었지만) 오히려 단점만을 보여준 경우도 있었다. 완벽한 발표라는 게 존재하지 않는다. 그래서 노력과 연습이 필요하다. 대부분 대학을 갓 졸업했거나 앞둔 친구들이라서 발표가 중요하고 전략적으로 활용해야 하는 것을 아직은 깨닫지 못한 듯하다.
참고로 난 유능한 발표자가 아니다. 일단 말하는 것 자체를 싫어한다. 이론가 또는 책략가형의 인간이라서 실전에는 매우 취약하다.