전희원 SK텔레콤 매니저

▲ 전희원 SK텔레콤 매니저
[컴퓨터월드] 전희원 SK텔레콤 매니저는 사무실에 출근 후 주업무인 데이터 전처리, 데이터 시각화, 예측 모델링, 분석 리포팅, 문서화 등을 R을 기반으로 하고 있다. 뿐만 아니라 논문 작성, 리포트, 서적 집필, 블로깅까지 개인적인 일까지 R을 활용하고 있다.
이런 탓에 전희원 매니저는 R이 없어지는 꿈을 꾸기고 했다고 한다. 꿈이었긴 하지만 현실에서 R이 없다고 생각한다면 앞으로 업무를 어떻게 처리할 지 막막했다고 소회를 밝히기도 했던 만큼 R에 중독된 듯 R에 대한 애정이 매우 크다.
이런 R과의 인연은 6년 전으로 돌아간다. 그 당시 야후코리아에서 근무하고 있던 전희원 매니저는 본사 사이언스PM과 본사 대만 엔지니어와 일주일에 한 번씩 전화회의를 하곤 했다. 그 당시 전희원 매니저의 업무는 스펠링 콜렉션으로 요즘 말하는 연관 검색어 개발을 했다. 그러면서 야후 내 위키(WIKI)에 올라온 신기한 코드를 발견했는데 그 코드가 바로 R 코드였다.
이후 넥스알로 이직 후 R을 접할 기회가 많아지면서 자연스럽게 R을 공부하고 R로 실제 프로젝트로 하면서 R과 떨어질 수 없는 현재의 상황으로 오게 됐다고 전희원 매너저는 회상했다.
R과 24시간을 보내고 있다는 전희원 매니저를 만나봤다.

R을 처음 접한 시기가 언제였나?
야후코리아에서 근무할 때 텍스트 전처리나 간단한 분석 작업을 파이썬(Python)과 엑셀 기반으로 했다. 그 당시 파이썬도 실제 서비스에 적용해야 하는지를 두고 논쟁이 있을 만큼 신기해하는 분위기였다.

그 당시 야후 내 위키(WIKI)에서 본사 엔지니어 R 코드와 함께 시각화 결과를 봤을 때 흥미로웠던 것을 기억한다. 엑셀에서 비슷한 분석한 경험을 가지고 있는데 꽤 짧은 코드로 다양한 분석 결과를 내는 것을 보고 상당히 감명을 받았다. 이후에 알았지만 국내에서만 생소했을 뿐 그 당시 R은 미국에서 보편화된 분석 언어로 사용되고 있었다.

야후에 근무할 때 개발 업무가 70%, 데이터 분석 업무가 30%였다. 그 당시 데이터 분석을 별도 업무를 할 수 있을까라는 의구심을 가지고 있었지만 본사 데이터 분석가들과 같이 협업을 하면서 많은 것을 배웠다. 그 이후 분석 업무에 대한 매력을 느꼈고 결국 넥스알로 이직을 하면서 데이터 분석가로 자연스럽게 업무 전환을 하게 됐다.

이후 오픈소스로 분석을 해야 하는 만큼 데이터가 커 엑셀로는 분석 업무를 할 수 없었다. 이에 하둡과 잘 결합되는 R를 활용해 프로젝트를 진행했다. 그 당시 24시간을 R과 같이 보냈을 정도로 심취해 있었다.

또한 twitteR 패키지를 처음 접하고 한글 분석 패키지가 있으면 편리하겠다는 생각을 해 일주일 만에 KoNLP 패키지를 만들기도 했다. 그 당시에는 버그가 있었으나 현재 안정화 되어 많은 사용자들이 이 패키지로 다양한 작업을 하고 있는 것으로 알고 있다.

재미있는 건 twitteR과 KoNLP를 이용한 워드 클라우드 예제에서 예전엔 KoNLP 오류나 사용방법에 대한 질문이 많았다면 최근엔 twitteR에 대한 질문이 더 많아졌다는 것이다.

실제 R을 활용하고 있는가?
회사에서 데이터 전처리, 데이터 시각화, 예측 모델링, 문서화 등 회사 업무 대부분을 R을 이용해 하고 있으며 개인적으로는 논문작성, 리포트, 서적집필, 블로깅까지 R을 사용해 하고 있다. 그만큼 편리하다.

