Skip to Content

02. 대시보드 레이아웃 구성 (Layout)

중급30분

1. 사이드바 (Sidebar)

모든 대시보드에는 **필터(Filters)**가 필요합니다. 날짜를 선택하거나, 특정 카테고리만 보고 싶을 때 사용하죠. Streamlit에서는 st.sidebar를 사용하면 왼쪽에 고정된 메뉴바를 만들 수 있습니다.

❓ 문제 1: 사이드바 필터 만들기

Q. 사이드바에 ‘기간 선택’ 슬라이더와 ‘카테고리 선택’ 박스를 추가하세요.

import streamlit as st import pandas as pd st.title("e-Commerce Analytics Dashboard") # 사이드바 생성 st.sidebar.header("Filters") # 날짜 필터 days_to_show = st.sidebar.slider("조회 기간 (일)", 7, 90, 30) # 카테고리 필터 category = st.sidebar.selectbox( "카테고리 선택", ["All", "Apparel", "Electronics", "Furniture"] ) st.write(f"선택된 옵션: {days_to_show}일, {category}")

2. KPI Scorecard (Metrics)

경영진이 가장 먼저 보고 싶어하는 것은 **숫자(KPI)**입니다. “매출 얼마야?”, “고객 몇 명 들었어?”를 한눈에 보여줘야 합니다.

st.metric 함수는 숫자와 증감율(Delta)을 예쁘게 보여줍니다.

❓ 문제 2: KPI 지표 배치하기

Q. 화면 상단에 ‘총 매출’, ‘주문 건수’, ‘평균 고객 만족도’ 3개의 지표를 나란히 배치하세요.

💡

Hint: st.columns(3)를 사용하면 화면을 3등분할 수 있습니다.

st.header("Key Metrics") # 3개의 컬럼 생성 col1, col2, col3 = st.columns(3) with col1: st.metric(label="Total Revenue", value="$52,040", delta="12%") with col2: st.metric(label="Total Orders", value="1,240", delta="-5%") with col3: st.metric(label="Avg CSAT Score", value="4.2/5.0", delta="0.1")

3. 탭 (Tabs) 구성

한 화면에 너무 많은 정보를 담으면 복잡해집니다. st.tabs를 사용하여 주제별로 화면을 나누어주세요.

❓ 문제 3: 탭으로 화면 분리

Q. ‘Sales’, ‘Customer’, ‘Product’ 3개의 탭을 만들고 내용을 분리하세요.

tab1, tab2, tab3 = st.tabs(["Sales 📈", "Customer 👥", "Product 📦"]) with tab1: st.subheader("Sales Trend") # 여기에 매출 차트 코드 작성 with tab2: st.subheader("Customer Demographics") # 여기에 고객 분석 코드 작성 with tab3: st.subheader("Top Products") # 여기에 상품 분석 코드 작성

💡 요약

  • st.sidebar: 필터나 네비게이션을 왼쪽에 둘 때 사용합니다.
  • st.columns: 화면을 가로로 쪼갤 때 사용합니다. (KPI 배치에 필수)
  • st.metric: KPI 숫자를 강조해서 보여줄 때 사용합니다.
  • st.tabs: 내용을 주제별로 정리하여 깔끔하게 보여줍니다.

다음 챕터에서는 Plotly를 사용하여 마우스 오버가 되는 멋진 차트를 추가해보겠습니다.

Last updated on

🤖AI 모의면접실전처럼 연습하기