0.최종목표

[ 아이리스 품종 예측기 ]

1.핵심 concept

  1. 스트림릿 (Streamlit) 프레임워크는 UI 요소와 실시간 연동되는 파이썬 기반의 컴포넌트 객체를 통해 사용자와 상호 작용
  2. 스트림릿은 먼저 파이썬 스크립트가 최초 실행될 때 화면의 레이아웃과 구성 요소를 배치

2.반응형 프로그래밍

  1. 반응형 프로그램 특징: UI 요소에 일어나는 변화를 효과적으로 감지하고 처리하기 위해 애플리케이션의 데이터 상태와 UI 요소의 상태를 동기화하여 관리
  2. 원리: 스트림릿 환경에서 수행되는 파이썬 스크립트는 스트림릿에서 관리하는 프론트엔드 엔진으로 전달되어 화면상의 컴포넌트로 출력됨

[ 스트림릿 프레임워크에서 파이썬 스크립트와 UI 요소가 연동하는 과정을 나타내는 다이어그램 ]

  1. 스트림릿의 프론트엔드 엔진은 SPA(Single Page Application)로 동작하기 때문에 최초 출력 이후에는 웹 페이지 전체를 리로드하지 않고, 서버로부터 받은 데이터나 정보를 바탕으로 화면을 업데이트 하는 방식
  2. 주목할 부분: 사용자가 화면상의 컴포넌트에 인터랙션을 가하면, 스트림릿 프레임워크는 애플리케이션의 상태를 최신화하기 위해 파이썬 스크립트 전체를 다시 실행한다는 점
import streamlit as st
print("start...")

text = "지정된 텍스트를 제목, 부제목, 글, 인풋 등으로"
st.header(text, divider='rainbow')
st.subheader(text)
st.title(text)
st.write(text)
st.text_input(label="Title", placeholder=text)
st.write("# Bar Chart")
vocab_logits = {
    "나는": 0.01, "내일": 0.03, "오늘": 0.25, "어제": 0.3,
    "산에": 0.4, "학교에": 0.5, "집에": 0.65,
    "오른다": 1.2, "간다": 1.05, "왔다": 0.95}
st.bar_chart(vocab_logits)
# 중앙 정렬 캡션
st.markdown(
    "<p style='text-align: center; color: gray;'>막대차트</p>",
    unsafe_allow_html=True)
print("end...")

2-1.반응확인

화면의 input 상자에 텍스트를 입력한 후 탭 등을 클릭하여 포커스를 벗어나면 콘솔 창에