데이터베이스 연구실.log

Streamlit 대시보드

Streamlit 입력, 표, 그래프와 테마 설정, 실습의 자동 갱신, 세션 구현과 실제 설정 파일은 확인 불가

Streamlitstreamlit run--server.port사이드바자동 새로고침데모 모드환경 변수 기본값config.tomlmetric

#핵심 요약

실습의 네 도구 화면은 모두 Streamlit으로 만들고 streamlit run app.py로 띄움
브라우저에서 http://localhost:포트를 엶

실습에서는 도구마다 포트를 나눴음
미니 PG 게이지와 미니 오라클 게이지 8501, Oracle판 마이그레이터 8502, MySQL판 마이그레이터 8503

사이드바의 연결 기본값은 실행 bat의 환경 변수에서 옴
다른 DB로 바꿀 때는 bat의 값만 고침

모니터 화면은 몇 초마다 저절로 새로고침되고(기본 3초), 설명할 때는 사이드바의 자동 새로고침 멈춤을 켜서 화면을 고정함

#개념과 동작 원리

#화면 구성

도구 화면
미니 마이그레이터 위쪽 단계 표시 ① 연결 → ② 분석 → ③ 변환 → ④ 이행 → ⑤ 검증 → ⑥ AS-IS/TO-BE 점검
연결 카드, 분석 표, DDL 탭, 진행률 표와 로그, 검증 표, 점검 탭과 보고서
단계가 끝나야 다음 단계 버튼이 켜짐
미니 오라클 게이지 KPI, CPU, Memory, SQL Elapsed, Alert Log, Reads 추이, Wait Class, 활성 세션 표, Tablespace
상단 경보 줄과 세션 상세(SQL, 진단, 실행계획, 조치 탭)
미니 PG 게이지 KPI 카드, Connections, Buffer Cache Hit, Running SQL Elapsed Time, Server Log, Wait Event Type, Database Size, Seq Scan Tables

실습에서는 화면 한 칸이 처리 함수 하나에 대응한다고 설명함
경보 줄의 상세 버튼이나 활성 세션 표의 빨간 줄 왼쪽 체크 칸을 누르면 아래에 상세가 열림

모니터는 사이드바에서 데모 모드(DB 없이)와 실제 DB 연결을 고름
데모 모드는 DemoCollector의 가짜 데이터로 같은 화면을 그림
마이그레이터는 검증 리포트(CSV), DDL 스크립트, 점검 보고서(HTML)를 내려받는 버튼이 있음

실습에서는 .streamlit/config.toml에 밝은 테마를 두었다고 적었음
설정 내용은 확인 불가

#주요 용어와 구성 요소

구문 의미
입력 위젯 text_input은 입력값을 반환하며 key로 위젯을 식별함
표와 그래프 st.dataframe은 표, st.plotly_chart는 Plotly Figure를 화면에 표시함
on_change 입력값 변경 때 실행할 콜백이며 DB 연결 성공 자체를 의미하지 않음

#필수 명령어 또는 SQL

항목 실행 조건
작업 대상 app.py의 Streamlit 서버 실행, 포트와 화면 입력, 조회 결과 표시
필요 권한 도구 폴더 읽기, 사용 포트 바인딩 권한, DB 조회는 연결 계정 권한을 별도로 적용함
바꿀 입력값 app.py 경로, server.port와 실제 DataFrame, Figure, 입력 위젯 키
결과 해석 입력, 자동 새로고침, 표 표시의 추가 실습 결과는 기재 없음
Anaconda Prompt (도구 폴더)현재 세션 설정만 변경함
streamlit run app.py
python -m streamlit run app.py --server.port 8502

결과 해석: 첫 줄은 기본 포트 8501로, 둘째 줄은 포트를 지정해 띄움
실습 실행 bat은 python -m streamlit...이 실패하면 py 런처로 다시 시도함
창을 닫으면 화면도 꺼짐
Streamlit을 처음 실행하는 PC는 Email:을 묻는데 Enter만 누르면 됨

#구문과 옵션 설명

st.text_input의 type="password"는 입력 표시를 가리는 옵션이며 비밀번호 저장 정책을 대신하지 않음
프로젝트 설정 파일은 streamlit run을 호출한 작업 디렉터리의 .streamlit/config.toml이며 [theme]의 base="light"가 밝은 테마를 상속하는 형태임
이는 설정 구문 설명이며 실습 파일의 실제 값은 확인 불가

#사용 조건과 주의사항

비밀번호 입력 칸은 Enter나 포커스 이동으로 값이 확정되기 전에는 빈 값으로 접속해 ORA-01017이 났음
실습에서는 입력 후 Enter를 누르거나 환경 변수를 씀

상세 패널의 숫자 표시(metric)는 열 너비보다 길면 줄임표로 잘림
실습에서는 화면 설계를 바꾸지 않고 마우스를 올려 전체 숫자를 보게 했음

다른 Streamlit 앱이 같은 포트를 쓰면 실행되지 않음
실습에서는 도구마다 포트를 나눠 동시에 띄울 수 있게 했음

실습 bat은 Anaconda Prompt가 아닌 곳에서 더블클릭해도 Anaconda를 찾아 켜도록 만들었음
세부는 Oracle과 PostgreSQL 연결에 있음

실습 Streamlit 버전은 강사 PC 1.66.0, Anaconda 2026.07 내장 1.58.0이며 둘 다 동작했다고 적었음

앱 구동 포트와 DB 포트는 서로 다른 설정임
입력값 반환, 화면 표시와 실제 DB 조회, 캐시, 자동 갱신 구현을 분리해 확인해야 함

SEO_HKabsumveritas@gmail.comBuilt with Claude Code & Codex

마지막 갱신 개인 학습 기록이며 운영 환경 적용 전 공식 문서 확인 필요

두 글자 이상 입력, 위아래 화살표로 이동하고 Enter로 열기