AI 세부 실습 05 - Streamlit 기초와 입력 폼

1 분 소요

Streamlit 기초와 입력 폼

이 글은 다음 원본 실습 파일을 기준으로 정리합니다.

14_streamlit_20250415_01.py
14_streamlit_20250415_02_markdown.py
14_streamlit_20250415_03_form.py
14_streamlit_20250415_04_form.py
14_streamlit_20250415_05_form.py
14_streamlit_chatgpt_과제_홍성학_0415_02.py
14_과제_홍성학_0415.py

14번 실습은 Streamlit을 처음 배우는 단계입니다. Python 코드만으로 웹 화면을 만들고, 사용자의 입력을 받는 방법을 익힙니다.

Streamlit 실행

Streamlit 파일은 다음처럼 실행합니다.

streamlit run 14_streamlit_20250415_01.py

일반 Python 실행과 다릅니다.

python 14_streamlit_20250415_01.py

위 방식으로 실행하면 Streamlit 웹앱이 제대로 뜨지 않을 수 있습니다.

기본 출력

import streamlit as st

st.title("AI 실습 웹앱")
st.write("Streamlit으로 만든 첫 화면입니다.")

st.title()은 제목을 출력합니다. st.write()는 텍스트, 숫자, 표, 데이터프레임까지 다양하게 출력할 수 있습니다.

Markdown 출력

Markdown을 사용하면 글을 더 보기 좋게 만들 수 있습니다.

st.markdown("""
# 큰 제목
## 작은 제목
- 목록 1
- 목록 2
""")

블로그 글을 쓰는 Markdown 문법과 비슷하게 사용할 수 있습니다.

입력 위젯

Streamlit은 입력창을 쉽게 만들 수 있습니다.

name = st.text_input("이름")
age = st.number_input("나이", min_value=0, max_value=100)

if st.button("확인"):
    st.write(f"{name}님의 나이는 {age}세입니다.")

입력값은 Python 변수에 저장됩니다.

Form 사용

여러 입력값을 한 번에 제출하려면 st.form()을 사용합니다.

with st.form("user_form"):
    name = st.text_input("이름")
    age = st.number_input("나이", min_value=0, max_value=100)
    submit = st.form_submit_button("제출")

    if submit:
        st.write(f"이름: {name}, 나이: {age}")

폼을 쓰면 입력 중간마다 코드가 처리되는 것을 줄이고, 제출 버튼을 눌렀을 때 한 번에 처리할 수 있습니다.

AI 앱으로 연결하기

Streamlit 입력값을 AI API에 전달하면 간단한 AI 웹앱이 됩니다.

사용자 입력
-> Python 변수
-> AI API 요청
-> 답변 출력

예를 들어 사용자가 상품명을 입력하면 AI가 홍보 문구를 작성하게 만들 수 있습니다.

정리

14번 실습은 Streamlit의 기본기를 익히는 단계입니다. 제목, 텍스트, Markdown, 입력창, 버튼, Form을 이해하면 이후 챗봇이나 RAG 웹앱으로 확장할 수 있습니다.

댓글남기기