← 전체 프로젝트

사내 서비스 · 인사 업무 · 운영 중

인사평가 배포·이의제기 시스템

평가 결과 전달과 이의제기를 연결한 ERP 업무 시스템

양식 유지 · 전달과 이의제기 통합
Excel + ERP
합성 평가 데이터 DB 저장 검증
1,000명
이의제기 REST API
13개

개선 전

  • 개인별 Excel 파일을 따로 전달
  • DM으로 이의제기를 받아 진행 상태를 추적
  • 대량 평가 처리 중 간헐적인 저장 오류 보고

개선 후

  • Excel 양식을 유지하면서 결과 전달과 이의제기를 ERP로 연결
  • 발송 시점별 Snapshot으로 전달한 평가 결과 보존
  • 핵심 DB 저장과 WORKS 후속 알림 분리
  • 1,000명 합성 평가 데이터의 전원 DB 저장 검증

프로젝트 배경

인사팀이 개인별 Excel 파일을 만들어 전달하고 DM으로 이의제기를 관리했습니다. 평가 기준이 달라지는 업무 특성을 고려해 기존 Excel 양식은 유지하고, 결과 매칭·개인별 전달·이의제기 관리를 시스템화했습니다.

내 역할과 범위

업무 요구사항 구체화 · 화면·API·DB 설계 및 개발

2026.02 ~ 2026.03 · 이후 유지보수

기존 ERP 내부의 인사평가 기능을 설계·구현했습니다. ERP 전체 구축 실적이 아닙니다. 합성 데이터 검증 규모와 실제 운영 성과를 구분하며, 외부 알림의 전달 보장을 주장하지 않습니다.

해결할 문제

  1. 평가 결과 보존과 추가 문답

    평가 결과를 수정하더라도 구성원에게 실제 전달한 시점의 데이터가 보존되어야 했고, 초기 1:1 이의제기 구조는 추가 질문을 담기 어려웠습니다.

  2. 대량 저장과 외부 알림 처리 분리

    인사팀으로부터 대량 평가 처리 중 간헐적인 오류가 보고됐습니다.

구현한 내용

개인별 Excel 전달과 DM으로 나뉘어 있던 평가 업무를 ERP로 연결했습니다. 평가 결과 보존을 위한 데이터 구조부터 화면·API를 구현하고, 대량 저장과 외부 알림 처리를 개선했습니다.

  • 인사팀·기획자와 자동화 범위 협의, Excel 결과 매칭과 개인별 전달 구현
  • Snapshot 데이터 구조 및 관리자·구성원 화면 설계
  • 이의제기 상태 전이·메시지 타임라인·첨부파일·13개 API 개발
  • DB 저장과 외부 알림 분리, 오류 추적과 재시도 개선

접근 방식

  1. 평가 결과 보존과 추가 문답

    발송 시점별 Snapshot 구조를 설계하고, 기획자와 논의해 질문과 답변을 누적하는 메시지 구조로 구체화했습니다.

    전달 시점의 결과를 별도로 보존하고 추가 문답을 이어갈 수 있는 데이터 기반을 마련했습니다.

  2. 대량 저장과 외부 알림 처리 분리

    Nginx 전송 한도와 Prisma 트랜잭션 timeout을 조정하고, DB 저장 후 WORKS 알림을 후속 처리하도록 분리했습니다. 재시도·기존 알림 확인·실패 로그 추적을 적용했습니다.

    1,000명 합성 데이터의 전원 DB 저장을 확인했고, 개선 후 실제 사용에서 동일 오류가 재발하지 않았습니다. 알림 1,000건의 실제 수신이나 전달 보장을 검증한 것은 아닙니다.

시스템 구조

  1. 평가 입력Excel
  2. 결과 매칭API
  3. 시점별 보존Snapshot
  4. 문답·상태ERP

담당 기능을 중심으로 정리한 개념 흐름입니다.

화면·API
Next.js · React · 관리자와 구성원 화면
데이터 보존
PostgreSQL · Prisma · 발송 시점별 Snapshot
후속 처리
DB 저장 후 WORKS 알림 · 실패 재시도 및 로그
업무 규칙
대기 → 응답 중 → 완료 · 누적 메시지 구조

품질 관리와 검증

  • 1,000명 합성 데이터의 전원 DB 저장 확인. 알림 1,000건의 실제 수신 검증은 아님
  • Nginx 전송 한도와 Prisma 트랜잭션 timeout 조정
  • 알림 재시도·기존 알림 확인·실패 로그 추적
  • Zod 입력 검증과 UTC 서버의 KST 날짜 처리

사용 기술

  • Next.js
  • React
  • TypeScript
  • Node.js
  • PostgreSQL
  • Prisma
  • Nginx
  • Zod
  • AWS S3