-
Streamlit 실전 마스터 시리즈 3화 – 다양한 사용자 입력 받기기술과 산업/AI 2025. 5. 14. 20:13728x90
Streamlit 앱에서 슬라이더, 날짜 선택, 체크박스, 라디오 버튼 등 다양한 사용자 입력 컴포넌트를 사용하는 방법과 실습 예제를 알아봅니다.
Streamlit의 진짜 매력 = 인터랙션
Streamlit이 단순한 데이터 시각화 도구를 넘어 진짜 웹 앱 프레임워크로 불리는 이유는 바로 사용자와의 인터랙션입니다.
이번 회차에서는 Streamlit이 제공하는 다양한 **사용자 입력 위젯(Widgets)**을 통해 앱에 사용자 참여 기능을 추가하는 방법을 배워봅니다.
대표적인 사용자 입력 컴포넌트
Streamlit은 단 한 줄 코드로 여러 형태의 사용자 입력 UI를 추가할 수 있습니다.
1. 슬라이더 (Slider)
범위 내 숫자 값을 쉽게 입력 받을 때 사용합니다.
import streamlit as st value = st.slider('원하는 값을 선택하세요', 0, 100, 50) st.write(f'선택한 값: {value}')
활용 예:
가격, 연령대, 점수 설정
2. 날짜 선택 (Date Input)
날짜 데이터를 입력 받을 때 유용합니다.
date = st.date_input('날짜를 선택하세요') st.write(f'선택한 날짜: {date}')
활용 예:
예약 시스템, 기간 설정, 보고서 생성 기준일 설정
3. 체크박스 (Checkbox)
단순한 Yes/No 선택 기능입니다.
agree = st.checkbox('약관에 동의합니다') if agree: st.write('동의하셨습니다.')
활용 예:
옵션 활성화, 기능 켜기/끄기
4. 라디오 버튼 (Radio Button)
복수 선택 중 하나만 선택해야 할 경우 사용합니다.
color = st.radio( "좋아하는 색깔은?", ('빨강', '초록', '파랑')) st.write(f'당신이 고른 색은 {color}입니다.')
활용 예:
설문조사, 제품 옵션 선택
5. 다중 선택 박스 (Multiselect)
여러 개의 항목을 한꺼번에 선택할 수 있습니다.
options = st.multiselect( '좋아하는 과일을 모두 선택하세요', ['사과', '바나나', '오렌지', '포도'], ['사과', '포도']) st.write(f'선택한 과일: {options}')
활용 예:
태그 선택, 취미 리스트, 카테고리 필터
6. 파일 업로드 (File Uploader)
사용자가 파일을 업로드하도록 만들 수 있습니다.
uploaded_file = st.file_uploader("파일을 업로드하세요") if uploaded_file is not None: st.write("파일 업로드 완료:", uploaded_file.name)
활용 예:
CSV 데이터, 이미지, 엑셀 파일 입력용
7. 비밀번호 입력 (Text Input with Type Password)
보안 입력이 필요한 경우 사용합니다.
password = st.text_input("비밀번호 입력", type="password") st.write(f"입력한 비밀번호 길이: {len(password)} 자")
활용 예:
로그인 폼, API Key 입력
실전 예제 – 맞춤형 설문 폼 만들기
아래 코드는 지금까지 배운 컴포넌트를 종합한 미니 설문 폼 예제입니다.
import streamlit as st st.title("사용자 정보 설문") name = st.text_input("이름을 입력하세요") age = st.slider("나이", 0, 100, 25) hobbies = st.multiselect("취미를 선택하세요", ["독서", "운동", "영화", "게임", "음악"]) subscribe = st.checkbox("뉴스레터 구독 신청") if st.button("제출"): st.subheader("설문 결과") st.write(f"이름: {name}") st.write(f"나이: {age}세") st.write(f"취미: {hobbies}") st.write("구독 여부: 신청" if subscribe else "구독 여부: 미신청")
활용 예:
고객 설문조사, 고객 피드백 수집, 이벤트 참여 폼
실무에서 이렇게 활용하세요
이러한 입력 컴포넌트들은 다양한 내부 툴, AI 서비스, 데이터 입력 앱에 적용할 수 있습니다.
예를 들어
- 고객 진단 테스트
- 직원 만족도 조사
- 주문/예약 데이터 입력 인터페이스
- 사내 업무 요청 자동화 양식
등에 즉시 적용이 가능합니다.
마무리
Streamlit은 프론트엔드 기술 없이도 강력한 사용자 입력 기반 앱을 쉽게 만들 수 있습니다.
앞으로 다양한 컴포넌트 조합을 통해 더욱 풍부한 사용자 경험을 구현해 보겠습니다.
다음 회차 예고
👉 Streamlit 실전 마스터 시리즈 4화 – 표와 그래프 다루기
Pandas DataFrame과 다양한 차트 라이브러리를 이용해 데이터를 시각화하는 방법을 배웁니다.
728x90'기술과 산업 > AI' 카테고리의 다른 글
RAG 시리즈 1화 - RAG란 무엇인가? AI 혁신의 핵심 개념 (2) 2025.05.15 Apache NiFi 시리즈 5회 - 다양한 파일 포맷(JSON, CSV, XML) 데이터 처리 실습 (1) 2025.05.15 AI/ML 기반 데이터 분석 시리즈 3화 - Python 기반 분석 환경 구축과 필수 라이브러리 스택 (0) 2025.05.14 분야별 데이터 수집 전략 가이드 시리즈 - 6화. 통계청 KOSIS에서 인구 및 사회통계 시계열 데이터를 수집하고 분석하는 전략 (2) 2025.05.14 데이터 수집과 EDA 전략 시리즈 – 6화. 데이터 시각화 실전 가이드: matplotlib, seaborn을 활용한 EDA 시각화 (1) 2025.05.14