ASAC 6기/Streamlit

[Streamlit] 0. Streamlit이란?

helena1129 2025. 1. 19. 22:24

📌 Streamlit이란?

Python 기반(라이브러리) 프론트엔드 데이터 시각화 기능 프레임워크로,

파이썬 코드로 구현 가능한 데이터 대시보드 및 챗봇을 웹페이지에 구현할 수 있는 서비스라고 생각하면 된다.

 

 

리서치를 통해 정리해 본 핵심 기능은 다음과 같다.

 

📌 핵심 기능

1. 반응형 프로그래밍

   - 복잡한 상태 관리나 콜백 함수 없이도 사용자 인터랙션에 따른 변화를 쉽게 구현할 수 있음

2. 데이터 캐싱
    - 파라미터가 달라졌거나 구현 내용이 달라진 경우에 한해서만 함수를 다시 실행하여 불필요한 재실행 방지
    - 복잡한 연산 결과를 재사용해야 할 경우(직렬화 가능, 데이터 불변성 필요)
3. 리소스 캐싱
    - 프로그램에서 사용되는 리소스를 한 번만 로드하거나 연결하고, 이후의 호출에서는 캐싱된 인스턴스를 재사용함으로써처리 시간을 단축
    - 프로그램 내에서 자원을 효율적으로 관리
4. 세선 상태 관리(챗봇)
    사용자별 세션 정보를 활용해 사용자와 상호작용하는 챗봇을 구현

 

 

GPT가 정리해준 유사 툴과의 비교는 다음과 같다.

 

🔍 Streamlit vs 유사 툴 비교

UI 생성 ML 모델 연결 난이도 시각화 사용 사례
Streamlit 자동 UI 생성 ✅ 가능 ⭐ 쉬움 ✅ 가능 데이터 앱, 분석 앱
Gradio 자동 UI 생성 ✅ 최적화 ⭐ 매우 쉬움 ❌ 제한적 ML 모델 데모 앱
Dash 복잡한 UI 가능 ✅ 가능 ⭐⭐ 보통 ✅ 가능 비즈니스 대시보드
Voila 노트북 UI 활용 ❌ 제한적 ⭐ 쉬움 ✅ 가능 노트북 웹 공유 앱

 

Streamlit을 선택한 이유는 프로젝트 멘토님이 이미 과거에 선택했었던 툴이기도 하고, UI 설정에 익숙치 않았기 때문에 프론트엔드 기술을 요하는 툴은 선택하고 싶지 않았다(그러나...). 더불어 데이터 분석 프로젝트에 가장 유용하다고 생각하여 선택하였다.


 

ASAC 6기 기업 프로젝트를 진행하면서 되돌아봤을 때 가장 기억에 남는 작업은 단연 Streamlit이다.

생각보다 사용하는 사람이 그렇게 많은 것 같지도 않았고

활용 자체는 어렵지 않았지만 자잘한 부분에서 이슈가 있어서 수정하는 과정이 귀찮았다.

그래도 결과물을 되돌아봤을 때 꽤나 만족스럽다.

 

열심히 삽질하며 만들어간 웹사이트는 이렇다!

 

 

티스토리에는 이미 나와있는 뻔한 얘기보다는 내가 프로젝트를 진행하며 삽질하고 깨달음을 얻었던 과정 위주로 기록하고자 한다.