- 목표: 주요 건설업체의 ESG(안전/환경) 지표를 시각화하는 Streamlit 대시보드 개발
- 핵심 기능: 연도별 비교, 업체별 비교, 인터랙티브 차트
- 대상 업체: Samsung, Hyundai, LG, Google, Tesla
- 데이터 기간: 2023-2025년
- 프로젝트 디렉토리 구조 생성
- requirements.txt 작성 (Streamlit, Pandas, Altair 등)
- 가상환경 설정 및 패키지 설치
- .gitignore 파일 생성
-
data.json스키마 설계- 업체별, 연도별 ESG 지표 구조
- 안전 지표: 사고율(‰), 사망자수, 안전감사 준수율(%), 산재보험금(백만원)
- 환경 지표: 탄소배출량(tCO₂e), 에너지사용량(kWh/㎡), 재생에너지비율(%), 건설폐기물(ton), 재활용률(%)
- 샘플 데이터 생성 및 검증
- 데이터 로딩 함수 설계
- 데이터 전처리 함수 설계
- 캐싱 전략 수립
예상 소요시간: 1-2일
-
main.py파일 생성 - Streamlit 페이지 설정 (제목, 아이콘, 레이아웃)
- 사이드바 또는 메인 영역에 모드 선택 토글 구현
- 연도별 비교 모드 / 업체별 비교 모드 토글 스위치
- 선택된 모드에 따른 페이지 라우팅 로직
- 상태 관리 (session_state 활용)
- 헤더 및 네비게이션 구성
- 프로젝트 소개 섹션
- 반응형 레이아웃 적용
예상 소요시간: 1일
- 페이지 레이아웃 설정
- 최신 연도 데이터 테이블 표시
- 업체 선택 위젯 구현
- 모든 업체의 최신 연도 데이터 DataFrame 표시
- 정렬 및 필터링 기능
- 스타일링 및 포맷팅 (단위, 색상 등)
- 안전 탭 구현
- 사고율 추이 차트
- 사망자수 추이 차트
- 안전감사 준수율 추이 차트
- 산재보험금 추이 차트
- 환경 탭 구현
- 탄소배출량 추이 차트
- 에너지사용량 추이 차트
- 재생에너지비율 추이 차트
- 건설폐기물 및 재활용률 추이 차트
- Altair 차트 툴팁 설정
- 연도 범위 선택 기능
- 차트 확대/축소 및 팬 기능
예상 소요시간: 2-3일
- 페이지 레이아웃 설정
- 최신 연도 데이터 테이블 표시
- 다중 업체 선택 위젯 구현
- 체크박스 또는 멀티셀렉트를 통한 업체 선택
- 선택된 업체들의 데이터 필터링 로직
- 비교 대상 업체 수 제한 (최대 5개 등)
- 안전 탭 구현
- 업체별 사고율 비교 바차트
- 업체별 사망자수 비교 차트
- 업체별 안전감사 준수율 비교 차트
- 업체별 산재보험금 비교 차트
- 환경 탭 구현
- 업체별 탄소배출량 비교 차트
- 업체별 에너지사용량 비교 차트
- 업체별 재생에너지비율 비교 차트
- 업체별 폐기물 관리 비교 차트
- 레이더 차트를 통한 종합 ESG 성과 비교
- 업체별 순위 표시
- 업계 평균 대비 성과 표시
예상 소요시간: 2-3일
- 일관된 색상 팔레트 적용
- 반응형 차트 크기 설정
- 애니메이션 효과 추가
- 접근성 개선 (색맹 고려 등)
- 드릴다운 기능 구현
- 차트 내 주석 및 설명 추가
- 데이터 내보내기 기능 (CSV, PDF)
- 차트 이미지 저장 기능
- 데이터 캐싱 최적화
- 차트 렌더링 성능 개선
- 메모리 사용량 최적화
예상 소요시간: 1-2일
- 로딩 스피너 및 프로그레스 바 추가
- 에러 처리 및 사용자 피드백 개선
- 도움말 및 가이드 섹션 추가
- 키보드 단축키 지원
- 모바일 환경 최적화
- 태블릿 환경 테스트 및 조정
- 다양한 화면 크기 대응
- 기능별 테스트 케이스 작성 및 실행
- 사용자 매뉴얼 작성
- 코드 주석 및 문서화 완료
- 배포 가이드 작성
예상 소요시간: 1-2일
- 통계적 분석 (상관관계, 회귀분석)
- 예측 모델링 (시계열 예측)
- 벤치마킹 기능
- 실시간 데이터 연동 API
- 데이터 업로드 기능
- 사용자별 데이터 필터링
- 자동 리포트 생성
- 이메일 리포트 발송
- 대시보드 공유 기능
예상 소요시간: 3-5일 (필요시)
- Frontend: Streamlit
- Data Processing: Pandas, NumPy
- Visualization: Altair
- Data Storage: JSON (향후 DB 확장 가능)
- IDE: VSCode 또는 PyCharm
- Version Control: Git
- Package Management: pip, requirements.txt
- Testing: pytest (단위 테스트)
- Local: streamlit run main.py
- Cloud: Streamlit Cloud, Heroku, AWS
- Container: Docker (선택사항)
| Phase | 기간 | 주요 산출물 |
|---|---|---|
| Phase 1 | 1-2일 | 프로젝트 셋업, data.json |
| Phase 2 | 1일 | main.py, 기본 레이아웃 |
| Phase 3 | 2-3일 | yearReport.py, 연도별 비교 |
| Phase 4 | 2-3일 | companyReport.py, 업체별 비교 |
| Phase 5 | 1-2일 | 고도화된 차트 및 시각화 |
| Phase 6 | 1-2일 | 최종 UI/UX, 테스트 |
| Phase 7 | 3-5일 | 확장 기능 (선택) |
총 예상 기간: 8-15일
- Altair 차트 성능 이슈: 데이터 크기 제한, 샘플링 적용
- Streamlit 멀티페이지 라우팅: session_state 활용한 상태 관리
- 데이터 구조 변경: 유연한 스키마 설계
- 요구사항 변경: 단계별 검토 및 승인
- 기술적 난이도: 프로토타입 우선 개발
- 테스트 시간 부족: 병렬 개발 및 테스트
- 사용자 경험: 지속적인 피드백 수집
- 성능 이슈: 점진적 최적화
- 확장성: 모듈화된 코드 구조
- ✅ 연도별/업체별 비교 모드 전환
- ✅ 안전/환경 지표 시각화
- ✅ 인터랙티브 차트 및 필터링
- ✅ 반응형 웹 디자인
- ✅ 3초 이내 페이지 로딩
- ✅ 모바일 환경 지원
- ✅ 직관적인 사용자 인터페이스
- ✅ 확장 가능한 코드 구조
이 개발 계획은 프로젝트 진행 상황에 따라 조정될 수 있습니다.