brunch

You can make anything
by writing

C.S.Lewis

by Jin Young Kim Oct 17. 2015

나의 데이터 과학 입문기

우연히 들어선 길에서 필연을 발견하기까지

데이터 과학이라는 용어가 생긴지 10년도 채 되지 않았으니, 어린 시절부터 데이터 과학자라는 꿈을 가지고 데이터 과학자가 된 사람은 거의 없을 것이다. 필자의 경우에도 어려서부터 데이터에서 뭔가 얻어내려는 노력을 끊임없이 했고, 어느 순간 데이터의 가능성에 인생을 걸게 되었지만, 데이터 과학이라는 이름으로 일을 시작하게 된 것은 얼마 되지 않는다. 이는 업계 최고로 인정받는 데이터 과학자들의 경우에도 마찬가지일 것이다.


이는 데이터 과학에 입문하는 여러분들에게 뚜렸한 롤모델이 존재하지 않는다는 뜻이기도 하다. 하지만 이것이 앞서 데이터 과학자의 길을 걸어온 사람들에게 배울 점이 없다는 뜻은 아니다. 오히려 각양각색의 길을 걸어온 선배 데이터 과학자의 이야기를 읽으며 자신이 걸어가야 할 길을 상상해볼 수 있지 않을까? 이런 의미에서 지금부터 필자가 했던 경험을 공유해볼까 한다. 


(개인적인 경험을 담은 글이므로 ‘필자’대신에 ‘나’를 사용해서 썼다)


입시를 위해 데이터 수집과 분석을 시작하다

돌이켜보면 나는 항상 뭔가를 기록하고 정리해 놓는것을 좋아했다. 별로 좋지 않은 기억력 때문이기도 하지만, 내 일상을 기록한 일지든 내가 읽은 책에 대한 기록이든 뭔가 차곡차곡 쌓여가는 느낌을 좋아했던 것 같다. 이런 기록들을 돌이켜보며 스스로 뿌듯해하기도 하고, 뭔가 고치고 반성할 점을 찾아내기도 하였다. 말하자면 내게 현상을 데이터화하려는 욕구는 본능과도 같은 것이었다.


내가 데이터의 가치에 대해서 처음 눈뜨게 되는 것은 중고등학교 때의 일이었다. 공부에 대한 조언 가운데 빠지지 않는 것이 틀린 문제를 기록한 오답 노트를 만들라는 것인데, 나는 이 아이디어를 확장하여 나의 읽기, 쓰기, 문제풀이 등 공부에 관한 모든 기록을 통계적으로 정리하기 시작했다. 예를 들어 문제지를 풀 때 단순히 틀린 문제를 기록하는 것이 아니라, 어떤 주제 및 유형의 문제를 얼마나 왜 틀리는지도 적었다. 이를 바탕으로 주어진 학습 시간을 취약한 부분에 최대한 할애하려고 노력했다. 그리고 다음번 문제지를 풀 때에는 어떤 변화가 생겼는지 관찰했다.


말하자면 수험 공부에 대해 데이터 기반의 학습 방법을 도입한 것이다. 이런 방법으로 나는 학습에 대한 의욕을 지속시키고, 내가 취약한 부분에 대한 집중적인 보강을 할 수 있었다. 주도면밀한 노력(Deliberate Practice)의 개념을 책에서 접하기 약 10년 전부터 그런 방법을 실천했다고나 할까. 이런 방법을 사용했던 고교 3년 동안 나의 성적은 계속 상승곡선을 그렸다. 스스로 측정하며 이루어가는 즐거움을 알게된 뒤에는 학원에도 발길을 끊었다. 그리고 결국에는 원하는 대학에 진학할 수 있었다. 결과만큼이나 소중한 것은 데이터에 근거한 주도면밀한 노력의 가치에 대한 깨달음이었다.


정보기술의 가능성에 눈뜨다

대학에 가서는 전공인 전자공학보다 컴퓨터 프로그래밍에 몰두하기 시작했다. 항상 내 기억력에 대해 컴플렉스를 가지고 있었던 나는 대용량의 정보를 마음껏 저장하고 아무데서나 꺼내 쓸 수 있게 해주는 컴퓨터와 인터넷의 능력에 깊은 인상을 받았다. 그리고 소프트웨어 개발자가 되기 위한 준비를 겸하여 내 자신의 일정을 어디서나 조회하고 관리할 수 있게 해주는 웹 기반의 달력을 만들기 시작했다. 그리고 내 일정을 관리하는데 내가 만든 달력을 쓰기 시작했다.


