정우준 R-ihelp 대표

[전문가 기고]

R - 진실 혹은 대담(Truth or Dare)


정우준 R-ihelp 대표


▲ 정우준 R-ihelp 대표
 
 
[컴퓨터월드]  다음의 그래프들과 이미지들을 살펴보자.

 
 
    

왼쪽은 R의 성장과 관련된 자료들이고, 오른쪽은 국내에서 개설된 R 교육 과정들 중 일부이다.
한쪽에서는 R이 데이터 분석을 하기 위한 주요한 언어로 일컬어지며 심지어 가장 높은 보수를 받을 수 있도록 하는 기술이라고 얘기한다. 이러한 ‘소문’은 “당신은 R을 사용할 수 있는가?” 아니면 “R을 할 줄 아는 것이 당신에게 도움이 된다”라는 주장의 근거가 되도록 한다. 하지만 과연 이 글을 읽는 독자 중 얼마나 그 실체를 경험하고 그러한 소문들에 공감할 것인가에 대해 필자는 그다지 희망적이지 않다.

R은 프로그램도 아니고 SAS와 SPSS 같이 일종의 패키지로 불리기에도 적당하지 않다. R은 ‘언어(language) 또는 환경(environment)’이다. 이들 용어는 전자/컴퓨터 관련 전공에서 제대로 된 해석이 가능한 것이어서 여기서는 일단 통계적 컴퓨팅 환경에서 상당한 자율성을 가질 수 있다는 점만 고려하도록 한다.

 
        

R은 특수 목적용으로 개발되었기에 Python과 같은 범용성 언어가 가지는 장점이 충분하지 않다. 예를 들어, R은 분석의 정확성을 획득하기 위해 처리 속도를 일부 희생하였다. 처리 프로세스 내부에 데이터 검증 과정이 여러 단계에 걸쳐 수행되기 때문이다.

이러한 R의 성격은 R에 대한 비판적 시각을 형성하기에 충분하다. R에 대한 최근의 국내 관심은 IT 개발자들이 주도하였다. 이른바 ‘빅데이터 / 빅데이터 분석’의 붐(boom)에 따른 파생적 수요였던 것이다.1) 필자의 판단으로는 그들이 바라보는 R은 하나의 라이브러리(library) 정도였고 이 라이브러리를 사용하면 ‘빅데이터 분석’이 가능하다는 식의 생각을 가지고 있었던 것이다. 하지만 약간의 학습으로도 R이 하나의 독립된 언어라는 사실은 쉽게 알 수 있으므로 그들에게 새로운 언어 하나를 다시 공부해야한다는 것, 게다가 분석이라는 과업이 익숙하지 않은 이들에게는 부담으로 다가올 수밖에 없었을 것이다.

이러한 점은 개발자가 아닌, 그러니까 사회과학도들에게는 더 큰 부담이 된다. 현재 대학에서 사용되고 있는 많은 분석 도구들은 편의성 때문에 대부분 훌륭한 GUI(Graphic User Interface)를 제공하고 있는데 이 GUI 기반의 분석 도구에 익숙한 이들에게 프로그래밍 언어는 매우 생소하기 때문이다. 결론은 “아마도 R은 아무짝에도 쓸모없는 것이 될 수도 있다”는 것이다.

그러나 과연 R은 아무짝에도 쓸모없게 되는 것이 맞는가? 필자의 대답은 “Absolutely, R is valuable"이다. R에는 사용자가 쉽게 사용할 수 있도록 다양한 ‘통계적’ 분석 알고리즘들과 다양한 애플리케이션들이 구현되어 있다. 이것들은 패키지(package)라 불리는 형태로 존재하며 33개 연구주제(task view)로 분류되어 관리되고 있다.2)

어떤 언어가 분석과 관련하여 이렇게 다양하고 넓은 범위의 주제를 유지관리하며 개발되고 있는가? 또한 R은 그 성능을 개선시키고 있지 않은가?

R에 대한 비판은 오히려 우리의 몫이다.3) 스스로가 생각하기에 R이 대단하고 무엇이든지 해결할 수 있을 거란 기대를 해보지는 않았는지 반문해 보길 권유한다. 또한 여러분은 자신이 하는 업무에서 하나의 언어/도구만으로 모든 것을 해결하고 있었는지, 아니 그전에 여러분은 One Kill Solution이 존재한다고 스스로 믿고 있었는지 자문해 보길 권유한다. 아마도 모든 질문에 대부분이 부정적인 답을 할 거라 짐작한다.

한편, 흔히 R과 SAS 및 SPSS, R과 Python을 대응시켜 비교한다. 이런 비교 구도는 주로 어떤 용도로 사용되어 왔는가? 대부분이 하나에 비해 다른 하나의 우월성을 주장하고자 하는 목적으로 사용되어 왔다. 과연 적절한가? 본래 비교는 각 비교대상의 장단점을 잘 파악하고자 하는 목적으로 이루어지는 것이다. 그러면 비교 이후의 적절한 행동은 무엇인가? 이것 또한 우리는 이미 알고 있다. 그것은 바로 “서로 보완하여 장점을 확대하고 단점을 보완하는 것”이다. 이러한 명확한 대안은 우리가 아주 어렸을 때부터 배우고 익혀왔다. 우리에게 필요한 자세는 “나의 목적에 맞는 적절한 도구를 얼마나 잘 취사선택할 것인가?”인 것이다.
 
R과 SAS가 시장을 분할하는 것으로 보는 것이 아니라 이 둘을 잘 결합하여 내게 주어진 과업을 훌륭히 해결할 수 있으면 그걸로 좋다. R과 Python이 대체적인 언어가 아니라 필요할 때 호출하여 사용하면 될 것이다. 개인적 견해로는 각각이 독립적으로 그 장점을 극대화시키는 방향으로 발전되는 것이 오히려 좋다. 왜냐하면 만약 One Kill Solution이 존재한다면, 우리는 더 이상 연구할 필요가 없어지고 이는 오히려 지식의 퇴보이기 때문이다. 게다가 비교 대상이 된다는 것은 그 자체가 어느 정도 대등한 수준이라는 것을 반증하는 것이다. 따라서 필자가 마지막으로 독자들에게 할 수 있는 최선의 조언은 아마도 이것이 아닐까 한다.  "Once use R!, Might be useR!"
 
1) 필자가 발표자였던 2011년과 2013년의 R User Conference에서도 사회과학자들보다 개발자들의 참여가 절대 다수였으며 그 흔치 않은 사회과학도에게도 컴퓨팅에 관심이 있는지, 주로 사용하는 연구방법론은 무엇인지 그리고 최소한 SAS 등의 사용경험이 있는지를 물어보고 R 사용을 만류하기도 한 적이 있기도 하다.
 2) 이들 연구주제 중 개인적으로 보다 높은 관심을 두고 있는 분야는 Bayesian, Probability Distributions, High Performance Computing, Machine Learning, Reproducible Research 등이고 최근에 Web Technologies를 기웃거리고 있다. 특히 Bayesian은 서울대학교 정치외교학과의 박종희 교수가 유지관리자(maintainer)이기도 하여 한 번도 대면한 적은 없지만 애착이 가기도 한다.
 3) 그렇다고 반성할 필요까지는 없는 그런 몫이다

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