박종희 서울대학교 정치외교학부 외교학 전공 교수

 
[컴퓨터월드] 최근 통계 프로그래밍 언어 ‘R’이 주목을 받고 있다. IT 시장뿐만 아니라 전 산업군의 화두가 된 빅데이터를 고속으로 처리하기 위해서는 하둡(Hadoop)이 필요하지만 결과적으로 분석된 데이터를 정보로 활용되기 위해서는 시각화가 필요하다. 그런 점에서 R은 데이터 획득, 조작(munging), 모델링, 시각화 등 데이터 분석을 위한 요소들을 폭넓게 다뤄 필수적으로 사용해야 할 프로그램이라고 할 수 있다.
최근 몇 년 사이 국내에서 R에 대한 관심이 높아졌다. 소수가 사용하는 프로그래밍 언어에서 다수가 사용하는 프로그래밍 언어로 변화하고 있다고 하지만 국내에서 실제 사용된 시기가 짧은 만큼 아직 걸음마 수준이라고 할 수 있다. 그나마 국내 R 사용자 중 박종희 서울대 교수는 국내뿐만 아니라 해외까지 R 관련 커뮤니티에서 인지도 높은 인물로 알려져 있다. 박종희 교수를 직접 만나 R에 관한 이야기를 들어봤다.

박종희 교수는

서울대학교 정치외교학부 외교학 전공 부교수로서 서강대학교 정치외교학과 학사, 서울대학교 외교학석사, 미국 워싱턴대학교(Washington University in St. Louis) 정치학박사 등 과정을 거쳤다.

경력
• 2007 – 2012 : 시카고 대학 정치학과 조교수
Assistant Professor, Department of Political Science, University of Chicago
• 2008 - 2012 : 미시간 대학교 여름 ICPSR 사회조사 방법론 강사
Instructor, Summer Program in Quantitative Methods of Social Research,
ICPSR, University of Michigan, Ann Arbor
• 2012 - 현재 : 서울대학교 정치외교학부 외교학전공 부교수


현재 서울대학교 정치외교학부 외교학전공 부교수로 재직 중에 있는 박종희 교수를 만나기 위해 서울대학교 교정을 찾았다. 봄볕 따뜻한 금요일 오후 찾아간 서울대 교정은 한가로웠다. 학생들은 끼리끼리 벤치에 앉아 이야기꽃을 피우기도 하고 잔디밭에 앉아 햇볕을 쬐는 등 영락없는 봄날 대학교 풍경이었다.

박종희 교수를 만나기 위해 사회과학대학을 찾았다. 박 교수는 막 수업을 끝내고 난 후였다. 인터뷰를 위해 방문한 기자를 반갑게 맞이한 그는 잠시 숨을 고른 뒤 R에 관한 이야기를 꺼냈다.

박종희 교수가 R에 입문하게 된 계기는 2003년으로 돌아간다. 박 교수는 2002년 박사과정 차 미국에서 생활하면서 지인을 통해 통계 프로그램 중 하나인 ‘R’의 존재를 알았다고 했다.

박 교수는 “사화과학에서 자료 분석을 하는 사람이라고 하면 어떤 통계 소프트웨어를 이용할 것인가라는 부분에서 학과에 따라 유행하는 소프트웨어가 각각 있다. 사회복지학과의 경우 SAS가 대표적이며, 정치학은 SPSS 등이 대표적인 통계 소프트웨어라고 할 수 있다.”고 설명했다.

박 교수는 초보적인 수준이지만 각종 통계 소프트웨어를 두루 섭렵했다. 그러나 튜토리얼이나 메뉴얼을 보고 따라가는 수준이었기 때문에 큰 흥미를 느끼지 못했고 회상했다.

그 중 우연한 기회에 R이라는 통계 프로그램이 있다는 정보를 들었다고 박 교수는 설명했다.

박종희 교수는 ‘R’이 소프트웨어의 공개 개념을 표방하는 비제도권 단체인 자유 소프트웨어재단(free software foundation)의 종합적인 프로젝트인 GNU(Gnu’s Not UNIX) 이념 하에 적극적으로 개발되고 관리되고 보급되고 있다는 점에 흥미를 느꼈다고 했다.

