Streamlit API 치트시트 — 자주 쓰는 명령 한눈에

Streamlit API 치트시트 — 자주 쓰는 명령 한눈에

치트시트는 Streamlit으로 만들 수 있는 화면 요소를 주제별로 빠르게 훑는 데 최고예요. 처음부터 다 외울 필요 없고, "이런 걸 보여주고 싶은데 어떤 함수였지?" 할 때 펼쳐보면 돼요. 자주 쓰는 명령만 골라서 살펴볼게요.

출처: https://docs.streamlit.io/develop/quick-reference/cheat-sheet

텍스트·데이터 표시

매직 커맨드는 st.write()를 암시적으로 호출해요. 변수나 마크다운 문자열을 그냥 쓰면 알아서 화면에 그려줘요.

my_variable            # 그냥 변수만 써도 표시됨
"dataframe:", my_dataframe
st.write("Most objects")
st.markdown("_Markdown_")
st.title("My title"); st.header("My header"); st.subheader("My sub")
st.dataframe(my_dataframe)   # 인터랙티브 표
st.metric("My metric", 42, 2)  # 지표 카드

차트

차트도 몇 줄이면 그려져요. st.line_chart(df), st.bar_chart(df, horizontal=True), st.scatter_chart(df), st.map(df) 같은 편의 함수 외에 Altair·Plotly·Vega-Lite 같은 고급 차트도 지원해요.

위젯 (사용자 입력)

상호작용의 핵심은 위젯이에요. 값은 반환값으로 받아요.

name = st.text_input("First name")
age = st.number_input("Pick a number", 0, 10)
choice = st.selectbox("Pick one", ["cats", "dogs"])
likes = st.multiselect("Buy", ["milk", "apples", "potatoes"])
agree = st.checkbox("I agree")
rating = st.slider("Pick a number", 0, 100)

레이아웃 — 컬럼·탭·사이드바

col1, col2 = st.columns(2)          # 2등분
col1.write("This is column 1")
col2.write("This is column 2")

tab1, tab2 = st.tabs(["Tab 1", "Tab2"])
tab1.write("this is tab 1")

# 사이드바: "with" 표기로 묶기
with st.sidebar:
    st.radio("Select one:", [1, 2])

채팅 앱

with st.chat_message("user"):
    st.write("Hello 👋")

st.chat_input("Say something")

st.chat_message는 대화 말풍선 컨테이너, st.chat_input은 입력 위젯이에요.

성능 — 캐싱

무거운 계산을 반복하지 않으려면 캐시 데코레이터를 붙여요.

  • @st.cache_data: 데이터프레임 계산처럼 값으로 반환하는 함수용.
  • @st.cache_resource: TensorFlow 세션, DB 연결처럼 "하나만 있으면 되는" 객체용.
@st.cache_data
def foo(bar):
    return data

@st.cache_resource
def foo(bar):
    return session

더 알아보기

전체 명령 목록과 예시는 공식 Streamlit API cheat sheet에서 확인할 수 있어요.