Streamlit 기초 1

김민수·2025년 1월 1일
0

Streamlit

Streamlit 이란?

  • Streamlit은 데이터 애플리케이션을 쉽게 만들 수 있도록 도와주는 파이썬 기반의 오픈 소스 프레임워크입니다.

  • 특히 데이터 분석, 모델 시각화, 인터랙티브 대시보드를 빠르고 쉽게 구축할 수 있도록 만들어졌습니다.

  • Streamlit을 사용하면 복잡한 웹 개발 지식 없이도 직관적인 인터페이스를 갖춘 대화형 웹 애플리케이션을 빠르게 만들 수 있습니다.

Streamlit의 주요 특징

  1. 간단한 코드로 인터랙티브 앱 개발:
  • Streamlit은 파이썬 코드만으로 웹 애플리케이션을 만들 수 있습니다.

  • HTML, CSS, JavaScript와 같은 웹 개발 언어 없이, 파이썬으로 데이터 시각화, 입력 위젯, 상호작용 기능 등을 쉽게 추가할 수 있습니다.

  1. 빠른 개발 속도:
  • Streamlit은 개발 속도가 매우 빠릅니다.
  • 코드의 몇 줄만으로 완성도 높은 데이터 애플리케이션을 만들 수 있고, 변경사항이 발생하면 즉시 확인할 수 있습니다. 이는 빠르게 프로토타입을 제작하고, 피드백을 반영하며 반복적으로 개선하기에 이상적입니다.
  1. 직관적인 UI 구성:
  • Streamlit은 버튼, 슬라이더, 파일 업로드와 같은 위젯을 통해 사용자가 데이터를 조작할 수 있게 합니다.
  • 사용자는 이러한 위젯을 통해 간단하게 입력을 제공하고, 모델의 결과를 시각적으로 확인할 수 있습니다.
  1. 서버 측에서 데이터 처리:
  • Streamlit 앱은 서버에서 실행됩니다.
  • 사용자가 입력을 제공하면 해당 입력은 서버 측에서 처리되어 결과를 렌더링하고, 화면에 즉시 보여주는 방식입니다.
  • 따라서 복잡한 연산이나 모델 추론도 쉽게 구현 가능합니다.

Streamlit 으로 만들어진 웹 페이지 예시

streamlit 활용 사례 및 코드 : https://streamlit.io/gallery

streamlit 설치 및 실행 방법 (Python 3.8 이상, VSCODE 환경 실행 권장)

  1. Streamlit 설치: VSCode의 터미널에서 다음 명령어를 실행하여 Streamlit을 설치합니다.

    ``` bash
    pip install streamlit
    ```

  2. 파이썬 파일 생성: VSCode에서 새 파일을 만들고 확장자를 .py로 저장합니다 (예: app.py).


  1. 코드 작성: 생성한 파일에 Streamlit 코드를 작성합니다.
    import streamlit as st

    def main():
        st.title("내 첫 Streamlit 앱")
        
        st.header("환영합니다!")
        st.write("이것은 Streamlit으로 만든 간단한 웹사이트입니다.")
        
        name = st.text_input("당신의 이름을 입력하세요")
        if name:
            st.write(f"안녕하세요, {name}님!")
        
        if st.button("클릭해보세요"):
            st.balloons()
    
    if __name__ == "__main__":
        main()

이 코드는 다음과 같은 기능을 포함하고 있습니다:
1. 제목과 헤더를 표시합니다.
2. 사용자에게 이름을 입력받고, 입력 시 인사를 출력합니다.
3. 버튼을 클릭하면 풍선 애니메이션이 나타납니다.
4. 이 코드를 실행하려면, VSCode 터미널에서 다음 명령어를 입력하세요:


  1. Streamlit 실행: VSCode의 터미널에서 다음 명령어를 실행하여 Streamlit 앱을 실행합니다.
streamlit run app.py

  1. 실행하면 기본 웹 브라우저에 새 탭이 열리고 Streamlit 앱이 표시됩니다. 이제 간단한 Streamlit 웹사이트가 완성되었습니다!

profile
인공지능을 공부하고 가르치는 김민수 강사입니다. 공부한 내용 및 수업 자료가 업로드 됩니다.

0개의 댓글