이후 R을 직접 써보고 선생님을 통해 예제를 받아 가지고 노는 등 R에 대해 점점 파고들었다는 그에게서 R에 대한 여러 이야기를 일문일답 형태로 정리했다.

▲ 박종희 교수는‘개방성’이 R의 저력이자 오픈소스의 힘이라고 밝혔다.

R 사용자들 사이에 인지도가 높다.
2007년 MCMCpack 공동저자로 ‘Jong Hee Park’ 이름을 올렸기 때문이다.

MCMCpack은 마르코프 연쇄 몬테카를로(MCMC)를 통해 베이지안 추론을 수행할 수 있도록 설계된 소프트웨어 패키지로 공식적인 R 패키지인 만큼 R 사용자들이 자주 사용하는 만큼 노출이 됐던 것 같다.

R이 주목받는 이유는 무엇인가?
학과마다 다르지만 R을 주로 쓰는 학과가 정해져 있다. 가장 주도적으로 R을 사용하는 학과는 통계학이며, 정치학과는 자료분석을 전문으로 하기 때문에 R을 전문적으로 사용하기 시작했다. 경제학과는 가우스 같은 소프트웨어를 많이 사용한다. 정리를 하자면 이론과 연구보다는 실용적인 영역에서 R이 많이 쓰이고 있다고 할 수 있다.

R이 이만큼 주목받을 수밖에 없는 근본적인 계기를 찾자면 오픈소스로 정리할 수 있다.

오픈소스의 가장 큰 장점은 무료에 있기도 하겠지만 그보다 커뮤니티가 활성화됐다는 점이 R이 주목받는 가장 큰 이유일 것이다.

R 관련 사용자들은 ‘R-ihelp’와 같은 커뮤니티를 구성해 관련 정보와 경험 등을 공유하기 때문에 커뮤니티를 통해서 쉽게 자료를 찾기도 하고 배울 수 있다. 굳이 커뮤니티가 아니라도 하더라도 수많은 사용자를 둔 덕분에 인터넷 검색만으로 쉽게 정보를 얻을 수 있다.

불과 얼마 전까지만 하더라도 학생들에게 인터넷 상의 R 관련 정보를 공유하기도 했지만 이제는 너무 많은 정보 탓에 포기할 지경까지 이르렀다. 그만큼 손쉬운 접근이 가능하다는 점이 가장 큰 장점이다.

또 다른 장점은 사용자들이 자발적으로 패키지를 만들어 올린다는 점이다. 전문적인 통계학자들의 연구성과와 관련한 최근 통계 모형을 만들어 올리기 때문에 상용소프트웨어를 능가할만한 패키지를 활용할 수 있다. 또한 이런 패키지는 컴퓨터프로그래머와 통계학과 등 전문성을 지닌 R 코어팀에 의해 검증되고 있다는 점도 장점이다.

또한 다른 소프트웨어어 달리 시각화 부분에서 강점을 가지고 있다는 점도 장점으로 손꼽을 수 있다.

미국과 달리 우리나라는 이제야 ‘R’이 언급되는 것 같다.
미국으로 박사과정을 밟던 2003년 당시 R을 처음 접했다. 그 당시 미국 내에서는 ‘R’은 이미 활성화되어 있는 통계 프로그래밍 언어였다. 또한 최근 미국 기업들 중 많은 기업이 R로 업무와 관련된 기본 소프트웨어를 바꾸고 있다. 제약회사인 화이자와 구글이 대표적인 사례라 할 수 있다. 또한 R 미러 서버 역시 미국 내 많이 존재하며 R 관련 패키지가 넘쳐난다는 점에서 이미 기본 프로그램 중 하나로 자리 잡았다 할 수 있다.

반대로 국내는 아직 광범위하게 확산됐다고 볼 수는 없다. R과 관련한 서적도 2~3년 전부터 나오기 시작했으며, 한글화도 완벽하지는 않다. 또한 패키지가 많지 않다는 점도 그렇다. 특히 국내 R 미러 서버는 단 2대 밖에 운영되지 않는다는 점이 국내 R의 위상을 말해주는 단적인 예라고 할 수 있다.

