협력업체 작업허가·안전서류 관리 플랫폼
MVP 이후 확장 방향으로 협력업체 작업허가 신청·승인, 안전일지와 점검서류 작성·누락 검증, 엑셀·파일 묶음 내보내기, 긴급작업 접수, 공지·비상연락망, 감사 로그를 통합한 관리 플랫폼을 React와 Node.js 기반으로 설계하고 구현합니다.
프로젝트 개요
MVP 이후 확장 방향으로 협력업체 작업허가 신청·승인, 안전일지와 점검서류 작성·누락 검증, 엑셀·파일 묶음 내보내기, 긴급작업 접수, 공지·비상연락망, 감사 로그를 통합한 관리 플랫폼을 React와 Node.js 기반으로 설계하고 구현합니다.
작업 범위
- 작업허가 신청·승인: 협력업체가 보수작업 신청서, 작업자 명단, 위험성평가를 제출하고 담당자가 검토 후 승인 또는 보완요청합니다
- 안전일지·점검서류 관리: 작업 전 안전회의(TBM), 교육, 점검 기록을 작성·보관하고 항목 누락을 자동으로 검증합니다
- 문서 내보내기·감사 로그: 안전일지와 점검서류를 엑셀과 파일 묶음(zip)으로 내보내고 주요 행위를 감사 로그로 조회합니다
- 긴급작업·공지·비상연락망: 긴급 보수작업을 접수해 담당자에게 즉시 알리고 조치 결과를 기록하며, 공지사항과 비상연락망을 관리합니다
주요 업무
- 작업허가 신청·승인 화면: 신청 목록과 상세를 한 화면에 두고 검토 체크리스트, 보완요청 사유, 승인 이력을 인라인으로 처리합니다
- 안전일지·점검서류 관리 화면: 서류 유형별 필수 항목 정의를 데이터로 관리하고 제출 시 누락 검증 QC 결과를 함께 저장합니다
- 문서 내보내기·감사 로그 화면: 기간·현장·서류 유형 조건으로 내보내기 작업을 만들고 Redis 기반 큐에서 비동기로 생성합니다
- 긴급작업·공지·비상연락망 화면: 긴급 건은 우선순위 큐 상단에 고정하고 담당자 알림과 조치 기록을 한 상세 패널에서 처리합니다



프로젝트 핵심 과제
법정 서류 양식이 확정되지 않았으므로 양식 정의를 데이터로 분리하고 변경 관리 절차를 함께 설계할 계획
보완요청 후 재제출이 반복될 때 이전 검토 의견과 현재 입력의 대응 관계를 유지하는 버전 모델 설계
첨부 파일이 많은 서류 묶음을 zip으로 내보낼 때 메모리 사용을 억제하는 스트림 처리 설계
긴급작업 접수와 담당자 알림 사이의 이벤트 유실 방지와 재전달 정책 설계
핵심 기능 상세
작업허가 신청·승인
협력업체가 보수작업 신청서, 작업자 명단, 위험성평가를 제출하고 담당자가 검토 후 승인 또는 보완요청합니다. 신청 목록과 상세를 한 화면에 두고 검토 체크리스트, 보완요청 사유, 승인 이력을 인라인으로 처리합니다.
- 다단계 승인 워크플로우를 상태 전이 테이블로 정의하고 보완요청 후 재제출 경로 지원
- React Hook Form과 스키마 검증으로 신청서·명단·위험성평가 입력 검증
- 첨부 파일을 객체 저장소 업로드 서명 URL 방식으로 처리하고 메타데이터는 PostgreSQL에 저장
보완요청과 재제출을 버전으로 보관하여 검토 이력을 항목별 비교로 확인할 수 있는 구조를 구현합니다.


안전일지·점검서류 관리
작업 전 안전회의(TBM), 교육, 점검 기록을 작성·보관하고 항목 누락을 자동으로 검증합니다. 서류 유형별 필수 항목 정의를 데이터로 관리하고 제출 시 누락 검증 QC 결과를 함께 저장합니다.
- 서류 양식 정의를 JSON 스키마로 보관해 양식 변경 시 코드 수정 없이 항목 추가
- QC 검증기가 필수 항목·서명·첨부 누락을 규칙별로 판정하고 결과를 기록
- 서류 버전과 작성자·시각을 남기는 이력 테이블 설계
법정 양식이 확정되지 않은 상황을 고려하여 양식 정의를 데이터로 분리하고 누락 검증 규칙을 교체 가능한 구조로 설계합니다.


문서 내보내기·감사 로그
안전일지와 점검서류를 엑셀과 파일 묶음(zip)으로 내보내고 주요 행위를 감사 로그로 조회합니다. 기간·현장·서류 유형 조건으로 내보내기 작업을 만들고 Redis 기반 큐에서 비동기로 생성합니다.
- ExcelJS 스트리밍 쓰기로 대량 행을 메모리 사용을 억제하며 엑셀 생성
- 첨부 파일을 zip 스트림으로 묶고 서류 번호 기준 폴더 구조 적용
- 모든 변경 행위를 행위자·대상·변경 전후 값으로 저장하는 감사 로그 미들웨어
내보내기 작업을 큐와 진행 상태로 분리하여 대용량 요청에서도 화면이 멈추지 않는 구조를 구현합니다.


긴급작업·공지·비상연락망
긴급 보수작업을 접수해 담당자에게 즉시 알리고 조치 결과를 기록하며, 공지사항과 비상연락망을 관리합니다. 긴급 건은 우선순위 큐 상단에 고정하고 담당자 알림과 조치 기록을 한 상세 패널에서 처리합니다.
- 긴급도 가중치 정렬과 상단 고정 목록 쿼리
- 접수 즉시 담당자에게 알림 이벤트를 발행하는 Redis Pub/Sub 구독 구조
- 비상연락망을 현장·역할 단위로 조회하는 검색 및 필터 화면
접수·알림·조치 기록을 하나의 이벤트 흐름으로 연결하여 누락 없는 조치 이력을 남기는 구조를 설계합니다.


프로젝트 진행 단계
허가 승인 워크플로우와 서류 양식 모델링 · 2026.10
승인 상태 전이 테이블, 서류 양식 JSON 스키마, 이력 테이블 설계
신청·검토 화면과 보완요청 흐름 개발 · 2026.10
마스터-디테일 검토 화면, 보완요청과 재제출 버전 비교 구현
안전서류 QC 검증기와 작성 화면 구현 · 2026.10
TBM·교육·점검 서류 작성 폼과 누락 검증 규칙 엔진 구현
내보내기 큐·긴급작업 모듈 및 통합 점검 · 2026.10
Redis 큐 엑셀·zip 생성, 감사 로그, 긴급 접수 알림과 API 통합 테스트 작성
개발 결과
기술적 주안점
- 보완요청과 재제출을 버전으로 보관하여 검토 이력을 항목별 비교로 확인할 수 있는 구조를 구현합니다
- 법정 양식이 확정되지 않은 상황을 고려하여 양식 정의를 데이터로 분리하고 누락 검증 규칙을 교체 가능한 구조로 설계합니다
- 내보내기 작업을 큐와 진행 상태로 분리하여 대용량 요청에서도 화면이 멈추지 않는 구조를 구현합니다