📑 목차
대시보드 개요 KPI 요약 카드 상태별 현황 차트 프로젝트별 현황 「새로 등록」버튼 대시보드 쿼리 로직

📊 대시보드 화면 구성

페이지 최상단에 위치한 대시보드는 전체 개선 현황을 한눈에 보여줍니다. 4개의 KPI 카드와 2개의 차트 패널로 구성되어 있습니다.

KPI 요약 카드 (4종)

대시보드 상단에는 4개의 그라데이션 카드가 가로로 배치됩니다. 각 카드는 MySQL 집계 쿼리로 실시간 값을 계산합니다.

10

누적 개선 건수

8

이번 달 개선

3

오늘 개선

5

배포됨

카드SQL 집계의미
누적 개선 건수COUNT(*) FROM source_improvements시스템에 등록된 전체 개선 건수
이번 달 개선COUNT(*) WHERE date >= '월초'이번 달 1일부터 오늘까지 등록된 건수
오늘 개선COUNT(*) WHERE date = CURDATE()오늘 날짜로 등록된 건수
배포됨COUNT(*) WHERE status = '배포됨'운영 환경에 배포 완료된 개선 건수

🔴 상태별 현황 차트

왼쪽 패널에서는 5가지 상태(개발중, 완료, 테스트중, 배포됨, 롤백)별로 건수를 보여줍니다.

$dashboard_sql = "SELECT
    COUNT(*) as total,
    (SELECT COUNT(*) FROM source_improvements
     WHERE date >= '{$this_month_start}' AND date <= '{$today}') as this_month,
    (SELECT COUNT(*) FROM source_improvements
     WHERE date = '{$today}') as today,
    (SELECT COUNT(*) FROM source_improvements
     WHERE status = '개발중') as dev,
    (SELECT COUNT(*) FROM source_improvements
     WHERE status = '완료') as done,
    (SELECT COUNT(*) FROM source_improvements
     WHERE status = '테스트중') as testing,
    (SELECT COUNT(*) FROM source_improvements
     WHERE status = '배포됨') as deployed
FROM source_improvements";
💡 참고: 롤백 상태는 별도 집계되지 않지만, 목록 필터에서는 선택 가능합니다.

📁 프로젝트별 현황 (최근 30일)

오른쪽 패널에서는 5개 프로젝트별로 최근 30일간 등록된 개선 건수를 보여줍니다.

$project_sql = "SELECT project, COUNT(*) as cnt
FROM source_improvements
WHERE date >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY project";

$projects = array('아이엠플랫폼', 'SMS', 'ainote', 'nalara', '기타');

「새로 등록」버튼

대시보드 바로 아래에 위치한 파란색 버튼입니다. 클릭 시 등록 폼 페이지(admin_source_improvements_form.php)로 이동합니다.

<a href="admin_source_improvements_form.php"
   class="btn btn-primary">
    <i class="fa fa-plus"></i> 새로 등록
</a>

대시보드 쿼리 로직 상세

PHP: $today = date('Y-m-d'); / $this_month_start = date('Y-m-01');
단일 SELECT 문에서 서브쿼리 6개로 모든 KPI 한 번에 조회
mysqli_fetch_array()로 연관 배열 반환
각 카드에서 $dashboard['total'], $dashboard['deployed'] 등으로 출력