본 프로젝트는 기업의 KPI(핵심성과지표) 데이터를 입력받아 외부 KPI 수집 서버로 전송하고, 동시에 자체 데이터베이스에 기록하는 Spring Boot 기반 시스템입니다. 회사 정보와 다수의 KPI 항목을 폼으로 입력하면 항목별 달성률을 자동 계산하고 분야 코드에 따라 단위를 자동 매핑한 뒤, Lv2·Lv3 두 단계 규격으로 외부 서버에 REST 전송합니다. 자바프로그래밍기초 수업에서 시작해 JPA·MySQL 연동까지 단계적으로 확장한 과제입니다.
실제 동작 화면입니다. (외부 KPI 서버 미가용 구간은 데모용 데이터로 대체)
계층형(Controller–Service–Repository) 구조로 구성했습니다.
| 구성 | 설명 |
|---|---|
KpiController | REST API — POST /kpi 전송, GET /kpi/result 결과, GET /kpi/records DB 기록 |
HomeController | Thymeleaf 화면 라우팅 — 입력 페이지·결과 페이지 |
KpiService | 달성률 계산, 단위 매핑, Lv2·Lv3 JSON 빌드 및 RestTemplate 전송, 기록 저장 |
KpiRecord | JPA 엔티티 — 회사·분야코드·실적값·달성률·생성일시 컬럼 (@PrePersist 시각 자동기록) |
KpiRecordRepository | Spring Data JPA 리포지토리 — CRUD 자동 생성 |
Dto | KpiRequest·KpiResponse·KpiItem — 요청/응답/항목 데이터 전송 객체 |
templates/ | index(입력 폼)·result(결과) Thymeleaf 화면 |