R) R을 R려줘!

R) R을 R려줘!

R아보자

데이터 분석을 한다. 라고 하면 RPython 중에서 많은 고민을 한다.
간단하게 말해서 통계시각화에 집중을 한다면 R을, 딥러닝업무자동화에 집중하고 싶다면 Python을 선택하는 것이 좋다.

보다 자세한 내용은 별도의 포스팅을 통해서 알려드릴 예정이다.

R은 제법 오래된 언어이다. (난 전혀 몰랐는뒈~~ 에베베 이런 닝겐은 뒤로가기 버튼을 누르자.) S 언어에서 시작된 R이지만, R은 2000년 2월에 정식버전(1.0)이 출시되어 정식버전 기준으로만 해도 20년이 넘은 언어이다.




왜 R이 아니었나?

보통 새로운 수요(needs)는 기존 환경의 불만에서 나온다. 이전에 시장을 주름잡던 각종 통계 프로그램(SAS, SPSS, Stata, Minitab 등)은 GUI(Grapic User Interface) 환경 구성으로 마우스로 버튼을 클릭하여 비교적 쉽게 데이터 분석(주로 통계)를 할 수 있었다.

SAS Enterprise Minor 화면

하지만 시대의 흐름에 따라 사용자는 점점 더 많은 것을 원하게 되었다. 이러한 수요가 빠르게 개선이 되지 않는 경우 사용자는 불편함을 느끼게 되고 결국 불만을 표출하기도 한다. 보통 (상용)데이터 분석 솔루션에는 대표적으로 다음과 같은 문제가 있다.

  • 라이선스비용
  • 오픈소스의 신뢰성
  • 대용량 데이터 처리의 어려움(SAS는 이 부분에서 나름 자유로운 편)
  • 데이터 수집 기능 부재
  • 제한적인 프로세스 자동화
  • 최신 알고리즘 업데이트 문제
  • 확장 가능성

최초에 R과 같은 오픈소스(정확하게는 GNU, 자유소프트웨어)의 특징이자 강점은 별도의 라이선스 비용이 발생하지 않는다(그렇다고 저작권이 없는 것은 아님)는 것이다. 같은 결과를 도출 할 수 있으면서도 비용면에서 큰 이득을 볼 수 있다면 충분히 고려할 만한 사항이 아닐까?

한국의 경우 미국에 비해 R을 도입하는 속도가 느렸는데, 업계와 학계를 나눠서 볼 수 있다.

기업쪽에서 도입이 느렸던 대표적인 이유는 오픈소스는 검증되지 않은 것이라며 불신하는 분위기 였다. 보통 상용 프로그램은 비용을 지불하는 대신 편리한 사용성, 결과의 신뢰성과 안정성, 유지보수를 지원받는다. 하지만 R의 경우는 비용이 발생하지 않는 것이어서 기존 상용 소프트웨어 사용자 측면에서는 이런 불신이 충분히 이해가 간다. 그래도 비용적 측면에서 결코 무시할 수 없기에 여러 기업에서 R을 도입하려고 하였고 이런 과도기에 관련하여 제법 많은 갑질이 있었다. 대표적으로 상용 소프트웨어(보통 SAS, SPSS)와 R의 연산 결과를 비교하여 보고하는 업무였다. 프로젝트 마무리 단계에서 갑자기 R의 연산 결과가 의심스럽다면서 이런 업무를 지시하였고, 관련 SI업체와 컨설팅 회사들은 다음 계약을 위해서 클라이언트가 요구하는 계약서에도 없는 일을 해야 했다.

비슷한 사례의 갑질을 소개하겠다. 2019년에 공공 프로젝트에 참여하는 모 컨설팅 업체에서 갑자기 필자에게 연락이 왔다. 클라이언트가 기존에 개발된 SPSS Modeler로 개발된 내용을 전부 R로 바꿔달라는 요청을 갑작스럽게 했는데 회사에 R 전문가가 없어서 어쩌지를 못한다는 것이었다. 필자의 입장에서는 좋긴 하지만 컨설팅 업체 입장에서는 수 백만원의 비용과 시간이 발생하는 안타까운 사건이었다.

SPSS Modeler 화면

학계의 경우는 교수님 때문에 늦어지는 경우가 많다. 이게 무슨 뜻이냐면, 대학원생이 논문을 쓰는데 교수가 모르는 도구를 사용하게 되면 논문 지도가 어려워진다. 여러 과목과 최신 학술 논문을 이해하기도 바쁜 대학원생은 새로운 도구를 쓰기가 어렵고, 결국 기존의 도구로 회귀하게 된다. 그래도 새로운 도구를 사용하면서 개인의 성장과 학술적 성취를 잡고자 하는 사람들이 많다. 물론 갑작스레 여건이 안되어서 필자에게 문의를 개인 레슨 문의를 하는 경우도 왕왕 있다.

통계프로그램으로 유명한 SAS(굉장히 비싼 것으로도 유명)는 대용량 데이터도 척척 처리하여 금융/의료 쪽에서도 아직 많이 쓰는 솔루션이다. 사실 해당 업계는 돈이 많은 곳이기도 하거니와 기존 환경을 뒤엎기는 어렵기에 많은 라이선스 비용이 발생해도 그냥 쓰는 경우가 많다. 물론 부담이 되는 쪽은 회사의 시스템을 모두 오픈소스로 바꿔버리는 컨설팅을 받기도 한다. 아무래도 소프트웨어 라이선스로 발생하는 고정비용을 줄일 수 있다면 그 것도 꽤 좋은 선택이 될 수 있다.

다시 대용량 처리 등 성능얘기를 하자면, 대부분의 통계 프로그램은 1GB 텍스트 파일이면 그냥 정신을 못차린다고 보면 된다. 2012년 부터 빅데이터가 슬금슬금 나오기 시작했고 2012년 12월에 미래창조과학부에서 빅데이터를 주제로 대통령 보고가 이미 끝났는데, 겨우 1GB로 허덕이는 소프트웨어라니 참 아이러니한 상황이 아닐 수 없다. 그래서 사용에 제한이 많은 상용 프로그램 보다는 확장성과 성능면에서 유리한 오픈소스를 적극 도입하여 조직의 퍼포먼스를 향상시키고자 하는 조직이 점점 많아졌다.




왜 R인가?

설치가 간편해서 너무 좋다. 필자가 C, JAVA, Python 등 개발언어를 접해봤지만 초기 세팅이 R만큼 편한 것은 아직 본적이 없다. (HTML 이런건 예외로 합시다.) 그냥 R, RStudio 정도 설치하면 바로 뭔가 시작할 수 있으니 얼마나 편한가?

기존에 GUI환경에서 마우스 또각또각 누르는 것으로 회귀분석 하고 그래프 그리고 하던 사람들은 코드를 작성하는 것이 참 어렵게 느껴질 수 있다. 하지만 노력의 결실은 달콤한 법. 데이터 수집, 자동 보고서 작성, 이메일 전송, 메신저 연동 등 데이터 분석 이외에도 다양한 작업이 가능해지는 순간 굉장한 기쁨을 맛보게 될 것이다.

R은 고급 통계 분석을 지원하는 것도 큰 이점이지만, 무엇보다 데이터 시각화(가시화, visualization)에서 타 언어 및 프로그램 대비 강력하다고 할 수 있다.

google에서 검색한 ggplot2 이미지

위 그림은 유명한 시각화 패키지(package)인 ggplot2를 google에서 검색한 결과이다. 직접 검색해보면 굉장히 이쁜 작품(내가 그릴 수 없을 것 같긴 하지만)이 많다. 심지어 Python 사용자를 위한 Python에서 R의 ggplot2를 쓸 수 있도록 하는 패키지(정확하게는 라이브러리 또는 모듈)가 있을 정도.

패키지와 관련해서 포스팅을 하겠지만(포스팅 후 이 문장은 수정 및 링크 추가 예정) R은 전 세계 사람들이 기여를 하기 때문에 365일 24시간 쉴새없이 기능이 추가된다고 보면 된다. 이 기여는 보통 패키지라는 형태로 이루어지는데 예를 들어 어떤 이쁜 그래프를 그리는 기능이 있는 패키지 라던지, 최신 알고리즘을 구현한 패키지라던지 종류와 형태는 다양하다. 하지만 상용 프로그램의 경우 특정 기능이 추가되면 해당 기능이 무조건 정상 동작하고 그 결과를 신뢰할 수 있어야 하기 때문에 결과 검증을 많이 하게 되는데 제한된 인력 및 자원으로는 전 세계에서 개발되는 모든 알고리즘을 검증 및 반영하기가 현실적으로 어렵다.

이렇게 여러모로 R을 사용함에 있어 상용 프로그램 대비 얻을 수 있는 장점이 많기에 코드를 작성해야 하는 초반 진입 장벽을 이 글을 읽는 모든 독자가 넘었으면 한다.

# , ,
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×