# 2.2 프로토타이핑 - 웹 서비스 형태(Streamlit)

## 1. Streamlit 이란?

Voila는 쉽게 프로토타입을 만들수 있지만, 대쉬보드 형태의 레이아웃을 잡기가 어렵다. js등의 프론트앤드를 구현해 프로토타입을 만드는 것은 비효율적일 수 있어 이를 쉽고 빠르게 할 수 있는 Streamlit에 대해 소개한다.

#### 웹서비스를 만드는 과정

![](https://3944465397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjcKlzGhHYe2bvmxTwS%2Fuploads%2FB7psIC7y0x5qUBFaOS6F%2Fimage.png?alt=media\&token=db6c0699-0847-4e11-8f10-d4f60e98addd)

#### 유사한 툴, 라이브러리

* R의 Shiny
* Flask, Fast API : 백엔드를 직접 구성 + 프론트엔드 작업도 진행
* Dash : 제일 기능이 풍부한 Python 대시보드 라이브러리
* Voila : Jupyter Notebook을 바로 시각화 가능

![](https://3944465397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MjcKlzGhHYe2bvmxTwS%2Fuploads%2FQfcRVjzFon753qo8YaYk%2Fimage.png?alt=media\&token=f4c590c7-810d-441c-b182-42273c919b07)

### 1.1. Streamlit 장점

* 파이썬 스크립트 코드를 조금만 수정하면 웹을 띄울 수 있음
* 백엔드 개발이나 HTTP 요청을 구현하지 않아도 됨
* 다양한 Component 제공해 대시보드 UI 구성할 수 있음
* Streamlit Cloud도 존재해서 쉽게 배포할 수 있음(단, Community Plan은 Public Repo만 가능)
* 화면 녹화 기능(Record) 존재
* 예시 사이트
  * <https://albumentations-demo.herokuapp.com/>
  * <https://streamlit.io/gallery>

### 1.2. Installation

```
pip install streamlit
streamlit run streamlit-basic.py


```
