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