이윽고 병역특례를 겸한 3년간의 회사생활동안 나는 MYLEO (Make Your Life ExtraOrdinary)라고 명명한 시스템을 꾸준히 계량해나갔다. 처음에는 평범한 달력이었던 프로그램에 A부터 F까지의 점수로 일정을 평가할 수 있는 기능을 넣었다. 그렇게 하니 내가 잘했던 일과 잘 못한일을 구분해서 볼 수 있어 좋았다. 입시 공부를 할때와 마찬가지로 실수는 반복하지 않으려고 의식적으로 노력했다. 점수를 계속 확인하다가 좀더 편리한 방법을 찾고자 다양한 통계 처리와 시각화 기능도 추가했다.

내가 처음 개발한 개인정보관리 프로그램 MyLEO

여기에 위키에 기반한 지식 관리 기능까지 더하여 명실상부한 종합 개인정보 관리시스템이 완성되었다. 회사 사람들은 업무시간이 끝나도 프로그래밍을 계속하는 나를 신기해하고, 혹시 자기도 프로그램을 쓸 수 없겠냐고 문의하기도 하였다. 나는 당시 내게 가장 중요한 지표였던 주간/월간 일정의 평균 점수를 높일 수 있는 다양한 방법을 고안하여 실천해보기도 하였다. 이 시스템 하나로 삶을 최적화 할 수 있다고 믿었던 무모하고도 용감한 시절이었다. 이는 지금까지 하고 있는 행복도 측정의 시작이었다.


MYLEO를 개발하면서 사용한지 어느새 3년, 나는 IT 기술에 기반한 효과적인 정보의 관리가 개인과 조직에게 가져다줄 수 있는 가능성에 인생을 걸 준비가 되어 있었다. 그동안 혼자 개발하고 연구하면서 많은 배움을 얻었지만, 이 일을 평생의 업으로 삼기 위해서는 훨씬 더 많이 배워야 한다는 것도 어렴풋이 느끼고 있었다. 그래서 나는 정보 관리와 검색을 공부할 수 있는 대학원 프로그램을 물색하기 시작했다.


그리고 아직 학문적 경험은 없지만 그동안에 노력에서 나타나는 나의 열정을 높이 사준 주변 교수님들과 학교 덕분에, 나는 미국 메사추세츠 주립 대학(University of Massachusetts, Amherst)의 컴퓨터 사이언스 박사과정에 진학할 수 있었다.


검색과 데이터 사이언스를 배우다

경험이라곤 회사와 개인 프로젝트로 소프트웨어를 개발하는 것이 전부였던 나에게, 대학원에서 배우는 최신의 인공지능과 검색 기술이 주는 가능성은 무궁무진한 것이었다. 그동안 내가 개발했던 일정 및 지식 관리 프로그램은 사용자가 손으로 일일히 모든 정보를 입력해야 하는 방식이었는데, 기계학습 및 자연어 처리 기술을 사용하면 사용자가 입력하는 텍스트에서 자동으로 주제 및 감정 정보를 뽑아내는 것도 가능하다. 또한 검색 기능을 사용하면 사용자가 일일이 정보를 분류하지 않아도 검색 엔진이 원하는 정보를 자동으로 찾아줄 수 있는 것이다.


대학원에서의 연구 주제는 구조화된 문서의 검색으로 잡았다. 검색 하면 무정형의 문서를 다루는 웹 검색을 주로 떠올리지만 사실 대부분의 문서에는 메타데이터라고도 하는 고유의 구조가 있다. 이메일에는 보내는 사람과 받는 사람, 그리고 날짜와 제목이라는 구조가 있고, IMDB와 같은 영화 데이터베이스를 검색한다면 영화의 출연진, 감독, 장르, 제목 등 다양한 구조를 떠올릴 수 있다. 이런 문서의 구조가 사용자의 질의어와 갖는 관계를 통계적 기법으로 추론해 이를 검색 랭킹에 반영하는 것이 연구의 핵심 아이디어었다.


이를 사례를 통해 알아보자. 영화 검색 엔진의 사용자가 ‘meg ryan romance’라는 질의어로 검색을 하려고 한다. 단순한 검색 알고리즘이라면 사용자의 질의어를 문서 전체와 매칭하려고 할 것이다. 하지만, 잘 생각해보면 질의어중 ‘meg ryan’에서 사용자가 의미한 것은 영화에 출연한 배우(cast)이고, ‘romance’는 영화의 장르(genre)일 것이라고 추론할 수 있다. 만약 검색 알고리즘이 이런 관계를 추론할 수 있다면, 사용자의 질의어를 문서 전체에서 찾는 대신에 특정 부분에서 찾을 수 있을 것이다. 나의 연구는 이런 아이디어를 바탕으로 알고리즘을 개발하고 이를 실험을 통해 증명한 것이다.