R을 어떻게 활용하고 있는가?
주로 자료 분석에 사용하고 있다. 자료 분석은 손으로 기입하는 것이 아니라 인터넷을 통해서 가져온다.

R은 효율적으로 크롤링이 가능하다. 한 사례로 대선여론조사 분석을 할 때 R을 이용하기도 했다. 여론 조사 분석은 일일이 손으로 기입할 수는 없다. 갤럽이 취합한 여론조사 기관이 있다는 점을 알고 사용하긴 했지만 알기 전에는 미국과 같은 API 등이 국내에 없기 때문에 속수무책일 수밖에 없었다. 이에 대안으로 네이버와 다음에 여론조사 결과를 모아 둔 웹페이지를 찾아 웹페이지에 담긴 데이터를 모으고 가공하며 분석을 할 수 있게 변형하고 데이터 확인하고 데이터 스토리지 등 일련의 작업을 R을 통해서 했다.

최근에는 R을 이용해 텍스트 분석과 네트워크 분석 등도 하고 있다. 베이지안 분석을 하다보면 다른 프로그램 언어와 연동이 가능하다. 예를 들어 C 언어 등으로 코드를 쓴 다음에 분석을 한 다음에 R과 연동시키는 등으로 많이 활용하고 있다.

‘R’을 잘 쓸 수 있는 방법에 대해 알려 달라.
매일매일 공부하는 방법 밖에 없겠지만 크게 3가지 정도 조언을 할까 한다.
“첫 번째, 포인트 클릭 유혹을 이겨내라.” 단추를 누르는 방식에서 탈피해 커멘트를 직접 입력하는 습관을 들이면 좋다.

“두 번째, 좋은 코드를 받아 가이드로 활용해라.” R 유저들을 통해 통해서 물어보고 이른 바에 이용자들의 신뢰도를 얻은 패키지가 있다. 이 패키지들은 가장 효율적은 문법을 가지고 있는 경우가 많다. 똑같은 연산이 수천가지 방법으로 접근이 가능하지만 가장 짧은 코드라도 해서 무조건 좋은 코드가 아니다. 압축적으로 쓸수록 디버깅이 힘들다. 이런 점에서 이용자들이 많이 찾는 패키지의 효율적인 문법을 알기 위해서는 분해한 후 조각조각 하나하나의 라인의 이미를 체득하는 것이 좋다.

“세 번째, 자기만의 패키지를 만들어라.” 가장 중요한 부분인 것 같다. 패키지 만드는 것은 어려운 일이 아니다. 어떤 데이터를 줬을 때 평균과 분산과 그림을 그리고 코드를 만들고 패키지를 만들어서 돌리게 될 때 R의 진정한 강점을 알게 된다. 자기만의 코드를 효율적으로 만들기 위해 자신만의 패키지를 만드는 과정이 필요하다.

R을 통해서 오픈소스의 중요성을 이제야 깨닫게 됐다.

그동안 주먹구구식으로 곁눈질과 시쳇말로 눈팅을 해 혼자 습득하는 과정을 거쳤다. 프로그래밍을 체계적으로 배우다보니 부족한 점을 많이 느끼게 됐다. 내가 필요한 부분을 집중한 만큼 필요하지 않는 부분은 소홀하게 돼 균형이 맞지 않는다.

그럼에도 불구하고 물어볼 사람이 없을 때는 독학을 해야 하고 잘 만들어진 패키지는 어떻게 만들어졌는지 구경도 해야 한다. 이런 점에서 오픈소스인 R은 커뮤니티를 통해서 정보를 제공하고 패키지를 낱낱이 살펴볼 수 있게 소스가 공개되어 있어 실력 향상에 큰 도움이 된다. 실제 MCMCpack 패키지에 대해 구글 프로그래머가 피드백을 주기도 했다. 코드를 빠르게 돌릴 수 있는 방법을 이메일을 통해서 알려온 것이다.

사용자를 ‘컨슈머’에서 ‘프로듀서’로 만들어 줄 수 있는 것이 오픈소스의 힘이고 R이 가진 저력이라 할 수 있다.

관련기사

저작권자 © 아이티데일리 무단전재 및 재배포 금지