대시보드 실행

개요

Python용 Shiny 대화형 문서를 실행하는 방법은 여러 가지가 있습니다.

  1. VS Code 또는 Positron에서 Quarto: Preview 명령 사용
  2. 어떤 편집기에서든 quarto preview 명령줄 인터페이스 사용
  3. 더 넓은 사용자에게 제공하기 위해 서버에 배포

여기에서 각 시나리오를 자세히 다룹니다.

NoteShiny 사전 요구사항

Quarto 문서에서 Shiny를 사용하려면 최신 버전의 shiny(>=0.9.0)와 shinywidgets(>=0.3.1) 패키지가 필요합니다. 다음과 같이 최신 버전을 설치할 수 있습니다.

pip install --upgrade shiny shinywidgets

VS Code 및 Positron

VS Code 및 Positron용 Quarto 확장(OpenVSX의 OpenVSXMicrosoft 마켓플레이스에서 제공)은 Shiny 대화형 문서를 미리 보기 위한 통합 지원을 제공합니다(정적 문서와 동일하게 Quarto: Preview 명령을 사용하면 됩니다).

왼쪽에 shiny.qmd 파일을 연 VS Code 스크린샷. 오른쪽에는 Quarto Preview 패널이 있고, 라이브 대시보드가 표시된다.

명령줄

다른 노트북이나 텍스트 편집기를 사용한다면 quarto preview 명령으로 Shiny 대화형 문서를 미리 볼 수 있습니다. 이는 노트북(.ipynb)과 일반 텍스트 마크다운(.qmd) 모두에 동일하게 동작합니다. 예:

Terminal
quarto preview example.ipynb
quarto preview example.qmd

preview 명령에는 문서 서버의 포트와 호스트, 그리고 브라우저를 자동으로 열지 여부를 제어하는 옵션이 있습니다. quarto preview help에서 자세한 옵션을 확인할 수 있습니다.

quarto preview의 기능(문서 변경 시 자동 재렌더링)을 사용하지 않고 문서를 제공하려면 quarto serve 명령을 사용할 수 있습니다.

Terminal
quarto serve example.qmd

배포

Shiny 대화형 문서는 quarto render로 생성되는 일반 Shiny 애플리케이션입니다. 사실 인터랙티브 문서를 제공하기 위해 Quarto가 꼭 필요한 것은 아니며, quarto render로 생성된 앱을 shiny run으로 실행하면 됩니다.

Terminal
quarto render example.qmd
shiny run app.py

배포된 애플리케이션은 quarto render가 생성하는 HTML 문서와 app.py 스크립트로 구성됩니다.

example.html
example_files/
app.py

다음 문서에서 다양한 환경에 Shiny 애플리케이션을 배포하는 방법을 확인할 수 있습니다.

대상 설명
shinyapps.io 클라우드 호스팅 서비스
Hugging Face 클라우드 호스팅 서비스
Shiny Server 오픈 소스 애플리케이션 서버
Posit Connect 상용 퍼블리싱 플랫폼
Other Services 사용자 지정 서버/호스팅 환경

서버리스 구성(브라우저에서 Pyodide로 Python을 실행)으로 Shiny 대화형 문서를 배포할 수도 있습니다. Retirement Simulation은 이 워크플로를 보여주는 예시입니다.

디버깅

생성된 .py 애플리케이션 파일(예: hello-app.py)을 디버깅하면 Shiny 문서의 대화형 디버깅 세션을 실행할 수 있습니다. 편집기 오른쪽 상단의 Debug Shiny App 메뉴 명령으로 디버깅 세션을 시작하세요.

hello-app.py 파일을 연 VS Code 스크린샷. 오른쪽 상단의 Run 드롭다운 메뉴에서 Debug Shiny App 항목이 선택되어 있다.

Caution중요 사항

디버깅 대상 파일(예: hello-app.py)은 대화형 문서에서 생성된 파일입니다. 따라서 이 파일을 직접 수정하면 안 되며(다음 렌더링 때 덮어써짐), 대신 이를 생성한 원본 문서(예: hello.qmd)를 수정해야 합니다.

더 알아보기

Python용 Shiny 대화형 문서에 대해 더 알아보려면 다음 문서를 참고하세요.

  • 시작하기는 Shiny 대화형 문서의 기본을 설명합니다.

  • 컴포넌트 브라우저는 사용 가능한 Shiny 입력과 출력, 그리고 대시보드에 복사해 사용할 수 있는 코드 스니펫을 정리합니다.

  • 입력 레이아웃는 Shiny 입력을 배치하는 다양한 방법(사이드바, 입력 패널, 입력을 카드에 직접 연결 등)을 설명합니다.

  • 실행 컨텍스트는 서로 다른 코드 셀이 언제 실행되는지(예: 렌더링 vs. 서빙)를 깊이 있게 설명합니다.

  • Python용 Shiny은 사용 가능한 모든 UI 및 출력 위젯에 대한 심화 문서와 동작 개념을 제공합니다.