사용자의 질의어('meg ryan romance')와 문서의 구조간의 관계

컴퓨터과학을 전공하는 미국의 대학원생들은 회사에서 인턴을 할 기회를 얻기위해 노력한다. 인턴 지원 및 프로젝트 과정에서 실제 회사에 지원해서 일하는 것이 어떤 경험인지 느낄 수 있고, 대학원 인턴의 경우 회사의 데이터와 프로젝트를 바탕으로 연구 논문을 쓸 수 있는 기회도 주어지기 때문이다. 나 역시 마이크로소프트에서 두번의 인턴을 경험하면서 학교에서 접하기 힘든 대용량 데이터를 분석하여 검색 엔진의 결과를 개인화시키는 기법에 대한 연구를 수행하였다. 인턴 중에 시애틀과 주변의 아름다운 자연 경관을 누릴 수 있었던 것은 보너스였다.


그 와중에 일어났던 또 다른 의미있는 변화는 스마트폰의 보급과 함꼐 자기 측정의 대중화를 주도한Quantified Self 운동의 확산이었다. 예전에는 데이터 수집, 처리, 분석까지 혼자 모든 것을 해야 했지만, 이제는 다양한 앱과 서비스를 사용하여 누구나 데이터 수집을 시작할 수 있게 된 것이었다. 또한 이런 개인들이 자신이 관심을 갖는 분석 주제를 공유하는 모임도 지역별로 생겨났다. 바야흐로 누구나 자신의 문제를 데이터로 해결할 수 있는 길이 열린 것이다.


이러한 변화에 발맞추어 나는 여러 프로그램에서 수집한 데이터를 모아서 종합해서 분석할 수 있게 해주는 프로그램을 만들기 시작했다. 예전에는 데이터 수집에서부터 분석, 그리고 시각화까지 모든 단계를 혼자 개발했지만, 데이터 입력은 에버노트나 모바일 앱에서, 데이터 가공 및 수집은 Ruby나 Python언어로, 시각화는 D3등의 웹 기반 시각화 툴을 사용하는 식이다. 대부분의 엡이나 서비스에서 데이터 입출력을 위한 API를 제공하기 시작했기에 가능한 일이었다.

내가 개인 행복도 측정을 위해 개발한 시스템

마침 근처의 보스턴에서 열린 첫번째 Quanified Self 모임에 참가할 수 있었던 나는 자신의 삶에서 일어나는 일을 데이터화하는 일에 열정을 가진 사람들이 이렇게 많아졌다는 것에 놀라지 않을 수 없었다. 그리고 2002년부터 다양한 방식으로 해왔던 개인 데이터 분석 프로젝트를 발표했을 때, 많은 사람들의 경탄과 함께 질문 세례가 쏟아졌다. 혼자 취미처럼 해왔던 일에 어느새 세상이 관심을 갖기 시작한 것이었다.


데이터 과학자로의 경력을 시작하다

대학원을 마치고 나는 검색과 데이터 분석에 대한 나의 흥미를 살릴 수 있는 직장을 구하기 위해 노력했다. 또한 박사과정을 이수하면서 개발보다는 연구가 내 적성에 맞는다는 사실도 느꼈다. 이 모든 조건을 충족시키는 곳은 인턴을 했던 마이크로소프트의 연구직이었다. 시애틀과 워싱턴주의 아름다운 경치에 끌린 점도 없다면 거짓말일 것이다. 그래서 2012년 여름 나는 시애틀에서 직장 생활을 시작하게 된다.


회사에서 연구자로서 시작하게 된 업무는 미국 검색 트래픽의 20%를 담당하는 빙(Bing) 검색엔진의 검색 결과를 평가하는 일이었다. 이는 구체적으로 주어진 검색 결과를 다양한 기준과 각도에서 평가하는 기법을 개발하고, 그 평가 결과를 실제로 검색 알고리즘을 개발하는 사람들에게 소통하는 일이다. 내 삶에서 다양한 데이터를 수집하여 분석하는 취미를 가졌고, 정보 검색을 전공한 나에게 이는 더할나위없이 흥미로운 일이었다.


