ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Streamlit 실전 마스터 시리즈 3화 – 다양한 사용자 입력 받기
    기술과 산업/AI 2025. 5. 14. 20:13
    728x90

     

    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
Designed by Tistory.