TOPIC/Data

Streamlit이란?

H-Y-E-N 2024. 4. 17. 13:53

안녕하세요. HYEN입니다.

오늘은 기존에 다루던 부분과 조금은 다른 분야의 내용을 다뤄보고자 합니다. 

바로 Python 기반의 웹 개발 프레임워크인 Streamlit입니다! 

우연한 기회에 접하게 되었는데 웹 개발에 대한 지식이 많이 없는 저도 쉽게 데모 환경을 구성할 수 있더라구요! 

이번 글에서는 간단하게 Streamlit이 무엇인지에 대해 알아보고 다음 글에서 실제 구성한 데모 환경에 대해 다뤄보도록 하겠습니다. 🖥️


Contents

     

    1. Streamlit이란?

    공식 문서에 따르면 Streamlit의 정의는 다음과 같습니다. (https://docs.streamlit.io/)

    Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver dynamic data apps with only a few lines of code. Build and deploy powerful data apps in minutes.

     

     

    Streamlit Docs

    Join the community Streamlit is more than just a way to make data apps, it's also a community of creators that share their apps and ideas and help each other make their work better. Please come join us on the community forum. We love to hear your questions

    docs.streamlit.io

     

    Data Scientist나 AI/ML 엔지니어들이 간단한 코드만 작성하면 동적인 데이터 분석 애플리케이션을 제공할 수 있는 오픈 소스 Python 프레임워크가 바로 오늘의 주제인 Streamlit입니다. 

     

    애플리케이션을 개발하려고 한다면 HTML, CSS, Javascript 뿐만 아니라 웹 프레임워크를 모두 고려해야  합니다. 이런 지식이 충분하지 않다면 개발에 어려움을 겪을 수밖에 없는데요. 

     

    Streamlit은 Python 코드만 작성하면 데이터 분석 애플리케이션을 생성할 수 있습니다. 

    즉, 사전 배경 지식을 상대적으로 많이 요하지 않는다는 점에서 단기간에 개발이 가능하다는 점이 Streamlit의 특징이라고 할 수 있습니다. 

     

    2. Streamlit의 특징

    • Simple and Pythonic

      • 간단하고 읽기 쉬운 코드로 구성되어 있습니다. 

      • 복잡한 배경 지식이 없어도 애플리케이션을 빠르게 생성할 수 있습니다. 

      • Streamlit cloud를 사용할 경우 GitHub 레포지토리에 소스 코드를 업로드하여 웹 상에 본인의 서비스를 배포할 수 있습니다. 

     

    • Fast, interactive prototyping
      • 원하는 대로 애플리케이션의 모양과 기능을 변경할 수 있어 빠르고 상호 작용적인 프로토타입을 생성할 수 있습니다.

      • 웹 서비스 형태의 데모를 제작하는데 최적화 되어 있습니다. 

     

    • Live editing
      • 코드를 편집하면 그 즉시 애플리케이션이 자동으로 업데이트 됩니다. 

     

    • Open-source and free

    • Data Integration

      • Python 코드 기반이기 때문에 Python의 주요 데이터 분석 및 시각화 라이브러리와의 통합이 용이합니다. 

     

    3. 한계점

    • 간단한 데모 애플리케이션 생성에는 굉장히 유용한 프레임워크이지만 복잡한 애플리케이션일 경우 프레임워크 디자인에 제한이 있습니다. 

    • 많은 부분을 추상화하여 제공하기 때문에 레이아웃이나 위젯과 같이 디자인 측면의 자유도가 낮습니다. 

    • 사용자와 상호작용할 때마다 전체 스크립트가 다시 실행되는 Streamlit의 로직 특성 상 dataset의 크기가 크거나 복잡한 계산이 필요한 경우 성능이 저하될 수 있습니다. 

     


    이렇게 Streamlit의 개념 그리고 특징과 한계점에 대해 알아보았습니다.

    빠른 시일 내에 Streamlit 테스트 글로 돌아오도록 하겠습니다~ 

    728x90
    320x100
    SMALL