iBetter Books
수정

다음 단계

이 교재에서 배운 것으로 실무용 Shiny 앱을 만들고 배포할 수 있습니다. 더 나아가고 싶다면 다음 주제들이 기다리고 있습니다.

golem — 프로덕션 Shiny 프레임워크

golem은 Shiny 앱을 R 패키지로 개발하는 프레임워크입니다. ThinkR이 만들었고, 대규모 팀 프로젝트에서 표준처럼 쓰입니다.

install.packages("golem")

# 새 golem 프로젝트 생성
golem::create_golem("myapp")

golem이 제공하는 것들입니다.

  • 표준화된 프로젝트 구조 (R/, inst/, dev/)
  • 모듈 스캐폴딩 (add_module("filter"))
  • R CMD CHECK 통과를 위한 문서화 자동화
  • 배포 헬퍼 (add_dockerfile(), add_shinyappsio_file())

앱이 수천 줄을 넘어서고, 여러 명이 협업하는 시점부터 golem 도입을 고려하세요.

rhino — 또 다른 프로덕션 프레임워크

Appsilon이 만든 rhino도 인기 있는 선택지입니다. box 패키지 기반 모듈 시스템, lintr + styler 코드 품질 관리, cypress E2E 테스트를 기본으로 제공합니다.

install.packages("rhino")
rhino::init("myrhino-app")

golem이 R 패키지 관례를 따른다면, rhino는 현대 웹 개발 관례에 가깝습니다. 팀 배경에 따라 선택하면 됩니다.

Shiny for Python

2022년 Posit이 Python용 Shiny를 공개했습니다. R Shiny와 거의 같은 개념으로 Python pandas, matplotlib, plotly 앱을 만들 수 있습니다.

pip install shiny
from shiny import App, render, uiapp_ui = ui.page_fluid(    ui.input_slider("n", "N", 0, 100, 20),    ui.output_text_verbatim("txt"))def server(input, output, session):    @render.text    def txt():        return f"n*2 = {input.n() * 2}"app = App(app_ui, server)

R에 익숙한 분이라면 Shiny for Python을 배우는 데 하루면 충분합니다. Python 생태계(FastAPI, pandas, scikit-learn)와 연결하고 싶을 때 유용합니다.

추천 학습 자료

Hadley Wickham의 "Mastering Shiny"는 Shiny 학습의 정석입니다. 온라인에서 무료로 읽을 수 있습니다.

갤러리와 커뮤니티

Shiny 갤러리에는 실제 코드가 포함된 예제 앱이 수십 개 있습니다. "이런 것도 되는구나" 싶은 아이디어를 얻기 좋습니다.

앞으로 만들어볼 것들

배운 것에서 멈추지 않는 가장 좋은 방법은 실제 프로젝트를 만드는 것입니다. 아이디어를 몇 가지 드립니다.

  • 공공 데이터포털(data.go.kr)의 CSV를 내려받아 탐색 대시보드 만들기
  • 개인 가계부 데이터를 분석하는 앱 만들기
  • 학교나 회사 내부 보고용 자동화 리포트 앱 만들기
  • Kaggle 데이터셋에 모델을 적용하고 예측 결과를 시각화하는 앱 만들기

만든 앱을 shinyapps.io에 올리고 링크를 공유하는 것으로 포트폴리오가 됩니다. R과 Shiny로 무엇을 만들 수 있는지 보여주는 가장 설득력 있는 증거는 실제로 동작하는 앱입니다.

이 교재를 끝까지 읽어주신 것, 감사합니다. 다음에는 더 멋진 앱으로 만나길 바랍니다.