비계·동바리 물량 산출 관리자 운영 플랫폼
MVP 이후 확장으로 업로드 도면 조회, 견적 요청 건별 고객 정보 관리, 산출 이력 분석, 산출 기준과 단가 설정, 알림 큐를 갖춘 관리자 운영 화면을 Node.js와 React 기반으로 구현합니다.
프로젝트 개요
MVP 이후 확장으로 업로드 도면 조회, 견적 요청 건별 고객 정보 관리, 산출 이력 분석, 산출 기준과 단가 설정, 알림 큐를 갖춘 관리자 운영 화면을 Node.js와 React 기반으로 구현합니다. 접수 현황과 도면 처리 로그를 한 화면에서 비교하며 견적 업무를 이어가는 구조를 설계합니다.
작업 범위
- 접수 현황 대시보드: 기간별 도면 업로드 수와 견적 요청 수를 차트로 보고, 우측 피드에서 새 접수와 변환 상태를 확인합니다
- 도면 조회 관리: 업로드된 도면을 업체·현장·상태별로 검색하고 뷰어로 열어 산출 결과와 수정 이력을 확인합니다
- 견적 요청 관리: 견적 요청 건별로 업체명·현장명·연락처와 첨부 산출 결과를 조회하고 상태와 담당자 메모를 관리합니다
- 산출 기준·단가 설정: 층고 여유값, 비계 산출 기준, 동바리 높이 구간과 단가를 관리자가 설정하고 버전별로 보관합니다
주요 업무
- 접수 현황 대시보드 화면: 집계용 Materialized View와 SSE 기반 처리 로그 피드로 좌우 듀얼 패널을 구성합니다
- 도면 조회 관리 화면: 서버 필터링 목록과 읽기 전용 뷰어 패널, 파일 보관 정책 설정으로 구성합니다
- 견적 요청 관리 화면: 상태 전이 규칙과 메모 이력, 엑셀 일괄 내보내기를 갖춘 요청 관리 화면으로 구현합니다
- 산출 기준·단가 설정 화면: 설정 버전 테이블과 적용 시점 관리, 변경 전후 비교 화면으로 구성합니다



프로젝트 핵심 과제
접수 집계 차트와 실시간 처리 로그 피드를 서로 다른 갱신 주기로 유지하는 이중 패널 상태 설계
산출 기준이 바뀌어도 과거 견적 결과가 달라지지 않
버전 고정과 재계산 정책 분리 설계 필요
고객 연락처 등 개인정보 컬럼의 마스킹과 조회 권한 분리 정책 설계
변환 실패·재처리 건을 관리자가 구분해 다시 큐에 올리는 운영 화면 흐름 설계
핵심 기능 상세
접수 현황 대시보드
기간별 도면 업로드 수와 견적 요청 수를 차트로 보고, 우측 피드에서 새 접수와 변환 상태를 확인합니다. 집계용 Materialized View와 SSE 기반 처리 로그 피드로 좌우 듀얼 패널을 구성합니다.
- PostgreSQL Materialized View로 일별·주별 접수 집계
- SSE로 변환·산출 상태 로그를 우측 피드에 푸시
- Recharts 합성 차트와 기간 필터의 URL 상태 동기화
집계 쿼리를 뷰로 분리하고 로그 피드를 SSE로 전달하여 대시보드의 두 패널이 독립적으로 갱신되는 구조를 설계합니다.


도면 조회 관리
업로드된 도면을 업체·현장·상태별로 검색하고 뷰어로 열어 산출 결과와 수정 이력을 확인합니다. 서버 필터링 목록과 읽기 전용 뷰어 패널, 파일 보관 정책 설정으로 구성합니다.
- 커서 기반 페이지네이션과 복합 필터 쿼리 빌더 설계
- AWS S3 사전 서명 URL로 원본 도면 접근 제어
- 읽기 전용 뷰어 컴포넌트를 P1 뷰어와 공유하는 구조 설계
원본 도면은 S3에 보관하고 서명 URL을 단기 발급하여 관리자 권한 범위 안에서만 열람되도록 설계합니다.


견적 요청 관리
견적 요청 건별로 업체명·현장명·연락처와 첨부 산출 결과를 조회하고 상태와 담당자 메모를 관리합니다. 상태 전이 규칙과 메모 이력, 엑셀 일괄 내보내기를 갖춘 요청 관리 화면으로 구현합니다.
- 요청 상태 전이를 상태 머신 테이블로 정의하고 검증
- Bull Queue로 접수 알림 메일 발송과 재시도 처리
- 연락처 컬럼 마스킹과 조회 권한 분리 설계
요청 상태 전이를 규칙 테이블로 관리하여 허용되지 않는 상태 변경을 서버에서 차단하는 구조를 설계합니다.


산출 기준·단가 설정
층고 여유값, 비계 산출 기준, 동바리 높이 구간과 단가를 관리자가 설정하고 버전별로 보관합니다. 설정 버전 테이블과 적용 시점 관리, 변경 전후 비교 화면으로 구성합니다.
- 산출 기준 값을 버전 테이블로 보관하고 요청 시점 버전을 고정
- Zod 스키마로 설정 폼과 서버 검증 규칙 공유
- Redis 캐시로 설정 조회를 처리하고 변경 시 무효화
산출 기준을 버전 단위로 보관하여 과거 산출 결과가 당시 기준으로 재현되도록 설계합니다.


프로젝트 진행 단계
관리자 권한·집계 모델 설계 · 2026.10
역할별 접근 정책, 접수 집계 Materialized View와 요청 상태 머신 테이블 설계
접수·도면 조회 화면 개발 · 2026.10
서버 필터 목록, S3 서명 URL 열람, 읽기 전용 뷰어 패널 구현
견적 요청 처리·알림 큐 개발 · 2026.10
상태 전이 검증, Bull Queue 알림 발송, 엑셀 일괄 내보내기 구현
산출 기준 버전 관리와 통합 점검 · 2026.10
설정 버전 테이블, Redis 캐시 무효화, 비교 화면과 통합 테스트 작성
개발 결과
기술적 주안점
- 집계 쿼리를 뷰로 분리하고 로그 피드를 SSE로 전달하여 대시보드의 두 패널이 독립적으로 갱신되는 구조를 설계합니다
- 원본 도면은 S3에 보관하고 서명 URL을 단기 발급하여 관리자 권한 범위 안에서만 열람되도록 설계합니다
- 요청 상태 전이를 규칙 테이블로 관리하여 허용되지 않는 상태 변경을 서버에서 차단하는 구조를 설계합니다