shiny를 통한 R 웹 프로그래밍

R을 가지고 웹 프로그래밍은 하는 방법은 이전부터 많이 시도되어 왔다. shiny 이전까지는 Rook이라는 프레임웍이 있었고, 나름 웹 프로그래밍 다운 코딩을 할 수 있는 환경을 가져다 주었지만 사실 R을 전적으로 웹 프로그래밍을 하는데 쓰기 보다는 플로팅한 결과를 효과적으로 보여주기 위한 목적이 많았는데, 그 목적에는 잘 부합하지 않았다. 한마디로 R로 모든 웹 프로그래밍을 하길 원하기 보다는 시각화나 데이터를 웹으로 보여주는 용도를 더 필요로 했던 것이다.

이런 상황에서 RStudio에서 대단한 패키지 하나를 베타 공개했다. 바로 shiny이다.

흡사 닷넷으로 웹 애플리케이션 코딩을 하는 것과 유사하게 시각화 재료들을 컴포넌트화 했고, 웹 소켓을 이용해서 굉장히 빠른 속도로 시각화 객체들을 디스플레이 해주는 장점을 가진 웹 애플리케이션 패키지이다.  가장 간단한 것들을 심지어 HTML이나 자바 스크립트를 몰라도 코딩이 가능할 정도이다.

이 패키지를 보고 가장 먼저 생각한것은 통계 교육쪽에서의 활용이었고, 그 다음은 웹 기반으로 한 인터렉티브 시각화 애플리케이션 개발이었다.

아직까지는 베타이고 이를 활용한 완전한 웹 애플리케이션 개발은 어렵겠지만, 시작점 치고는 상당히 대단한 패키지가 아닐 수 없다.

아래는 유가가 기록되기 시작한 때부터 2012.11.09일 까지 주유소 각 유종을  리터별 단가의 평균값을 가지고 필자가 만들어본 예제 코드이다.  데이터 출처는 Opinet이다. 오피넷에서 API를 공개한다면 정말 하나의 완전한 애플리케이션으로 발전 가능한데, 불행히도 데이터를 가져오는 인터페이스가 매우 불편해 현재까지의 전체 레코드만을 가져왔다.

 

위 코드의 실행 애플리케이션은 필자의 가정용 서버에 올려두어서 아래 링크에서 사용 가능하다.

유가 시계열 그래프 Shiny 예제

데몬이나 서비스로 올려두지 않아서 둘째가 서버 전원버튼을 눌러버리면 볼 수 없는 링크니 나오지 않더라도 이해해 주길 바란다. 

아직 한글 윈도우에서는 실행에 오류가 있는데, 리눅스 머신이나 맥을 사용하고 있다면 shiny를 설치하고 아래 명령으로 실행하면 본인의 머신에서 아래 한줄로 코드 실행이 가능하다.

패키지에서 한글을 사용하는데 몇몇 버그가 있지만 앞으로 고쳐질 거라 생각한다. 

 

runGist(“4054309”)

 

개인적으로 이 패키지를 보면서 R을 상용화 하는데, RA(REvolution Analytics)보다는 RStudio가  더 성공을 하지 않을까 하는 생각이 들었다.

CC BY-NC 4.0 shiny를 통한 R 웹 프로그래밍 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.