대학원에서 검색 연구에 대한 다양한 경험을 쌓았지만, 회사 생활은 새로운 배움의 경험을 제공하였다. 실제 대용량 검색 서비스가 이루어지는 현장에서 부딛히는 어려움은 논문을 읽으며 상상했던 것과는 사뭇 다른 것이었다. 또한 마케팅, 개발, 디자인 등 다양한 배경의 사람들에게 연구자로서 나의 업무 성과를 이해시키는 것도 처음에는 쉬운 일이 아니었다. 이런 도전에도 불구하고 회사에 와서 데이터 과학의 다양한 모습을 접하고, 실제로 이론이 현실 세계의 문제를 풀어나가는 모습을 보면서 내가 선택한 길에 대한 보람을 느꼈다.


맺음말

지금까지 필자의 삶에서 ‘데이터 과학’과 연관지을 수 있는 부분을 요약해보았다. 여러분도 느꼈겠지만 필자는 어려서부터 데이터를 수집하고, 이를 바탕으로 현상을 개선하는데 관심을 가져왔다. 이는 아마 인류 역사가 시작된 이래에 수많은 사람들이 했을 노력이고, 여기에 데이터 과학이라는 이름이 붙게된 것은 극히 최근의 일이다. 이렇게 기술이 아니라 문제의식을 먼저 가지고 시작했기 때문에 필자는 다른 사람들이 ‘신기술’에 낭비하는 수많은 시간과 비용을 비판적으로 바라보게 되었다. 그리고 실제로 기계학습 기법이나 도구가 나왔을 때도 시도는 해보되, 실제 프로젝트에는 가급적 신중하게 도입하는 편이다.


그리고 필자는 비록 대학때부터 데이터 과학과 직접 관련된 전공을 선택하지는 않았지만, 대학원 공부를 통해 부족한 부분을 매꾸고 본격적인 데이터 과학의 세계로 뛰어들게 되었다. 필자가 걸어온 길이 가장 빠른 지름길은 아닐지도 모르지만, 누군가 처음부터 ‘올바른’ 전공을 선택하지 않은 것에 후회하냐고 묻는다면 아니라고 대답할 것이다. 필자가 거쳐온 다양한 삶의 경험이 현재 데이터 과학자로 일하는데 도움을 주고 있기 때문이다.


전자공학에서 배운 회로 설계나 전자장 등의 지식을 업무에 활용하는 것은 아니지만, 독학으로 프로그래밍과 고급 통계를 공부하면서 배양한 학습 능력이 그 단점을 상쇄한다고 믿는다. 또한 전자공학에 널리 쓰이는 미적분과 선형대수가 많은 기계학습 기법의 바탕이 된다는 것은 뜻하지 않은 수확이었다. 또한 대학때 잠깐 했던 디자인 공부도 나중에 정보시각화를 공부하는데 큰 도움이 되었다.


이처럼 데이터 과학에는 다양한 소양이 필요하며, 이런 의미에서도 통계/컴퓨터 전문가나 전공자에게만 열린 길은 아니다. 데이터 과학은 데이터라는 수단을 활용해 주어진 문제를 해결하는 과정이고, 누구나 자신의 문제에 데이터를 활용하는 방법을 배울 수 있기 때문이다. 데이터 과학에 대한 최소한의 지식을 쌓은 후에는 자신이 어떤 문제를 풀고 싶은지, 이를 위해 어떤 데이터를 활용할 수 있는지 묻는데서 출발해야 한다. 


만약 장차 데이터 과학자를 꿈꾸고 있다면 데이터 과학자로서 어떤 문제를 해결하고 싶은지를 고민하기 시작해야 할 것이다. 일단 문제를 정하고 나면 어떤 도구와 분석 기법을 사용해야 할 것인지를 쉽게 결정할 수 있을 것이다. 또한 배운 내용을 문제 해결에 바로 적용하면서 지식을 자기 것으로 만들 수 있다. 반대로 어떤 특정한 기술을 무작정 배우는데서 출발한다면 시간 낭비가 될 가능성이 크고, 막상 실전에 나섰을 때는 또 다시 공부를 해야한다는 점을 깨닫게 될 것이다. 

데이터 과학자가 되고싶은 여러분이여, 기술이 아닌 문제에서 출발하자!


추신: 저의 책 '헬로 데이터 과학'이 지금 YES24에서 예약판매 중입니다. 데이터에 관한 더 많은 이야기를 블로그와 트위터페이스북에서 만나실 수 있습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari