정의가 곧 정의다.
문과와 이과를 가르는 명확한 판단 기준이 있다. ‘정의’에 해당하는 영단어가 무엇인지에 따라서 갈린다. Justice라 답하면 문과고 Definition이라 답하면 이과다. 그냥 우스갯소리로 치부했는데 몇 주 전에 정의를 잘 내리는 것이 곧 정의로운 것이라는 생각이 스치듯 떠올랐다. 이 글을 적는 취지는 데이터 과학을 포함하지만 데이터 과학만으로 제한하지도 않는다.
달고나 시리즈에서도 언급했는지 아니면 그냥 페이스북 담벼락에만 남겼는지 모르겠지만 개인적으로 한중일의 저자의 책은 잘 읽지 않는 편이다. 여러 번의 경험을 통해 얻은 편견이지만 그럼에도 여러 추천 글을 보면 또 속는 셈 치고 사서 읽어보기도 한다. 대부분은 내 편견을 강화시켜주지만 가끔 괜찮은 책을 만나기도 한다. 책 전체가 마음에 드는 건 아니더라도 전체적인 주제 의식이나 또는 특정 표현에 꽂히기도 한다. 전체가 마음에 드는 건 아니더라도 이정동 교수의 ‘축적의 시간’이나 박태웅 씨의 ‘눈 떠보니 선진국’이 그런 책에 속하고, 디테일보다는 그들이 말하고자 하는 요지에 공감한다.
대한민국이 폐허에서 반세기 만에 나름 선진국 반열에 올랐지만 그 이후가 걱정이 된다는 게 큰 틀이다. 우리가 속도를 낼 수 있었던 것은 분명한 목표가 있었기 때문이다. 여기서 목표라는 것은 우리 앞의 선진국들 (미국이나 유럽, 또는 일본 등)이 시행착오를 거치면서 정립해놓은 개념을 뜻하다. 우리가 쫓아야 할 구체적인 개념이 존재하기 때문에 우린 모든 에너지를 집중해서 그 개념을 현실화시키면 됐다. 가장 빠르고 효율적으로 그건 만들면 선진국의 발치에는 이를 수 있다. 그런데 우리가 선진국에 이르렀을 때는 더 이상 누구도 우리에게 새로운 목표를 보여주지 않는다. 이때부터는 우리 스스로가 목표를 정해야 하고 또 그 목표가 맞는지 아닌지를 스스로 검증하고 전진해야 한다. 피리 부는 사나이를 따라가기만 하면 됐는데 이젠 스스로 피리를 불며 누군가를 이끌어야 한다는 거다.
축적의 시간에서 이정동 교수는 이때 필요한 것이 ‘개념 설계’ 능력이라고 했다. 그냥 유튜브를 찾아보면 예전의 TV 프로그램도 찾아볼 수 있는데, 이제껏 우린 1단 추진 로켓에 의지해서 우주로 나왔는데 지금은 2단 추진 로켓에 불을 붙여서 더 나가야 한다. 그런데 지난 반세기 동안 우리가 잘해왔던 것은 1단 추진 로켓을 어떻게든 우주로 내보내려고 노력했던 것이지, 우주로 나간 이후에 2단 로켓을 점화하는 방식은 아직 제대로 깨치지 못했다고 한다. 1단 로켓은 이전의 선진국들이 보여줬던 방식을 우리식으로 최대한 빨리 배워서 익힌 것이지 우리 스스로가 정의해서 구축한 것이 아니다. 우리의 힘이지만 우리의 힘이 아닌 걸로 우주에 나왔는데 이젠 우리의 방향을 가르쳐줄 선지자가 없다는 거다. 박태웅 씨의 표현을 빌자면 이제껏 잘 닦인 고속도로를 신나게 달려왔는데 길의 끝에 다다랐다고 한다. 그냥 비포장도로가 눈앞에 놓여있는 것이 아니다. 그냥 길이 끝나고 이제껏 아무도 걷지 않은 광야가 펼쳐진 거다. 지금껏 누군가가 만들어둔 길을 따라왔지만 이젠 스스로 길을 만들면서 전진해야 한다. 광야에서 매번 운이 좋을 수는 없다. 오히려 수렁에 빠지고 곁길로 빠지고 때론 전혀 전진하지 못하는 선택이 더 많다. 선두에 나선 이상 우리만 보고 쫓아오는 수많은 무리들의 미래까지 우리의 어깨에 달린 셈이다. (책의 뉘앙스만 대략적으로 표현한 것이 자세한 것은 책이나 저자의 강연 등을 찾아보기 바라다.)
이정동 교수가 말한 ‘개념 설계’나 박태웅 씨의 광야로 들어가는 선택은 결국 무엇을 ‘정의’하느냐?를 뜻한다. 이제껏 경험해본 적이 없는 개념을 정의 내려야 한다. 풀숲이 우거진 광야에서 낙원으로 이끌 방향인지를 정의 내려야 한다. 일단 문제를 정의해야지 문제의 해결책을 찾을 수 있다. 우연히 미래의 솔루션 복주머니가 손에 쥐어지는 경우가 전혀 없는 것은 아니나 미래로 향하려면 스스로 미래를 정의 내릴 수 있어야 한다. 정의 내리고 검증하고를 무한 반복, 시행착오를 겪으면서 더 또렷한 미래의 방향을 정하고 전진할 수 있다.
유아기나 학생 때는 그냥 부모나 선생의 말만 잘 들어도 성공할 — 실패하지 않을 — 수 있다. 사회 초년생일 때는 주변 선배/사수가 이미 내가 해야 할 문제를 정해놓고 때론 방향이나 방법을 알려주기도 한다. 그런 행복한, 안전한 시간은 별로 길지 않다. 연차가 차면 주변의 기대치가 달라진다. 더 이상 누군가가 시킨 일만 잘한다고 해서 능력 있는 사람으로 인정받을 수 없어지는 때가 온다. 이제 스스로 일을 찾아야 하고 때론 완전히 새로운 일을 정의 내려야 한다. 문제를 정의한다는 것은 그에 따른 결과도 책임진다는 의미를 포함한다. 책임감이 커질수록 정의 내리는 게 더 힘들다. 포장된 도로의 끝에서 그냥 은퇴할 수만 있다면 행복할 텐데 이젠 그런 시기는 지났다. 회사 창가에서 있는 그 늙은이들은 그냥 놀고 있는 것처럼 보여도 내일의 , 내년의 또는 그 이후의 문제를 정의 내리기 위해서 무진장 애쓰고 있는 거다. 물론 생각 없이 그냥 놀고 있는 나 같은 꼰대들도 있다.
데이터 분석의 과정을 설명할 때 제일 처음에 ‘문제 정의’ (또는 ‘데이터 정의’ 포함)를 놓는 이유는 정의 이후에 다른 과정이 진행될 수 있기 때문이다. 그냥 주어진 데이터에 적당한 알고리즘을 적용해서 솔루션을 구현하는 것이 데이터 과학이 아니다. 현상을 보면서 가설을 세우고 그걸 검증할 데이터나 방법을 구상하고 그런 후에 실행한다. 가설이 맞으면 끝이 아니라 다시 새로운 가설 (문제 정의)을 세워야 한다. 틀렸다면 다시 돌아가서 가설, 데이터, 방법을 수정해서 재검증한다. 이런 과정을 끝없이 반복하면서 새로운 인사이트를 얻고 다음의 액션을 찾아가는 거다. 데이터 분석은 문제를 해결하는 과정이기도 하지만, 문제를 정의하는 과정이기도 하다.
정의 없는 해결책은 정의롭지 않다. 단기적으로 어떤 문제를 해결했을 수도 있지만, 이후의 다른 새로운 상황에서 이전의 경험이 전혀 도움이 되지 않는다. 우연히 알고리즘 A를 적용했더니 매출이 증가했다. 그러면 다음번에도 그냥 기계적으로 알고리즘 A를 적용할 건가? 그때는 왜 알고리즘 A가 효과가 있었는지 이유를 알고 있다면, 다음번에는 상황이 비슷하니 A를 적용하자고 하거나 아니면 상황이 이렇게 다르니 A는 맞지 않고 A’나 B를 선택해야 한다고 주장해야 한다. 바른 문제 정의가 없다면 A가 왜 효과가 있었는지 파악하기 어렵다. 간혹 있는 천재는 열외로 하자. 데이터 과학자는 문제를 정의하는 사람이다. 그냥 손에 있는 연장을 휘두르는 기술자가 아니다. 문제를 잘 정의할 수 있으면 간단한 데이터나 행위만으로 유의미한 차이를 만들 수 있다. 딥러닝이 당신의 모든 문제를 해결해주지 않는다.