quuuuj/hrm
Hrm人事系统:Flowable审批流 + RAG知识库 + 智能问答
数智人事 (HRM System) – AI 강화 인사 관리
이것이 무엇인가
- Spring Boot 3.4(Java 17) 기반 백엔드와 Vue 2.6 + Element UI 프론트엔드로 구축된 풀스택 HRM(인사 관리) 플랫폼입니다.
- 일반적인 HR 기능(조직도, 직원 생애주기, 근태, 휴가, 연장근무, 급여, 사회보험, RBAC, 워크플로) 외에도 RAG 기반 지식 베이스를 내장하여 대규모 언어 모델(LLM) 서비스(DashScope 또는 OpenAI 호환)를 사용해 직원의 HR 질문에 답변할 수 있습니다.
의의
- 전통적인 엔터프라이즈 시스템을 전체 제품을 재작성하지 않고 생성형 AI 기능으로 업그레이드할 수 있는 방법을 보여줍니다.
- 프레임워크와 독립적으로 단위 테스트할 수 있는 순수 계산 도메인 로직(초과 근무, 급여)의 명확한 분리를 보여줍니다.
- Flowable 8.0 워크플로 엔진, Spring Security JWT 이중 토큰 인증, 의미 검색을 위한 벡터 저장소(PostgreSQL + pgvector) 통합의 실행 가능한 예제를 제공합니다.
핵심 기능
| 카테고리 | 주요 내용 |
|---|---|
| HR 핵심 | 조직/부서 관리, 직원 프로필, 세분화된 RBAC, 근태 및 출퇴근, 휴가 및 초과 근무 요청, 급여 및 사회보험 설정. |
| 워크플로 | Flowable 8.0 네이티브 통합, 워크플로 데이터용 별도 MySQL DB, 부수 효과(예: 휴가 잔여 일수 업데이트)를 위한 리스너. |
| AI 기반 Q&A | RAG 파이프라인: 문서 업로드 → MinIO 저장 → 청크 분할 → 임베딩(DashScope/OpenAI) → pgvector 벡터 DB → 의미 검색 → 직원 컨텍스트(부서, 역할)를 포함한 LLM 생성 답변. |
| 보안 | HttpOnly 이중 토큰(access + refresh) 쿠키 저장, Axios 인터셉터를 통한 자동 갱신, XSS 방어, Spring Security RBAC. |
| 인프라 | 다중 엔진 영속화: MySQL(비즈니스), PostgreSQL + pgvector(벡터), Redis(캐시 및 캡차), MinIO(객체 스토리지). |
| 관측성 | Swagger‑UI (OpenAPI 3.1) 자동 생성 문서, 출퇴근 분석용 ECharts 대시보드. |
아키텍처 개요
... (same as original) ...
기술 스택
| 계층 | 도구 및 버전 |
|---|---|
| 언어 | Java 17, JavaScript (ES6) |
| 백엔드 프레임워크 | Spring Boot 3.4.4, Spring Security 6.x, MyBatis‑Plus 3.5.10 |
| 워크플로 엔진 | Flowable 8.0.0 |
| AI 통합 | Spring AI 1.0.0 (spring‑ai‑alibaba 1.0.0.2), DashScope 또는 OpenAI API 호환 |
| 벡터 저장소 | PostgreSQL 16 + pgvector 확장 |
| 캐시 / 세션 | Redis 5.0 |
| 객체 저장소 | MinIO (S3‑compatible) |
| 프론트엔드 | Vue 2.6.14, Element UI 2.15.7, Vue‑Router 3.2, Vuex 3.6, Axios 0.25, ECharts 5.3 |
| 컨테이너화 | Docker Compose (MySQL, Redis, PostgreSQL, MinIO) |
| 문서 / API | SpringDoc OpenAPI 2.8 (Swagger UI) |
로컬 시작하기
- 미들웨어 시작
(MySQL 8.1, Redis 5, PostgreSQL 16 with pgvector, MinIO)docker compose -f docker/local/docker-compose.yml up -d - DB 스키마 가져오기
mysql -h 127.0.0.1 -P 3306 -uroot -p123456 hrm < db/mysql/hrm.sql mysql -h 127.0.0.1 -P 3306 -uroot -p123456 hrm_flowable < db/mysql/hrm_flowable.sql psql -h 127.0.0.1 -p 5432 -U hrm -d hrm_kb -f db/postgresql/knowledge_base.sql - Configure AI credentials (optional for the smart Q&A)
# create hrm-server/.env (see .env.example) LLM_API_KEY=
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트