R의 경우 문서 작성에 최적화되어 있어 개인적으로 준비 중인 논문도 R을 활용해서 작성하고 있다. 종이 논문과 달리 다른 사람 문서 파일을 가져와 실행해 같은 결과를 낼 수 있게 해주는 리프로듀스 리서치(Reproducible Research)를 활용하는 만큼 연구에 많은 도움이 된다. 실제 리프로듀스 리서치, 시각화, 통계가 R의 큰 축이라고 할 수 있는 만큼 통계뿐만 아니라 논문에서도 R의 활용 가치가 높다.

얼마 전에 출간했던 책도 개인적으로 정리를 하던 PDF 전자책을 좀 더 보강한 것으로 이 PDF는 R을 기반 knitr 패키지를 사용해 집필했다. 많은 이미지가 들어가는 책인 만큼 그래프 퀄리티도 중요해 이 부분은 R의 덕을 많이 봤다. R을 설명한 책을 R로 만들었다는 점에서 큰 의미를 두고 있다.

그밖에 큰 데이터를 처리할 경우에는 R콘솔에서 하둡(Hadoop) 환경에 연결하여 사용하고 있으며 하둡 이외의 NoSQL이나 DBMS 환경과의 연결도 용이한 측면이 있어 다양한 데이터 플랫폼에 연결하는 허브의 역할도 R로 하고 있다.

최근 R이 SAS나 SPSS 등 통계 프로그램보다 더 주목을 받고 있다.
R은 데이터 분석을 위한 특화된 언어로 데이터 분석에 대한 최근 세간의 관심과 요구사항이 합쳐서 주목받는 것이라 본다. 게다가 분석의 큰 축인 시각화에 탁월할 뿐만 아니라 오픈소스다보니 다른 오픈소스 환경과 통합이 용이한 측면이 크다.

이를 한 단어로 표현하자면 ‘자유로움’이라고 할 수 있다. 반대로 SAS나 SPSS는 ‘편리함’을 갖추고 있다.

물론 R이 가지고 있는 자유로움 이면에는 R의 동작방식까지 이해할 수 있는 러닝커브가 존재한다. 반대로 SAS나 SPSS는 편리하지만 유연성이 떨어진다는 단점이 있다고 정리할 수 있다.

그런 점에서 R이 SAS, SPSS를 대체할 수 있느냐는 논란에 대해 개인적으로 충분히 대체할 수 있다는 생각이다. 하지만 SAS나 SPSS를 요구하는 시장은 분명 존재하는 만큼 각기 영역을 구축하고 있으며, 앞으로도 그럴 것이라고 생각한다.

요컨대 R이 가진 자유로움을 굳이 적용할 필요 없는 업무, 즉 일반적인 통계분석으로만 활용하는 업무의 경우 굳이 R을 활용할 필요는 없다. R을 활용할 경우 인터넷에 나오지 않는 실행착오와 최적화 방법 등을 본인이 해결해야하는 만큼 시간과 비용을 굳이 감수할 필요가 없는 것이다.

대신 SAS나 SPSS는 이런 실행착오나 기술지원에서는 편리할 수 있을지 모르지만 자유로운 분석에서는 한계가 존재하는 만큼 상황과 업무에 따라 적용하면 된다.

 
최근 데이터 사이언티스트도 화두로 떠오르고 있다.
데이터 사이언티스트에 대한 정의에 대해 말이 많은 것 같다. 개인적으로 일반적인 개발자들보다는 통계에 대해서 잘 알고 있고, 일반적인 통계학자들보다는 소프트웨어 개발에 대해서 익숙한 사람이 데이터 사이언티스트라 생각한다. 사실 이 정의는 인터넷에 누군가가 써놓았던 정의인데, 지금까지 들어왔던 수많은 정의들 중에서 가장 마음에 와 닿는 말이다.

데이터 전처리가 개발자의 영역이라면 분석은 통계학자들의 영역이다. 이 두 영역을 자유롭게 왕복 할 줄 알아야 한다.

또한 분석 업무를 시작하기 전에 가설을 설정할 때만큼은 데이터에 대한 이해를 할 수 있는 현업 전문 지식도 필요하다. 중요한 정보의 속성을 선별해 분석하지 못한다면 모든 데이터에 대해 가설을 설정하고 분석하는 과정을 수없이 반복해야 한다. 즉, 현업 전문 지식은 시간을 단축할 수 있는 열쇠라고 할 수 있다.

그러나 두 영역을 섭렵해 자유롭게 왕복할 수 있는 사람은 많지 않다. 이는 개발과 통계가 가치관이 다르기 때문에 생기는 문제다. 개발자들이 정확한 값을 가치를 매기는 한편, 통계는 분산의 학문이라고 부를 만큼 확연한 차이를 보인다. 이 같은 모습은 개발자 업무 패턴과 데이터 분석 업무 패턴을 비교해보면 극명해진다.

