[부스트캠프 AI-Tech] 18주차 Day 3
✏️학습 정리
2-1. Notebook 베이스 - Voila
-
Notebook 베이스 프로토타입 만들기
- 모델 개발 후, 사람들과 테스트할 프로토타입 필요
- 웹 서비스를 만드는 것은 시간이 많이 소요
- 이런 경우 활용할 수 있는 도구: Voila
-
Voila
- 본래 목적: 대시보드
- R의 Shiny, 파이썬의 Dash와 유사한 도구
- 대시보드는 다양한 도구 존재 (Superset, Metabase, Redash, Tableau)
- but, 모두 서버에 제품을 설치한 후, 연동시켜야 함
- 장점
- Notebook에서 별도의 코드 추가 없이 실행 가능 (웹 형태로)
- Noetbook에서 바로 대시보드로 변환 가능
- 고유한 탬플릿 생성 가능
- 익히기 쉬움
-
Voila 사용
- 설치:
pip3 install voila
- JupyterLab:
jupyter labextension install @jupyter-voila/jupyterlab-preview
- Jupyter Notebook or Server:
jupyter serverextension enable voila --sys-prefix
- TIP
--strip_sources=False
설정시 Voila에서 코드도 보임
- 유저별로 새로운 Notebook Kernel 실행시키는 구조
- 아무 설정 하지 않을 경우 하나의 Cell이 30초 이상 진행되면 Timeout Error 발생
- 웹 형태라 항상 보안에 신경 써야 함 (passwd를 이용해 암호 지정 등..)
-
ipywidget
- Notebook 프로젝트 (인터랙티브한 효과 줌)
- Slider Widget
- Slider 객체 사용
display
: Python Object 보여주는 함수
IntSlider
: 정수형 Slider (그 외에 Float, IntRange 등) 
int_widget.value
: 출력시 값이 보임
- Text Widget
- Slider가 아닌 Input 입력
Bounded
: 범위가 주어진 Text
Text, Textarea, Password
: String Text 위젯
- Boolean Widget
- True, False를 표시할 수 있는 Widget
ToggleButton
, Checkbox
- Selection Widget
- 선택할 수 있는 Widget
Dropdown
, RadioButtons
- Upload Widget
- Image Widget
- Date Picker Widget
- Date를 선택하는 Widget
Date
, Time
, Datetime
- Widget Events (on_click)
- 버튼이 클릭되었을 때, 어떤 함수가 동작하길 원하는 경우
- on_click 인자에 함수를 넘기면 됨
- Widget Events (observe)
- 위젯의 값이 변경되는 것을 감지해서 특정 함수를 실행하고 싶은 경우
- observe 인자에 함수를 넘기면 됨
- interact Decorator
- @interact 데코레이터를 사용하면 UI 컨트롤러 생성
- 함수의 인자를 받아서 UI 생성
- Layout(HBox, VBox)