본문 바로가기
IT

[Streamlit] 스트림릿이란? 데이터분석 시각화 오픈소스 라이브러리

by ShrimpTaco 2023. 5. 31.
반응형

Streamlit이란?

Streamlit은 데이터 분석과 시각화를 함께 간편하게 수행할 수 있는 파이썬 오픈 소스 라이브러리이다.

 

Streamlit • A faster way to build and share data apps

Streamlit is an open-source app framework for Machine Learning and Data Science teams. Create beautiful web apps in minutes.

streamlit.io

공식 홈페이지에서는 스트림릿을 "데이터 애플리케이션을 만들고 공유하는 더 빠른 방법(A faster way to build and share data apps)" 이라고 소개한다.

주변에서 Streamlit을 실제로 활용한 것을 본 적이 있는데, 웹 개발을 전혀 해본 적 없는 데이터분석가가 아주 깔끔한 시각화 대시보드를 만든 것을 본 적이 있다.

Snowflake에서 2023년 하반기에 신규 기능으로 Streamlit을 런칭한다는 소식을 듣고 어디서 많이 들어본 이름이다 싶어서 찾아봤더니, 작년에 봤던 바로 그 데이터 시각화 웹 만드는 기능이었다.

웹 개발을 잠깐 해봤을 때, 마음에 드는 디자인의 웹 페이지를 만들려면 HTML 뿐만 아니라 CSS와 JavaScript를 어느 정도는 알아야 했는데, Streamlit을 사용하면 Python 코드만으로 웹 애플리케이션을 개발할 수 있다고 하니 Python을 주로 사용하는 데이터 분석가, 데이터 사이언티스트들이 쉽게 쓸 수 있을 것 같다.

Streamlit과 함께 사용할 수 있는 Python 라이브러리

파이썬 기반이다 보니 흔히 사용하는 opencv, pandas, kereas, tensorflow, matplotlib, numpy, scikit-learn 등 다른 파이썬 라이브러리와 함께 사용할 수 있는 것도 큰 장점이 될 수 있을 것 같다.

그리고 이전에 잠깐 웹개발을 했을 때에는 변경사항을 확인하기 위해 코드를 수정할 때마다 애플리케이션을 재시작했어야 했는데, Streamlit은 코드의 변경 사항을 자동으로 감지하여 애플리케이션을 실시간으로 업데이트해서, 코드 수정 후 애플리케이션을 재시작할 필요가 없다고 한다.

Demo

공식 홈페이지에 들어간 김에 간단한 튜토리얼을 해봤다.

pip install streamlit

Streamlit이 python 라이브러리이다 보니 pip install로 간단하게 설치 가능하다.

pip install streamlit
streamlit hello

pip install로 설치 후 hello 명령어를 실행해 봤다.

커맨드창에서 환영한다며 이메일을 입력하라고 하길래 일단 비워두고 엔터키를 눌러서 진행했더니

localhost:8501에 연결된 웹페이지가 떴다. 주소창에 뭘 입력하지 않아도 자동으로 웹페이지가 떠서, localhost가 뭔지, 8501은 뭔지 모르는 쌩 초보자도 일단 필요한 기능을 수행하는 데에 문제가 없을 것 같았다.

더 복잡한 예제들(See more complex demos) 중에 신경망을 이용한 자율주행 이미지 분석 예제는

pip install --upgrade streamlit opencv-python
streamlit run https://raw.githubusercontent.com/streamlit/demo-self-driving/master/streamlit_app.py

위의 명령어를 실행하면 확인할 수 있다고 하지만 노트북에 opencv 설치하기 싫어서 실행은 안 해봤다.

깃헙(https://github.com/streamlit/demo-self-driving)에 나와있는 데모 영상을 보면 좌측의 드롭다운 메뉴나 슬라이더, 버튼 등의 반응형 요소를 사용해서 조작하는 대로 우측 결과물이 실시간으로 업데이트되는 것을 확인할 수 있어서, 데이터 분석과 시각화를 직관적으로 수행할 수 있을 것 같았다.

장점

Streamlit은 데이터 시각화, 프로토타이핑, 결과 공유 및 웹 기반 애플리케이션 개발에 최적화되어 있어 데이터 분석과 시각화를 더욱 효율적으로 수행할 수 있다고 한다. 특히 결과를 공유할 때 편리할 것 같은 게, 학습한 모델의 결과물을 비교하거나, 단순한 데이터 분석 및 시각화가 필요할 때에도 Streamlit을 이용한 웹을 띄워서 서버 주소(+포트번호)만 공유하면 언제든 확인이 가능할 테니 굳이 화면으로 공유한다던가 하는 자리를 마련하지 않아도 될 것 같아 시간이 절약될 것 같다.

데이터 분석가, 데이터 사이언티스트, 인공지능 연구 및 개발자들에게 매우 유용한 도구가 될 수 있을 것으로 보인다.

 

 

[참고]

Streamlit 공식 홈페이지 - https://streamlit.io/

반응형

댓글