개인적으로 이 같은 사람을 데이터 사이언티스트라고 부르는 것보다 데이터 분석가라고 불렸으면 한다. 현재 데이터 사이언티스트와 데이터 분석가의 차이점이라고 한다면 큰 데이터를 다루는 것에 따라 구별을 하고 있다. 그러나 데이터 분석가들이 다루는 데이터 또한 커지고 있는 만큼 이런 차이는 사라지게 될 것이다.

R을 잘 활용하기 위한 방법이라고 한다면.
R을 사용한다는 건 데이터를 분석을 한다는 것과 동일한 의미를 가진다. 데이터 분석을 위해서는 툴에 대한 이해도 필요하고 동시에 데이터의 언어인 통계에 대한 이해가 필수다. 통계는 자신의 가설이 일반화가 가능한지 평가를 할 수 있는 도구이다.

R은 상당한 러닝커브를 가진 언어 중에 하나이다. 따라서 잘 쓰기 위해서는 어느 정도의 시간 투자가 반드시 필요하다. 다행히 최근 많은 국내 서적이 출시되어 많은 이들이 언어를 배우기가 예전보다는 쉬워졌는데 환영할 만한 상황임에는 분명하다.

기본서적을 통해 어느 정도 문법을 익힌 이후에는 직접 데이터 분석 주제를 잡아서 분석업무를 R을 기반으로 해보길 권유한다. 그래프도 직접 그려보고 데이터 전처리도 직접해보면 왜 R이 데이터 분석 언어인지 피부로 느끼게 된다.

이 과정에서 SAS나 SPSS, 그리고 엑셀로 쓰면 되지 왜 고생을 하지라는 고민을 한다. 이 고비만 넘긴다면 엑셀보다 편해지는 시점이 오고 초보에서 중반 정도 넘어가는 수준으로 도약하게 된다.

이후엔 다른 사람들의 분석 코드라든지 패키지 코드를 보면서 최적화된 코드를 많이 보는 게 큰 도움이 되며 이 과정을 거치게 되면 R이 어떤 방식으로 동작하게 되는지 알게 된다.

실제 다른 언어에서 데이터 분석은 전처리와 시각화 하는 패턴이 있다. 그 패턴을 매번 가져가기 위해 포문이나 언어로 구현해서 전처리를 하다보면 이게 분석 작업인지 코딩 작업인지 분간이 안 될 때가 있다. 반면 R은 그 패턴을 정형화해서 프레임워크나 평션을 활용할 수 있게 특정 패키지와 함수로 전처리를 쓸 수 있다. 즉 R은 수십 라인 코드로 만든 일반적인 프로그래밍 부분을 한 라인의 코드로 만들 수 있는 만큼 편리함은 물론이고 정확하게 동작할 수 있게 해주는 등 효율적이라고 할 수 있다.

이 때쯤이라면 R로 모든 것을 하려고 하는 중독 현상이 일어난다. 한 외국 사람이 흡사 담배를 배우는 과정과 닮아 있다고 표현하는 것에 매우 공감했다. 담배를 처음 접할 때는 기침도 나고 목도 아프지만 어느 정도 익숙해지면 중독되는 것과 같이 R 역시 초반에 다른 언어에 비해서 배워야하는 부분이 많고 높지만 어느 정도 익숙해지면 모든 작업을 R을 기반으로 하는 중독이 일어난다. 이후 R로 모든 것을 하려고 한다. 그러나 모든 영역에 R을 적용할 수 없다. R의 통계에 특화된 언어로 언어적인 성능은 다른 언어에 비해서 낮다. 만약 R로 모든 영역을 적용하려고 한다면 굉장히 느린 프로세싱 결과를 얻게 되는 것이다. 이는 중독에 대한 부작용이다.

이런 부작용을 벗어나기 위해 최적화 방법론을 찾게 된다. R을 C++과 결합한다든지 느린 부분은 빠른 패키지로 대체하는 식으로 진행하다 보면 빠른 프로세스로 복귀를 하게 되는 것이다. 이 정도면 데이터 분석가라고 불리기엔 충분할 것이다.

마지막으로 통계학에 대한 학사 정도의 지식이 필요하다. R의 매뉴얼 페이지나 심지어 함수의 파라미터 명까지도 통계학에서 따온 용어를 쓰고 있는 만큼 기본 개념을 이해하지 않고서는 R을 제대로 쓴다고 할 수 없을 것이다.

관련기사

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지