"""Main Streamlit app — sidebar routing.""" import streamlit as st # Page config must be called first st.set_page_config( page_title="AI 학습 플랫폼 | 타이타닉 ML/DL", page_icon="🤖", layout="wide", initial_sidebar_state="expanded", ) # Import pages from views import home, ml_lab, dl_lab, roadmap, career PAGES = { "홈 (EDA)": home, "ML 실습": ml_lab, "딥러닝 실습": dl_lab, "학습 로드맵": roadmap, "AI 직무 분석": career, } ICONS = { "홈 (EDA)": "🏠", "ML 실습": "🔬", "딥러닝 실습": "🧠", "학습 로드맵": "🗺️", "AI 직무 분석": "💼", } # ── Session state for active page ── if "page" not in st.session_state: st.session_state.page = "홈 (EDA)" page_keys = list(PAGES.keys()) active_idx = page_keys.index(st.session_state.page) + 1 # 1-based for CSS nth-of-type # ── CSS: hide auto nav, style sidebar buttons ── st.markdown(f""" """, unsafe_allow_html=True) # ── Sidebar navigation ── st.sidebar.title("AI 학습 플랫폼") st.sidebar.markdown("타이타닉으로 배우는 ML/DL") st.sidebar.markdown("---") for page_name in page_keys: if st.sidebar.button(f"{ICONS[page_name]} {page_name}", key=f"nav_{page_name}"): st.session_state.page = page_name st.rerun() st.sidebar.markdown("---") st.sidebar.markdown(""" **데이터**: Seaborn Titanic **프레임워크**: sklearn + PyTorch **배포**: Hugging Face Spaces """) # ── Route to selected page ── PAGES[st.session_state.page].show()