내일배움캠프

[본캠프] 데이터기반 QA/QC 부트캠프 45일차

min0jun 2026. 7. 24. 19:31

Streamlit으로 데이터 대시보드 만들기

1. 오늘의 학습 목표

오늘은 Streamlit을 활용한 데이터 대시보드 개발을 학습했다.

먼저 대시보드가 왜 필요한지와 좋은 대시보드의 조건을 이해하고, 제조업에서 자주 사용하는 KPI를 살펴봤다. 이후 Streamlit의 설치 방법부터 텍스트 출력, 입력 위젯, 그래프 시각화까지 웹 기반 데이터 대시보드를 만드는 기본 기능을 익혔다.  


2. 오늘 학습한 내용

대시보드란 무엇인가?

대시보드는 여러 데이터를 하나의 화면에서 시각적으로 보여주어 업무 효율과 의사결정 속도를 높여주는 도구이다.

좋은 대시보드는 단순히 예쁜 화면을 만드는 것이 아니라, 사용자가 필요한 정보를 빠르게 확인하고 바로 행동(Action)으로 이어질 수 있도록 설계되어야 한다.

반대로 나쁜 대시보드는

  • 너무 많은 KPI
  • 관련 없는 데이터 나열
  • 과도한 색상과 장식
  • 액션으로 이어지지 않는 화면

등의 문제를 가지고 있다.

따라서 대시보드를 만들기 전에는

  • 누가 사용할 것인지
  • 어떤 목적을 가지고 보는지
  • 어떤 KPI가 필요한지
  • 어떤 방식으로 비교할 것인지

를 먼저 정의하는 과정이 중요하다는 점을 배웠다. 

[라이브 세션] Streamlit과 함께, 대시보드 완전 정복 라이브 세션 1회차 [박영선 튜터님] _ Notion.pdf


제조업에서 자주 사용하는 KPI

제조업 대시보드에서는 단순 생산량보다 공정을 평가할 수 있는 핵심 지표(KPI) 가 중요하다.

오늘 학습한 대표적인 KPI는 다음과 같다.

  • 비가동률(Downtime)
  • 가동률(Uptime)
  • 초기 합격률(FPY)
  • 불량률(Defect Rate)
  • 스크랩률(Scrap Rate)
  • 생산 처리량(Throughput)
  • 사이클 타임(Cycle Time)

각 KPI는 생산 효율과 품질을 수치로 나타내며, 문제 발생 원인을 빠르게 파악하는 기준이 된다.

또한 실제 제조업 대시보드 사례를 통해 KPI 카드, 운영 이벤트, 비가동 원인 분석 등을 함께 구성하면 공정 상태를 한눈에 확인할 수 있다는 점도 이해할 수 있었다. 

[라이브 세션] Streamlit과 함께, 대시보드 완전 정복 라이브 세션 1회차 [박영선 튜터님] _ Notion.pdf


Streamlit이란?

Streamlit은 Python만으로 웹 기반 데이터 애플리케이션을 만들 수 있는 오픈소스 프레임워크이다.

웹 개발 지식이 없어도 Python 코드만으로

  • 데이터 시각화
  • 대시보드
  • 머신러닝 결과
  • 인터랙티브 웹앱

등을 빠르게 구현할 수 있다.

특히

  • 코드 수정 시 자동 새로고침
  • 다양한 입력 위젯
  • Matplotlib, Plotly 등과 높은 호환성
  • Streamlit Cloud를 통한 쉬운 배포

등이 큰 장점이다.

또한 Tableau가 BI 중심의 시각화 도구라면, Streamlit은 Python 코드와 머신러닝 모델까지 하나의 웹앱으로 구현할 수 있다는 차이점도 배웠다. 

[라이브 세션] Streamlit과 함께, 대시보드 완전 정복 라이브 세션 1회차 [박영선 튜터님] _ Notion.pdf


Streamlit 설치와 기본 실행

Streamlit은 Python 패키지이므로 pip를 이용해 설치한다.

패키지는 관련된 코드들을 하나로 묶어 관리하는 형태이며, 필요한 기능을 쉽게 가져와 사용할 수 있다.

VS Code에서는 터미널을 CMD 환경으로 설정한 후 Streamlit을 설치하고 실행하는 과정을 실습했다.

이를 통해 앞으로 작성한 Python 코드를 웹 형태로 실행할 수 있는 환경을 구성했다. 

[라이브 세션] Streamlit과 함께, 대시보드 완전 정복 라이브 세션 1회차 [박영선 튜터님] _ Notion.pdf


Streamlit 주요 함수

오늘은 Streamlit에서 가장 자주 사용하는 함수들도 함께 학습했다.

텍스트 출력 함수

  • st.title()
  • st.header()
  • st.subheader()
  • st.markdown()
  • st.caption()
  • st.text()
  • st.write()

코드 및 수식 출력

  • st.code()
  • st.latex()

입력 위젯

  • st.text_input()
  • st.text_area()
  • st.number_input()
  • st.date_input()
  • st.selectbox()
  • st.multiselect()
  • st.radio()
  • st.file_uploader()
  • st.button()
  • st.slider()

이러한 함수들을 활용하면 사용자의 입력을 받아 실시간으로 결과를 보여주는 인터랙티브 웹앱을 만들 수 있다. 

[라이브 세션] Streamlit과 함께, 대시보드 완전 정복 라이브 세션 2회차 [박영선 튜터님] _ Notion.pdf


Streamlit에서 그래프 시각화

Streamlit은 기본 차트를 매우 간단하게 그릴 수 있다.

대표적으로

  • st.line_chart()
  • st.bar_chart()
  • st.area_chart()

를 사용하면 몇 줄의 코드만으로 그래프를 출력할 수 있다.

또한 더 다양한 시각화를 위해 Matplotlib와 Plotly도 함께 사용할 수 있다.

Matplotlib에서는

  • pyplot 인터페이스
  • 객체 지향 인터페이스

두 가지 방식의 차이도 다시 복습했다.

마지막으로

  • st.pyplot()
  • st.plotly_chart()

함수를 이용하면 Matplotlib와 Plotly에서 만든 그래프를 Streamlit 화면에 그대로 출력할 수 있다는 점을 배웠다. 

[라이브 세션] Streamlit과 함께, 대시보드 완전 정복 라이브 세션 2회차 [박영선 튜터님] _ Notion.pdf


3. 나의 간단 소감

오늘은 Tableau처럼 시각화를 만드는 것에서 한 단계 더 나아가 Python으로 직접 웹 기반 대시보드를 구현하는 방법을 배울 수 있었다. 특히 Streamlit은 복잡한 웹 개발 없이도 Python 코드만으로 인터랙티브한 화면을 만들 수 있다는 점이 인상적이었다. 앞으로 최종 프로젝트에서는 단순히 분석 결과를 보여주는 데 그치지 않고, 사용자가 직접 데이터를 선택하고 탐색할 수 있는 대시보드를 구현해 보면 훨씬 완성도 높은 결과물을 만들 수 있을 것 같다는 생각이 들었다.