U&TECH
㈜유앤테크
통합 발주관리 시스템
사용 매뉴얼
매뉴얼 v3 — 2026년 3월 29일 Firebase Cloud
발주서 관리 v3.4.47발주서 작성·관리·세금계산서·원가현황
계약대비발주 v1.2.22계약 대비 발주 분석·공사비·기성현황
자재코드매칭 V164자재 코드 학습·매칭 DB
본 매뉴얼은 웹 클라우드 기반으로 전환된 3개 시스템의
사용 방법을 처음 사용자도 쉽게 이해할 수 있도록 안내합니다.
🌐 서버 설치 없이 웹 브라우저에서 바로 접속하세요
접속 주소: https://untech-poju.web.app
변경 연혁 (Change History)
본 매뉴얼의 버전별 주요 변경 사항을 기록합니다. 매뉴얼 v3에서는 공사비현황, 기성현황, 원가현황 등 새로운 탭 기능이 대폭 추가되었습니다.
| 버전 | 날짜 | 구분 | 변경 내용 |
| 매뉴얼 v3.2 |
2026-05-08 |
전체 (정합성) |
매뉴얼 vs 실 시스템 의심 구간 1순위 5건 정정
- §2.3 데이터 저장 구조: 존재하지 않는
costPatterns 컬렉션 안내 제거 (실제 코드에 미존재 — 패턴 학습은 분개 데이터에서 도출)
- §8 세금계산서: 누락됐던 "📊 전체 현황표" 서브탭 §8.2 신설, 기존 §8.2 발주 대조표 → §8.3
- §3.3 매칭 결과: 매뉴얼의 3분류(매칭/유사/미매칭) → 코드의 실제 6분류(confirmed / learned / rule_matched / inferred / no_match / manual)로 수정
- §3.3 학습 저장 흐름: "클릭 시 자동 학습" → 실제 동작인 "확정 버튼 클릭" 흐름으로 정정 + 자동학습(V162+) 보충
- §3 V164 신규 기능 보강: §3.4 학습 분류 4종(CONFIRMED 추가)으로 확장, §3.5 자동백업 10분 토글 + 복원 진행 모달 보강, §3.6 학습DB 진단/변경이력 신설, §3.7 CSV 업로드 신설, §3.8 중복 코드 정리 신설
|
| 매뉴얼 v3.1 |
2026-05-08 |
전체 (보안) |
비밀번호 셀프 재설정 도입 — 비번 절차 정합화
- §2.2 "비밀번호 분실 시": 본인이 직접 재설정(권장)을 1순위로 정렬, 관리자 연락은 메일 미수신 시 보조 절차로 재배치
- §13.2 신규 직원 계정 등록: step 6 거짓 안내 ("최초 로그인 후 비밀번호 변경 가능") 정정 — 시스템 내부에 비밀번호 변경 화면이 없으며, 본인이 바꾸려면 로그인 화면의 "비밀번호를 잊으셨나요?" 링크로 본인 메일 재설정해야 함
- §13.2: Google 계정(Gmail/Workspace) 사용자의 SSO 로그인 옵션 안내 박스 신설 — Google SSO 사용 시 본 시스템에 별도 비번 없음
- §14 Q2 "로그인이 안 돼요": 셀프 재설정 절차를 1순위로, 메일 미수신 시 스팸함 확인 후 관리자 연락을 보조 절차로 재정렬
|
| 매뉴얼 v3 |
2026-03-29 |
v1.2.22 |
Tab5 공사비현황 신규 섹션 추가 — Google Style 디자인, 현장별 카드 레이아웃, 10컬럼 테이블(자재비/현장경비/인건비/안전관리/4대보험/간접비), 분리단가 기반 계약금액 계산, 원가예산 기반 원가율, 카드 헤더 기성률 뱃지, 접기/펼치기, 현장 필터, 엑셀 내보내기 |
| 매뉴얼 v3 |
2026-03-29 |
v1.2.22 |
Tab6 기성현황 신규 섹션 추가 — 연도별 토글 그룹화, 세로형 상세 모달, 3~7컬럼 엑셀 붙여넣기 입력, 수정/삭제 기능(관리자), 레거시 데이터 마이그레이션 가이드 |
| 매뉴얼 v3 |
2026-03-29 |
v3.4.47 |
원가현황 신규 섹션 추가 — 엑셀 붙여넣기 분개 입력, 5분류(자재비/인건비/현장간접비/현장지원비/본사간접비) 자동 매핑, 패턴 학습(업체-원가구분), 피벗 테이블(월별/업체별), 예산 설정 및 집행률 바, 관리자 vs 일반 사용자 권한, 3시트 엑셀 내보내기 |
| 매뉴얼 v3 |
2026-03-29 |
전체 |
Firebase 클라우드 실시간 공유 안내 강화 — 모든 탭에서 Firestore 기반 실시간 데이터 동기화를 명시적으로 설명 |
| 매뉴얼 v3 |
2026-03-29 |
전체 |
목차(TOC) 재구성, 각 섹션별 트러블슈팅 팁 추가, 초보자 친화적 단계별 설명 보강 |
| 버전 | 날짜 | 구분 | 변경 내용 |
| 매뉴얼 v2 |
2026-03 |
전체 |
초판 발행 — 시스템 개요, 로그인, V164 자재코드매칭, 계약대비발주, 발주서 작성/현황, 마스터 관리, 세금계산서, 통계/분석, 계약연결, 히스토리, 백업/복원, 팀 계정 관리, FAQ |
| 매뉴얼 v2 |
2026-03 |
v3.4.47 |
발주서 관리시스템 Firebase 클라우드 전환 완료, 미발주/재발주 체크 패널 안내, 인쇄/PDF 안내 |
| 매뉴얼 v2 |
2026-03 |
V164 |
자재코드매칭 Firestore 클라우드 전환 반영 |
매뉴얼은 시스템 기능이 추가될 때마다 버전업됩니다. 항상 최신 매뉴얼을 참조하세요.
매뉴얼 접속 주소: https://untech-poju.web.app/매뉴얼_발주서관리시스템_v2.html
v3 주요 변경 요약 다이어그램
v3.4.47
원가현황 (신규)
분개 입력·5분류 매핑
패턴 학습·피벗·예산
→
v1.2.22
공사비현황 (신규)
10컬럼 테이블·카드
기성률·원가율 뱃지
↔
v1.2.22
기성현황 (신규)
연도별 토글·세로 모달
엑셀 입력·수정/삭제
v3.4.47에서 입력한 원가 데이터 → v1.2.22 공사비현황에서 자동 집계
v1.2.22 기성현황에서 입력한 기성 데이터 → v1.2.22 공사비현황에서 자동 집계
목 차
📋 공통 — 시작 전 필수 확인
1.시스템 개요 및 특징
1.13개 시스템 소개
1.2시스템 연동 관계
1.3클라우드 전환 전/후 비교 (필독)
2.시작하기 — 웹 접속 및 로그인
2.1접속 방법
2.2로그인 (Firebase 인증)
2.3데이터 저장 구조 (Firestore 클라우드)
🔍 V164 — 자재 코드 스마트 매칭
3.V164 자재코드매칭 시스템
3.1~3.5화면구성 / 코드DB / 분석 / 학습 / 백업
📊 v1.2.22 — 계약대비발주 현황
4.계약대비발주 현황 시스템
4.1~4.6화면구성 / 계약서관리 / 분석 / 발주현황 / V164연동 / 백업
📦 v3.4.47 — 발주서 관리시스템
5.발주서 작성
6.발주 현황
7.마스터 관리
8.세금계산서
8-2통계/분석
8-3계약연결
8-4히스토리 (활동 로그)
💰 v1.2.22 — 공사비 현황 / 기성 현황 (v3 신규)
9.공사비 현황 (Tab5)
9.1화면 구성 및 카드 레이아웃
9.210컬럼 테이블 구조 (7행 x 10열)
9.3계약 행 — 분리단가 기반 자동 계산
9.4기성/원가/소장/비율 행 해설
9.5카드 접기/펼치기, 필터, 엑셀 내보내기
9.6트러블슈팅
10.기성 현황 (Tab6)
10.1화면 구성 및 연도별 토글
10.2기성 입력 — 수동 + 엑셀 붙여넣기
10.3현장명 클릭 — 세로형 상세 모달
10.4수정/삭제 (관리자 전용)
10.5필터, 엑셀 내보내기, 레거시 정리
10.6트러블슈팅
📈 v3.4.47 — 원가 현황 (v3 신규)
11.원가 현황
11.1개요 및 5분류 체계
11.2분개 입력 — 엑셀 붙여넣기
11.3패턴 학습 (업체-원가구분 자동 매핑)
11.4피벗 테이블 (월별/업체별)
11.5예산 설정 및 집행률
11.6관리자 vs 일반 사용자 권한
11.7엑셀/PDF 내보내기
11.8트러블슈팅
⚙️ 공통 — 관리 및 문제 해결
12.백업/복원
13.팀 계정 관리 (Firebase Authentication)
14.자주 묻는 질문 (FAQ)
1. 시스템 개요 및 특징
1.1 3개 시스템 소개
| 시스템 | 파일명 | 주요 기능 |
V164 자재코드매칭 |
자재코드매칭_V164_firebase.html |
자재 코드DB 관리, 내역서 품명/규격으로 자재코드 자동 매칭, 학습 기능 |
v1.2.22 계약대비발주현황 |
계약대비발주_v1_2_22_firebase.html |
계약서 등록, 계약 항목별 발주 비율 분석, V164 코드 연동 매칭, 공사비 현황(Tab5), 기성 현황(Tab6) |
v3.4.47 발주서관리시스템 |
발주서_관리시스템_v3_4_47_firebase.html |
발주서 작성·관리·인쇄, 업체·자재·현장 마스터, 세금계산서 대조, 원가 현황 |
1.2 시스템 연동 관계
V164
자재코드매칭
코드DB·학습DB
(Firestore 클라우드)
→
v1.2.22
계약대비발주현황
계약서 등록·공사비·기성
Firestore 저장
↔
v3.4.47
발주서관리시스템
발주서 작성·원가현황
Firestore 저장
| 연동 방향 | 내용 |
| V164 → V1.2.22 | 자재 코드DB·학습DB·규칙이 Firestore 클라우드에서 직접 공유. V1.2.22에서 "V163 코드 검증" 버튼으로 미매칭 항목 자동 보완 |
| V1.2.22 ↔ V3.4.47 | Firebase Firestore 클라우드에서 발주 데이터 실시간 공유. v3.4.47의 원가 데이터(costEntries)를 v1.2.22의 공사비/기성 현황에서 읽어 집계 |
| 공통 | Firebase 로그인 후 사용 (최초 1회, 이후 자동 유지) |
v3.4.47 / v1.2.22부터 Firestore 클라우드 전환 완료 — 모든 직원이 실시간으로 같은 데이터를 사용합니다. 별도 서버 실행 불필요.
1.3 클라우드 전환 전/후 비교 (신규 직원 필독)
| 항목 | 이전 방식 (v3.4.46) | 현재 방식 (v3.4.47) |
| 접속 방법 | server.bat 실행 → localhost:9090 | 웹 주소 바로 접속 |
| 데이터 저장 | 각 PC 브라우저 내부 | Firebase 클라우드 (전 직원 공유) |
| 로그인 | PC별 비밀번호 | 이메일/비밀번호 (Firebase) |
| 데이터 공유 | JSON 백업 파일로 교환 | 실시간 자동 공유 |
| 백업 필요성 | 필수 (PC 분실 시 데이터 소실) | 선택 (클라우드에 항상 보관) |
| 여러 PC 사용 | 불편 (매번 백업/복원 필요) | 어디서나 동일 데이터 |
2. 시작하기 — 웹 접속 및 로그인
server.bat 설치나 Python 설치 불필요! 웹 주소만 알면 됩니다.
2.1 접속 방법
| 화면 | 주소 |
| 메인 홈 (추천) | https://untech-poju.web.app |
| v3.4.47 발주서 관리시스템 | https://untech-poju.web.app/발주서_관리시스템_v3_4_47_firebase.html |
| v1.2.22 계약대비발주 | https://untech-poju.web.app/계약대비발주_v1_2_22_firebase.html |
| V164 자재코드매칭 | https://untech-poju.web.app/자재코드매칭_V164_firebase.html |
메인 홈(https://untech-poju.web.app)에서 각 시스템 카드를 클릭하면 바로 이동합니다. 북마크(즐겨찾기)에 저장해 두세요.
2.2 로그인 (Firebase 인증)
웹 주소 접속 시 로그인 화면이 자동으로 표시됩니다.
관리자로부터 받은 이메일 주소와 비밀번호를 입력합니다.
로그인 성공 시 시스템 메인 화면으로 전환됩니다.
이후 같은 브라우저에서는 자동 로그인 유지 (재로그인 불필요).
계정이 없으면 관리자(유수문님)에게 계정 등록 요청. 임의 가입 불가.
로그아웃은 우상단 "로그아웃" 버튼. 개인 PC에서는 로그아웃 없이 사용해도 됩니다.
비밀번호 분실 시
- 본인이 직접 재설정 (권장): 로그인 화면에서 이메일 입력 → "비밀번호를 잊으셨나요?" 링크 클릭 → 등록된 메일로 재설정 링크 발송 → 메일 링크에서 새 비밀번호 설정
- 메일이 안 오면 스팸함도 확인. 그래도 없으면 관리자(유수문님)에게 연락 → 관리자가 Firebase Console에서 직접 재설정 메일 재발송 가능
2.3 데이터 저장 구조 (Firestore 클라우드)
데이터는 Google Firebase 클라우드(Firestore)에 실시간 저장됩니다. PC를 교체해도, 다른 PC에서 접속해도, 항상 같은 최신 데이터를 볼 수 있습니다.
| 데이터 종류 | 저장 위치 | 특징 |
| 발주서, 업체, 자재, 현장 | Firebase Firestore | 전 직원 실시간 공유, 클라우드 영구 보관 |
| 계약서, 계약 항목 | Firebase Firestore | 동일 |
| 원가 분개, 예산 | Firebase Firestore | costEntries / costBudgets 컬렉션 (원가 패턴 학습은 별도 컬렉션 없이 분개 데이터에서 도출) |
| 기성 현황 | Firebase Firestore | costProgress 컬렉션 |
| 자재 코드DB (V164) | Firebase Firestore | 전 직원 실시간 공유 |
| 학습DB, 매칭규칙 (V164) | Firebase Firestore | 전 직원 실시간 공유 |
| 로그인 세션 | 브라우저 (Firebase Auth) | 자동 유지 |
데이터가 사라지는 경우는 거의 없습니다. Firebase 클라우드는 99.99% 가용성을 보장합니다.
3. V164 자재코드매칭 시스템 V164
내역서(견적서)의 품명·규격을 코드DB와 비교하여 자재 코드를 자동 매칭하고, 매칭 결과를 학습하여 다음 분석 시 정확도를 높이는 시스템입니다.
3.1 화면 구성
| 영역 | 설명 |
| 상단 상태바 | LEARNED (학습건수) / RULES (자동규칙 수) / 코드DB N건 |
| ① 발주서(기준) | 코드DB 패널. 자재코드/품명/규격 목록 (3열 형식) |
| ② 내역서(대상) | 매칭 대상 내역서 붙여넣기 영역 (품명/규격 2열 형식) |
| 분석 시작 버튼 | 코드DB와 내역서를 비교하여 자동 매칭 실행 |
| 우상단 아이콘 | 백업 내보내기 / 백업 가져오기(복원) |
3.2 코드DB 관리
① 코드DB 불러오기
엑셀에서 코드 / 품명 / 규격 3열 데이터를 선택하고 복사(Ctrl+C)합니다.
① 발주서(기준) 패널의 빈 영역에 붙여넣기(Ctrl+V)하거나, 업로드 버튼으로 CSV 파일을 업로드합니다.
상단에 코드DB N건 표시되면 로드 완료입니다.
3.3 내역서 분석 및 코드 매칭
매칭할 내역서에서 품명 / 규격 2열을 선택하고 복사(Ctrl+C)합니다.
② 내역서(대상) 패널에 붙여넣기(Ctrl+V)합니다.
결과 목록에서 매칭 상태를 확인합니다 (총 6단계):
- confirmed (확정): 사용자가 이전에 "확정" 버튼으로 직접 연결한 품명 → 자동 매칭
- learned (학습): 학습DB의 정확 일치 또는 매우 높은 유사도 매치
- rule_matched (규칙 일치): 키워드 패턴 규칙(RULES)에 의한 매치
- inferred (추정): 코드DB의 품명·규격 유사도 기반 낮은~중간 확률 매치 (검토 권장)
- no_match (미매칭): 코드DB·학습DB·규칙 모두에서 발견되지 않음 (수동 처리 필요)
- manual (수동): 사용자가 이번 분석에서 직접 선택한 결과
검토 후 결과를 학습DB에 저장하려면 항목별 "확정" 버튼을 클릭합니다. 확정한 품명+규격은 다음 분석 시 자동으로 confirmed로 표시됩니다.
미매칭(no_match) 항목은 코드DB에서 직접 선택하여 연결한 후 "확정"하면 학습됩니다. 또한 "이 품명은 코드DB에 없음"으로 명시적 학습도 가능 — 다음 분석 시 자동으로 no_match로 분류됩니다.
자동학습 (V162부터): 분석 시 confirmed/learned 결과 일부는 사용자가 "확정" 누르지 않아도 백그라운드로 학습DB에 자동 저장됩니다. 분석을 거듭할수록 정확도가 가속됩니다.
3.4 학습 기능 (LEARNED / RULES / CONFIRMED / INFERRED)
| 분류 | 설명 |
| CONFIRMED (확정) | 사용자가 "확정" 버튼으로 직접 검증한 품명+규격 매치. 가장 신뢰도 높음 |
| LEARNED (학습) | 이전에 매칭된 품명을 기억. 정확 일치/높은 유사도 매치 시 자동 적용 |
| RULES (규칙) | 특정 키워드 패턴에 코드를 자동 연결하는 규칙. 빠른 일괄 매칭 가능 |
| INFERRED (추정) | 코드DB의 품명·규격 유사도 기반 낮은~중간 확률 매치. 검토 후 "확정" 권장 |
학습이 쌓일수록 자동 매칭 정확도가 높아집니다. 자동학습(V162+)으로 사용자 확정 없이도 일부 결과가 자동 저장되며, "확정" 버튼을 적극 활용할수록 confirmed 비중이 늘어 향후 매칭이 빨라집니다.
3.5 V164 백업 및 복원
V164부터 코드DB·학습DB·규칙이 Firestore 클라우드에 저장됩니다. PC 교체 시에도 동일한 데이터를 사용할 수 있습니다.
수동 백업 (내보내기)
우상단 💾 백업 또는 "통합 백업 저장" 버튼을 클릭합니다.
JSON 백업 파일(자재매칭_통합백업_YYYY-MM-DD.json)이 다운로드됩니다. (코드DB + 학습DB + 규칙 포함)
자동 백업 (10분 간격)
V164에는 자동 백업 토글이 있어 ON 상태에서는 사용자 조작 없이 10분마다 JSON 백업이 자동으로 다운로드됩니다. 작업 중 데이터 분실을 방지하기 위한 안전장치입니다. 다운로드 폴더에 파일이 누적되므로 주기적으로 정리하세요.
복원 (가져오기)
우상단 불러오기 버튼을 클릭하거나 백업 JSON 파일을 화면에 드래그합니다.
저장해 둔 V164 백업 JSON 파일을 선택하면 진행 상황 모달이 표시됩니다 (학습DB / 코드DB / 규칙 3단계).
3.6 학습DB 진단 / 코드DB 변경이력
V165 메뉴에서 "학습DB 진단 모달"을 열면 최근 코드DB 변경이력 50건(추가/수정/삭제)을 조회할 수 있습니다. 학습 결과가 예상과 다를 때 어떤 변경이 있었는지 확인하는 디버깅 도구입니다.
3.7 CSV 파일 업로드 (코드DB 일괄 등록)
엑셀 붙여넣기 외에도 "업로드" 버튼으로 CSV/TSV 파일을 직접 업로드할 수 있습니다 (V158-2부터). 대용량 코드DB 일괄 등록 시 편리합니다. 업로드된 데이터는 기존 코드DB에 병합되며, 중복 코드는 다음 절(§3.8)의 정리 기능으로 처리합니다.
3.8 중복 코드 자동 정리
V164 메뉴의 "코드DB 중복 정리" 기능은 동일·유사한 코드를 자동으로 감지해 통합 후보를 제시합니다. 코드DB가 커질수록 중복이 누적되므로 주기적으로 정리하면 매칭 정확도가 향상됩니다.
4. 계약대비발주 현황 시스템 v1.2.22
공사현장별 계약서를 등록하고, 발주서 데이터와 연결하여 계약 항목별 발주 집행률을 실시간 분석하는 시스템입니다.
4.1 화면 구성 및 탭 설명
| 탭 | 기능 |
| 대시보드 | 현장별 계약금액·발주금액·실행률 한눈에 확인 |
| 계약서 관리 | 계약 내역서 등록, 항목별 코드 매칭, V164 연동 |
| 계약대비발주 | 계약 항목별 발주 집행률 상세 분석 |
| 발주현황 | 코드별·현장별 발주 집계 현황 |
| 공사비 현황 | 현장별 공사비 집행 비교 (10컬럼 테이블) v3 신규 |
| 기성 현황 | 월별 기성 청구 관리 (연도별 토글) v3 신규 |
| 백업/복원 | 데이터 백업 및 복원 (Firestore 기반) |
4.2 계약서 관리
① 계약서 신규 등록
계약 내역서(엑셀)의 항목을 복사하여 붙여넣기합니다.
"저장"을 클릭합니다. Firestore에 즉시 저장됩니다.
4.3 계약대비발주 분석
계약대비발주 탭 → 상단 현장 선택 드롭다운에서 분석할 현장을 선택합니다.
각 항목 행을 클릭하면 해당 항목의 발주서 상세 목록이 표시됩니다.
4.5 V164 코드 연동
v1.2.22부터 발주 데이터는 Firebase Firestore에서 자동 로드됩니다. 별도 백업 파일 가져오기 불필요.
V164 학습DB 업데이트 후 V1.2.22에서 학습DB 새로고침 버튼을 눌러 최신 데이터를 반영하세요.
4.6 백업 및 복원
Firestore 클라우드에 자동 저장되므로 필수 백업은 불필요합니다. 중요한 시점(월말, 분기말)에 JSON 백업을 다운로드해 두는 것을 권장합니다.
"전체 백업 다운로드"를 클릭하여 JSON 파일을 저장합니다.
복원 시: 복원 영역에 JSON 파일 드래그 또는 선택합니다.
5. 발주서 작성 v3.4.47
발주서 작성 탭은 시스템의 핵심입니다. 업체를 선택하고 품목을 입력한 후 저장하면 Firestore 클라우드에 즉시 보관됩니다.
저장 전 반드시 "미발주/재발주 품목 체크"로 수량·단가 누락 여부를 확인하세요!
5.1 새 발주서 작성 순서
STEP 1 — 업체(공급자) 선택
화면 우측 "공급자" 검색창에 업체명 또는 초성을 입력합니다.
예) "삼" 입력 → "삼보자재", "삼광건설" 등 목록 자동 표시
드롭다운에서 업체를 선택하면 사업자번호, 주소, 담당자, 계좌번호가 자동으로 채워집니다.
업체가 목록에 없으면 마스터 관리 → 업체관리 탭에서 먼저 등록하세요. 등록 즉시 모든 직원 화면에 반영됩니다.
STEP 2 — 헤더 정보 입력
| 항목 | 설명 | 비고 |
| 발주번호 | 저장 시 자동 생성 (예: PO-20260315-001) | 자동 |
| 발주일자 | 오늘 날짜 자동 입력, 클릭하여 수정 가능 | 자동 |
| 현장명 | 드롭다운에서 등록된 현장 선택 (필수) | 필수 |
| 납기요청일 | 기본값: 오늘 + 3일. 엑셀 붙여넣기 시 날짜 숫자 자동 변환 | - |
| 납기장소 | 현장 선택 시 현장주소 자동 입력, 수정 가능 | 자동 |
| 비고 | 발주서 상단 참고사항 자유 입력 | - |
5.2 품목 입력 방법
방법 A — 직접 입력 (소량 품목)
"+ 품목 행 추가" 버튼을 클릭하면 새 행이 추가됩니다.
각 셀을 클릭하여 입력합니다:
| 컬럼 | 입력 내용 | 비고 |
| 자재코드 | V164 코드DB의 자재코드 입력 | 없으면 공란 가능 |
| 품명 | 자재 품명 | 필수 |
| 규격 | 자재 규격 (예: 25x6M) | - |
| 단위 | EA, M, KG, SET 등 | - |
| 수량 | 발주 수량 (숫자) | 0이면 미발주로 체크됨 |
| 단가 | 단가 (숫자, 원 단위) | 0이면 재발주 체크됨 |
| 금액 | 수량 x 단가 자동계산 | 자동 |
행을 삭제하려면 해당 행 우측 "X" 버튼을 클릭합니다.
방법 B — 엑셀에서 복사 붙여넣기 (다량 품목, 권장)
엑셀에서 품목 데이터(자재코드, 품명, 규격, 단위, 수량, 단가 등)를 선택하고 Ctrl+C로 복사합니다.
발주서 하단의 "엑셀에서 품목 복사 붙여넣기로 일괄 추가" 패널을 클릭하여 펼칩니다.
패널 안의 텍스트 영역에 Ctrl+V로 붙여넣기합니다.
열 매핑 드롭다운에서 각 열이 어떤 항목인지 확인·조정합니다.
"품목 추가" 버튼을 클릭하면 한 번에 여러 행이 입력됩니다.
엑셀의 날짜 숫자(예: 46027)는 자동으로 날짜(2026-01-05)로 변환됩니다. 납기일 입력 시 유용합니다.
엑셀에서 복사 시 수량 또는 단가가 비어 있으면 0으로 입력됩니다. 붙여넣기 후 반드시 5.5절의 "미발주/재발주 품목 체크"를 실행하세요.
5.3 발주서 저장 및 인쇄
품목 입력 완료 후 "발주서 저장" 버튼을 클릭합니다.
저장 성공 시 발주번호(PO-YYYYMMDD-NNN)가 자동 부여되고, Firestore에 즉시 저장됩니다.
저장 즉시 다른 직원 화면에도 반영됩니다 (F5 새로고침 후 확인).
인쇄 시 "인쇄 미리보기" 버튼 클릭 → 인쇄 창에서 Ctrl+P를 누릅니다.
인쇄 설정: 용지 A4, 여백 기본값, 배경 그래픽 옵션 체크 (도장·로고 인쇄를 위해 필수).
5.4 발주서 상태 관리
각 발주서에 상태를 지정하여 처리 현황을 관리할 수 있습니다.
| 상태 | 의미 | 사용 시점 |
| 신규 | 발주서 작성 직후 기본 상태 | 발주서 저장 시 자동 지정 |
| 진행 | 업체에 발주 완료, 납품 대기 중 | 발주 확인 후 수동 변경 |
| 완료 | 납품 완료 또는 세금계산서 처리 완료 | 납품 확인 후 수동 변경 |
| 취소 | 발주 취소됨 | 발주 취소 시 수동 변경 |
발주 현황 탭에서 해당 발주서 행을 클릭하여 열기
5.5 미발주/재발주 품목 체크 (저장 전 필수 확인!)
발주서 작성 중 수량이 0이거나 단가가 0인 품목이 있으면 자동으로 경고 패널이 표시됩니다.
이 기능으로 실수로 빠뜨린 수량·단가를 저장 전에 반드시 점검하세요.
| 구분 | 조건 | 의미 및 조치 |
| 수량=0 | 수량 항목이 0 | 미발주 품목. 실제 발주 수량을 입력하거나, 의도적 샘플이면 "재발주 대상 제외" |
| 단가=0 | 단가 항목이 0 | 단가 미입력. 업체 견적 확인 후 단가 입력 필요 (금액=0으로 발주서 인쇄됨) |
| 샘플/무상 | 품명에 "샘플", "무상" 포함 | 자동으로 재발주 대상에서 제외됨 |
체크 패널 버튼 기능
| 버튼 | 동작 |
| 전체선택 | 모든 품목 체크 |
| 전체해제 | 모든 체크 해제 |
| 재발주 대상만 | 샘플/무상 제외, 수량/단가=0 품목만 자동 선택 |
| 체크항목 엑셀 | 선택한 품목을 엑셀 파일로 다운로드 (재발주 요청서 활용) |
| 클립보드 복사 | 선택 품목을 탭 구분 형식으로 복사 (메일·메모장에 바로 붙여넣기) |
수량=0 또는 단가=0인 채로 저장하면 발주서에 금액이 0원으로 인쇄됩니다.
실수 발주를 방지하기 위해 저장 전 이 체크 패널을 반드시 확인하세요.
실무 활용 팁: 엑셀에서 품목을 붙여넣기한 직후, "재발주 대상만" 버튼을 눌러 빠진 항목을 즉시 확인하고 "체크항목 엑셀"로 보완 요청 목록을 뽑으세요.
6. 발주 현황 v3.4.47
저장된 모든 발주서를 목록으로 조회, 편집, 삭제하고 다양한 형식으로 내보내는 탭입니다.
6.1 발주서 목록 조회 및 기본 필터
| 필터 항목 | 사용법 | 팁 |
| 검색창 | 업체명, 현장명, 발주번호, 품명 등 자유 검색 | 두 글자 이상 입력 시 즉시 필터링 |
| 현장 선택 | 특정 현장의 발주서만 표시 | 보라색 테두리 드롭다운 |
| 상태 선택 | 신규 / 완료 / 취소 | "신규" 선택 시 미처리 발주서만 확인 |
| 날짜 범위 | 발주일 기준 시작일~종료일 | 이번 달 발주 조회 시 활용 |
6.2 고급 필터
① 계약연결 상태 필터 (초록색 테두리 드롭다운)
| 옵션 | 의미 | 활용 |
| 미연결 | 발주서의 품목이 계약코드와 하나도 연결 안 됨 | 계약연결이 필요한 발주서 목록 파악 |
| 일부연결 | 일부 품목만 계약코드와 연결됨 | 계약연결 미완료 발주서 추적 |
| 전체연결 | 모든 품목이 계약코드와 연결됨 | 집계가 완전히 반영되는 발주서 확인 |
| 코드없는품목 포함 | 자재코드가 없는 품목이 포함된 발주서 | 코드 입력이 필요한 발주서 식별 |
② 품목상태 필터 (빨간 테두리 드롭다운)
| 옵션 | 의미 | 활용 |
| 수량/단가=0 포함 | 한 품목이라도 수량 또는 단가가 0인 발주서 | 미발주/재발주 대상 발주서 전체 조회 |
| 수량=0 포함 | 수량이 0인 품목이 있는 발주서 | 미발주 확인 |
| 단가=0 포함 | 단가가 0인 품목이 있는 발주서 | 단가 미입력 발주서 찾기 |
| 전부 정상 | 수량, 단가 모두 정상인 발주서만 | 정상 처리된 발주서만 집계 시 활용 |
신규 입사자 체크포인트: "수량/단가=0 포함" 필터로 전체 미발주 발주서를 한 번에 확인하고, 각 발주서를 열어 5.5절의 체크 기능으로 수정하세요.
6.3 발주서 편집 및 삭제
발주서 작성 탭으로 자동 이동하며 해당 발주서가 로드됩니다.
내용 수정 후 "발주서 저장"을 클릭합니다. 기존 데이터가 덮어씌워집니다.
삭제 시: 발주서 하단 "삭제" 버튼 클릭 → 확인 팝업에서 승인합니다.
삭제한 발주서는 복구가 어렵습니다. 삭제 전 반드시 확인하세요. 취소 상태로 변경 후 보관하는 것을 권장합니다.
6.4 엑셀 내보내기 종류
발주 현황 탭 상단에 4가지 내보내기 버튼이 있습니다. 현재 필터 조건이 적용된 데이터가 내보내집니다.
| 버튼 | 파일 내용 | 활용 용도 |
| CSV 요약 | 발주서별 요약 (발주번호, 업체, 현장, 합계금액) | 현황 빠른 확인, 경량 데이터 |
| 품목상세 엑셀 | 모든 발주서의 품목 행 전체 (자재코드·품명·수량·단가 포함) | 품목별 집계, 회계 처리 |
| 자재현황 엑셀 | 자재코드별 발주 현황 집계 (동일 코드 발주 합산) | 자재 사용량 분석, 재고 관리 참고 |
| ERP 발주집계표 | ERP 입력용 형식으로 정리된 발주 집계표 | 외부 ERP 시스템 연동, 회계 부서 제출 |
실무 팁: 월말 마감 시 "품목상세 엑셀"로 해당 월 전체 발주 내역을 내려받아 회계팀에 전달하세요. "현장 선택" 필터로 현장별 내보내기도 가능합니다.
6.5 납기일 날짜변환
엑셀에서 날짜를 복사·붙여넣기하면 납기일이 숫자(예: 46027)로 저장되는 경우가 있습니다.
이 경우 발주서에 납기일이 숫자로 인쇄됩니다. 아래 방법으로 일괄 변환하세요.
발주 현황 탭 검색 영역 우측의 "납기일 날짜변환" 버튼을 클릭합니다.
시스템이 전체 발주서를 검사하여 숫자 형태의 납기일을 날짜(YYYY-MM-DD)로 자동 변환합니다.
변환 완료 메시지에서 처리된 건수를 확인합니다.
v3.4.47부터 붙여넣기 시 자동 변환되지만, 이전에 입력된 데이터가 숫자로 남아 있는 경우 이 버튼으로 일괄 정리하세요.
7. 마스터 관리 v3.4.47
업체, 자재, 현장 기준 데이터를 관리합니다. 모든 데이터는 Firestore에 즉시 저장되어 전 직원이 공유합니다.
발주서 작성 전에 업체·현장을 먼저 등록해 두어야 발주서 작성이 원활합니다.
7.1 업체 관리
① 업체 신규 등록
마스터 관리 → 업체관리 서브탭을 클릭합니다.
"+ 업체 추가" 버튼을 클릭하면 입력 폼이 표시됩니다.
| 항목 | 설명 | 필수 |
| 업체명 | 업체 상호명 (발주서·세금계산서에 표시됨) | 필수 |
| 사업자번호 | 000-00-00000 형식. 세금계산서 자동 매칭에 필수 | 필수 |
| 대표자 | 대표자 이름 (발주서 인감란에 표시) | - |
| 업태/종목 | 사업 분류 | - |
| 주소 | 업체 주소 | - |
| 담당자명 / 전화 / 팩스 | 연락 담당자 정보 | - |
| 이메일 | 발주서 이메일 전송 시 사용 | - |
| 은행 / 계좌번호 | 대금 지급 계좌 정보 | - |
사업자번호를 정확히 입력해야 세금계산서 탭에서 자동 매칭이 됩니다. 반드시 000-00-00000 형식으로 입력하세요.
② 업체 검색 및 수정
- 업체관리 탭 상단 검색창에서 업체명 또는 사업자번호로 검색합니다.
- 목록에서 업체를 클릭하면 수정 폼이 열립니다. 수정 후 "저장"을 클릭합니다.
- 삭제 시 "삭제" 버튼을 클릭합니다. 해당 업체로 작성된 발주서는 삭제되지 않습니다.
7.2 현장 관리
① 현장 신규 등록
마스터 관리 → 현장관리 서브탭을 클릭합니다.
| 항목 | 설명 | 필수 |
| 현장명 | 현장 식별 이름 (발주서 현장 선택 드롭다운에 표시됨) | 필수 |
| 현장주소 | 발주서 작성 시 납기장소에 자동 입력됨 | 권장 |
| 현장소장 | 소장 이름 및 연락처 | - |
| 발주처 | 원청사/시행사 이름 | - |
| 공사 기간 | 착공일~준공일 | - |
현장주소를 등록해 두면 발주서 작성 시 현장 선택만으로 납기장소가 자동 채워집니다. 매번 직접 입력할 필요가 없습니다.
7.3 자재 관리
자주 사용하는 자재(품명·규격·단위·단가)를 등록해 두면 발주서 작성 시 자재 검색으로 빠르게 입력할 수 있습니다.
① 자재 신규 등록
마스터 관리 → 자재관리 서브탭을 클릭합니다.
| 항목 | 설명 | 필수 |
| 자재코드 | V164 코드DB와 일치하는 코드 입력 (계약연결에 사용) | 필수 |
| 품명 | 자재 품명 | 필수 |
| 규격 | 자재 규격 (예: 25x6M, 100x100) | - |
| 단위 | EA, M, KG, SET, BOX 등 | - |
| 기준단가 | 발주서 입력 시 기본 단가로 자동 입력됨 | - |
실무 팁: 자재 마스터에 기준단가를 입력해 두면, 발주서에서 자재코드로 검색 시 단가가 자동 채워집니다. 견적 시간을 단축할 수 있습니다.
8. 세금계산서 v3.4.47
업체로부터 받은 세금계산서를 등록하고, 발주 금액과 대조하여 청구 현황을 관리합니다.
세금계산서 탭은 3개의 서브탭으로 구성됩니다: "등록/관리" · "📊 전체 현황표" · "🔗 발주 대조표"
8.1 세금계산서 등록 (등록/관리 서브탭)
세금계산서 → "등록/관리" 서브탭을 클릭합니다.
홈택스 또는 전자세금계산서에서 내용을 복사합니다.
텍스트 입력 영역에 붙여넣기(Ctrl+V)합니다.
"파싱 미리보기" → 내용 확인 → "입력 완료 (저장)"을 클릭합니다.
8.2 📊 전체 현황표 (서브탭)
등록된 세금계산서 전체를 한눈에 조회·필터링·내보내기 할 수 있는 서브탭입니다. 등록 직후 정확한 입력 여부를 빠르게 검증할 때, 또는 월말·분기말 정산 자료를 추출할 때 사용합니다.
- 발행일자 / 업체 / 공급가 / 세액 / 합계 / 비고 등 등록된 모든 필드를 표 형태로 표시
- 업체·기간·청구처 등 필터로 좁혀서 조회 가능
- 엑셀 내보내기 지원
8.3 🔗 발주 대조표 (서브탭) — 청구율 확인
| 컬럼 | 설명 |
| 발주금액 | 해당 업체로의 발주서 금액 합계 |
| 세금계산서 공급가 | 등록된 세금계산서 공급가액 합계 |
| 차이 | 발주금액 - 세금계산서 공급가 |
| 청구율 | 세금계산서 / 발주금액 x 100% |
| 상태 | 조건 | 의미 |
| 100% 일치 | 차이 0원 | 완전 청구 |
| 분할납품 | 세금계산서 < 발주금액 | 미청구 금액 있음 |
| 초과청구 | 세금계산서 > 발주금액 | 확인 필요 |
8-2. 통계/분석 탭 v3.4.47
발주 데이터를 기간·현장·업체별로 집계하여 경영 현황을 분석하는 탭입니다.
테이블 행을 클릭하면 해당 조건으로 자동 필터링되는 인터랙티브 방식입니다.
화면 상단 — 필터 조건
| 필터 | 설명 |
| 기간 (년/월) | 연도·월 선택. 월을 "전체월"로 선택하면 연간 합계 표시 |
| 현장 | 특정 현장만 집계. "전체현장" 선택 시 모든 현장 합산 |
| 업체 | 특정 업체만 집계 |
| 상태 | 신규/완료/취소 필터 |
| 엑셀 내보내기 | 현재 필터 조건의 통계 결과를 엑셀로 저장 |
KPI 카드 (4개)
| 카드 | 표시 내용 |
| 총 발주건수 | 조회 기간의 발주서 총 건수 |
| 총 발주금액 | 공급가액 합계 (VAT 제외) |
| 평균 발주금액 | 발주서 1건당 평균 금액 |
| 완료율 | 전체 중 완료 상태 비율 (%) |
월별 발주 현황 테이블
- 년월, 발주건수, 공급가액, VAT포함, 완료건, 신규건을 월별로 표시
- 행 클릭 → 해당 월로 자동 필터링. 다시 클릭 시 해제
- 전년 동월과 비교하여 증감 추세 파악에 활용
현장별 / 업체별 발주 현황
| 테이블 | 컬럼 | 활용 |
| 현장별 | 현장명, 건수, 공급가액 | 현장별 발주 규모 비교, 예산 집행 현황 파악 |
| 업체별 | 업체명, 건수, 공급가액 | 주요 협력사 거래 규모 확인, 업체 의존도 분석 |
업체별 테이블에서 업체 행을 클릭하면, 화면 아래 "자재 상세 분석" 카드가 열리며 해당 업체로 발주한 자재 현황을 상세히 확인할 수 있습니다.
자재 상세 분석 (업체 클릭 시 표시)
- 선택 업체의 자재코드별 발주 건수·금액 집계
- 동일 자재를 반복 발주한 이력 확인 가능
- 단가 추이 분석 (동일 자재의 발주 단가 변동 확인)
- X 닫기 버튼으로 상세 패널 닫기
월말 정산 시 "업체별 발주 현황"에서 각 업체의 이번 달 발주 총액을 확인하고, 세금계산서 청구금액과 비교하세요.
8-3. 계약연결 탭 v3.4.47
발주서의 자재코드와 v1.2.22 계약대비발주 시스템의 계약코드를 연결(매칭)하는 탭입니다.
연결이 완료되어야 계약대비발주 현황 탭에서 발주 집행률이 정확히 계산됩니다.
계약연결이 필요한 이유
예시: 계약서에 "PVC관 100" 항목이 있고, 발주서에 자재코드 "PVC-100"으로 발주했다면,
이 두 개를 연결해야 "PVC관 100 항목의 발주율 = 계약 수량 대비 발주 수량 %"가 자동 계산됩니다.
연결하지 않으면 발주율이 0%로 표시됩니다.
사용 방법
계약연결 탭을 클릭합니다. (상단 네비게이션에서 "계약연결" 버튼)
상단 "현장 선택" 드롭다운에서 연결할 현장을 선택합니다.
연결 현황 요약이 표시됩니다:
- 연결됨: N건 / 미연결: N건 / 연결률 N%
"자동연결" 버튼을 클릭합니다. 자재코드와 계약코드가 동일한 항목을 자동으로 연결합니다.
자동연결 후 남은 미연결 항목은 목록에서 직접 계약코드를 선택하여 수동 연결합니다.
연결 완료 후 v1.2.22 계약대비발주 탭에서 집행률이 업데이트됩니다.
발주 현황 탭에서 일괄 계약연결
발주 현황 탭에서 여러 발주서 체크박스를 선택합니다.
"선택항목 계약연결" 버튼(보라색)을 클릭합니다.
선택한 발주서의 자재코드가 계약코드와 자동 매칭됩니다.
계약연결은 발주서 저장 후 진행하세요. 발주서 저장 전에는 연결할 코드가 없습니다.
8-4. 히스토리 탭 (활동 로그) v3.4.47
시스템에서 발생한 모든 작업(발주서 저장·수정·삭제, 마스터 등록·삭제, 백업·복원 등)이
자동으로 기록되는 활동 로그입니다. 누가, 언제, 무엇을 했는지 추적할 수 있습니다.
기록되는 활동 종류
| 활동 코드 | 의미 | 예시 |
| PO_SAVE | 발주서 신규 저장 | "PO-20260315-001 저장 (삼보자재 / 현장A)" |
| PO_EDIT | 기존 발주서 수정 | "PO-20260315-001 수정" |
| PO_DELETE | 발주서 삭제 | "PO-20260315-001 삭제" |
| SUP_SAVE | 업체 등록/수정 | "업체 '삼보자재' 저장" |
| SUP_DELETE | 업체 삭제 | "업체 '삼보자재' 삭제" |
| MAT_SAVE | 자재 등록/수정 | "자재 'PVC-100' 저장" |
| SITE_SAVE | 현장 등록/수정 | "현장 '현장A' 저장" |
| BACKUP | JSON 백업 파일 생성 | "백업 파일 다운로드" |
| RESTORE | 백업 파일로 복원 | "백업 복원 완료" |
필터 및 조회
상단 히스토리 탭 클릭 (또는 네비게이션에서 "히스토리" 버튼)
우측 필터 드롭다운으로 조건을 설정합니다:
- 전체 PC / 특정 PC: 특정 사용자(PC) 기준으로 필터
- 전체 액션 / 특정 액션: PO_SAVE, PO_DELETE 등 특정 작업만 조회
"새로고침" 버튼으로 최신 로그를 불러옵니다.
실무 활용 예시
| 상황 | 히스토리 활용 방법 |
| 발주서가 갑자기 없어졌을 때 | PO_DELETE 필터로 삭제 이력 확인 → 누가/언제 삭제했는지 파악 |
| 발주서 금액이 바뀐 것 같을 때 | PO_EDIT 필터 → 해당 발주번호 수정 이력 확인 |
| 특정 직원의 작업 내역 확인 | PC 필터에서 해당 직원 PC명 선택 |
| 최근 백업/복원 시점 확인 | BACKUP·RESTORE 필터로 마지막 백업 날짜 확인 |
히스토리는 Firestore의 activityLog 컬렉션에 저장됩니다. 설정에 따라 90일간 보관됩니다. 관리자(유수문님)가 보관 기간을 조정할 수 있습니다.
9. 공사비 현황 (Tab5) v1.2.22 v3 신규
현장별 공사비 집행 현황을 한눈에 비교하는 탭입니다. 계약금액, 기성 청구, 원가 투입, 소장 관리비를 카드 형태로 보여주며, Google Style 디자인의 10컬럼 테이블로 상세 분석이 가능합니다.
이 탭은 왜 필요한가요?
여러 현장을 동시에 관리할 때, 각 현장의 계약금액 대비 기성률·원가율을 한 화면에서 비교해야 합니다. 공사비 현황 탭은 현장별 카드를 나란히 보여주므로 어떤 현장이 예산 초과 위험인지 즉시 파악할 수 있습니다.
9.1 화면 구성 및 카드 레이아웃
상단 탭 네비게이션에서 공사비 현황 탭을 클릭합니다.
등록된 모든 현장이 카드(Card) 형태로 표시됩니다. 각 카드에는 현장명과 요약 뱃지가 표시됩니다.
카드 헤더 뱃지
각 카드가 접혀 있어도 헤더에 다음 정보가 뱃지로 표시되므로, 펼치지 않아도 현장 상태를 빠르게 파악할 수 있습니다.
| 뱃지 | 내용 | 설명 |
| 계약금 | 계약서 총 금액 | allContracts에서 가져온 계약 합계 |
| 원가 | 원가 투입 합계 | costEntries에서 해당 현장 합산 |
| 기성률 | 기성누적 / 계약금 x 100% | 색상으로 상태 표시 (파랑/초록/주황/빨강) |
| 원가율 | 원가 / 원가예산 x 100% | 예산 대비 집행 비율 |
카드를 접은 상태에서도 기성률·원가율 뱃지를 통해 즉시 위험 현장을 식별할 수 있습니다. 빨간색 뱃지가 보이면 해당 카드를 펼쳐서 상세 내역을 확인하세요.
9.2 10컬럼 테이블 구조 (7행 x 10열)
각 현장 카드를 펼치면 7행 x 10열의 상세 테이블이 표시됩니다. 이 테이블은 공사비의 전체 구조를 한눈에 보여줍니다.
| 컬럼 | 설명 |
| 분류 | 행 구분 (계약/기성/원가/소장/기성률/원가율/소장률) |
| 분류금액 | 해당 분류의 총 금액 |
| 집행금액 | 실제 집행(지출)된 금액 |
| 잔액 | 분류금액 - 집행금액 |
| 자재비 | 자재 구매에 사용된 비용 |
| 현장경비 | 현장에서 직접 발생한 경비 (장비대 등) |
| 인건비 | 현장 노무비 |
| 안전관리 | 안전관리에 투입된 비용 |
| 4대보험 | 국민연금/건강보험/고용보험/산재보험 |
| 간접비 | 본사 간접 경비 |
잔액 오른쪽에 세로 구분선이 있습니다. 왼쪽 4컬럼(분류/분류금액/집행금액/잔액)은 합계 성격이고, 오른쪽 6컬럼(자재비~간접비)은 세부 내역입니다.
행별 상세 설명
| 행 | 분류금액 | 집행금액 | 잔액 |
| 계약 | 계약서 총 금액 | - | - |
| 기성 | 기성 청구 누적 합계 | - | 계약 - 기성 |
| 원가 | 원가예산 총액 | 원가 투입 합계 | 예산 - 투입 |
| 소장 | 소장 예산(sojan) | 인건비 + 현장간접비 | 예산 - 투입 |
| 기성률 | 기성/계약 x 100% — 색상 코드로 표시 |
| 원가율 | 원가투입/원가예산 x 100% — 색상 코드로 표시 |
| 소장률 | 소장투입/소장예산 x 100% — 예산 미설정 시 미표시 |
Google Style 디자인 특징
공사비 현황 테이블은 Google Material Design 스타일을 적용하여 가독성을 높였습니다.
| 요소 | 스타일 |
| 테이블 헤더 | 밝은 회색 배경(#f8f9fa), 진한 텍스트(#202124), 하단 2px 구분선(#dadce0) |
| 데이터 행 | 흰 배경, 마우스 오버 시 밝은 회색(#f1f3f4) |
| 카드 왼쪽 액센트 | 파란색 좌측 테두리(4px solid #1a73e8) |
| 숫자 셀 | 우측 정렬, 콤마 포맷, 볼드 처리 |
| 비율 셀 | 범위별 자동 색상 (파랑/초록/주황/빨강) |
9.3 계약 행 — 분리단가 기반 자동 계산
계약 행은 등록된 계약서의 항목 데이터를 기반으로 자동 계산됩니다.
분리단가란?
분리단가는 하나의 품목 단가를 재료비/노무비/경비로 분리한 것입니다.
예) PVC관 단가 50,000원 = 재료비 30,000 + 노무비 15,000 + 경비 5,000
계약서에 분리단가가 있으면 시스템이 자동으로 인식하여 각 비용 항목을 정확하게 분류합니다.
분리단가가 없는 경우 계약 항목의 태그(재료/노무/경비)를 기준으로 분류합니다.
시스템은 계약서 항목에 재료비 단가(mat), 노무비 단가(labor), 경비 단가(expense)가 있는지 자동으로 확인합니다.
분리단가가 있는 경우: 수량 x 각 단가로 정확하게 재료비/노무비/경비를 계산합니다.
분리단가가 없는 경우: 계약 항목의 태그(재료/노무/경비)를 기준으로 총 금액을 분류합니다.
계약 총액은 공종/제외 태그를 제외한 모든 항목의 합산입니다. (미분류 항목도 포함)
계약금액이 실제보다 낮게 보이는 경우, 계약서 항목 중 태그가 미분류인 항목이 있는지 확인하세요. 미분류 항목은 전체 합산에는 포함되지만 재료/노무/경비 개별 열에는 분배되지 않을 수 있습니다.
9.4 기성/원가/소장/비율 행 해설
| 행 | 데이터 소스 | 설명 |
| 기성 | costProgress 누적 | 월별 기성 청구 데이터의 누적 합계. Tab6(기성현황)에서 입력한 데이터가 자동 반영됩니다. |
| 원가 | costEntries 집계 | v3.4.47 원가현황 탭에서 입력한 분개 데이터의 현장별 합계. 원가예산(costBudgets) 기준으로 표시됩니다. |
| 소장 | costEntries 인건비 + 현장간접비 | 소장 관리 비용. 인건비와 현장간접비를 합산한 금액으로, 소장 예산(costBudgets.sojan) 대비 비교됩니다. |
| 기성률 | 기성 / 계약 x 100% | 계약금 대비 기성 청구 비율. 공사 진행도를 나타냅니다. |
| 원가율 | 원가 / 원가예산 x 100% | 예산 대비 원가 집행 비율. costBudgets이 미설정이면 계약금액을 폴백으로 사용합니다. |
| 소장률 | 소장원가 / 소장예산 x 100% | 소장 예산 대비 집행률. 예산 미설정 시 표시되지 않습니다. |
비율 행 색상 코드
| 범위 | 색상 | 의미 |
| ~50% | 파랑 | 초기 단계, 여유 있음 |
| 50~70% | 초록 | 정상 진행 중 |
| 70~90% | 주황 | 주의 필요 |
| 90~100% | 빨강 | 예산 소진 임박 |
| 100% 초과 | 진빨강 | 예산 초과 — 즉시 점검 필요 |
9.5 카드 접기/펼치기, 필터, 엑셀 내보내기
카드 접기/펼치기
카드 헤더 영역을 클릭하면 테이블이 접히거나 펼쳐집니다.
접힌 상태에서도 헤더 뱃지(계약금/원가/기성률/원가율)를 확인할 수 있습니다.
여러 현장을 빠르게 비교할 때는 모든 카드를 접은 상태에서 뱃지만 비교하세요.
현장 필터
탭 상단의 현장 필터 드롭다운에서 특정 현장을 선택합니다.
선택한 현장의 카드만 표시되고 나머지는 숨겨집니다.
"전체 현장"을 선택하면 모든 카드가 다시 표시됩니다.
엑셀 내보내기
탭 상단의 "엑셀 내보내기" 버튼을 클릭합니다.
현재 필터 조건에 맞는 현장의 공사비 테이블이 엑셀 파일로 다운로드됩니다.
9.6 데이터 흐름 이해하기
공사비 현황 탭의 데이터는 여러 소스에서 자동으로 수집됩니다. 어떤 탭에서 무엇을 입력해야 공사비 현황에 반영되는지 이해하는 것이 중요합니다.
| 공사비 현황 항목 | 데이터 입력 위치 | 입력 방법 |
| 계약금액 | v1.2.22 → 계약서 관리 탭 | 계약서 등록 시 계약 내역서 붙여넣기 (4.2절 참조) |
| 기성 데이터 | v1.2.22 → 기성현황 탭 (Tab6) | 월별 기성금 수동 입력 또는 엑셀 붙여넣기 (10.2절 참조) |
| 원가 데이터 | v3.4.47 → 원가현황 탭 | 분개 데이터 엑셀 붙여넣기 (11.2절 참조) |
| 원가예산 | v3.4.47 → 원가현황 탭 → 예산 설정 | 관리자가 예산 금액 입력 (11.5절 참조) |
| 소장 예산 | v3.4.47 → 원가현황 탭 → 예산 설정 | costBudgets.sojan 필드 (11.5절 참조) |
핵심 포인트: 공사비 현황은 "보기 전용" 탭입니다. 여기서 직접 데이터를 입력하는 것이 아니라, 다른 탭에서 입력한 데이터가 자동으로 모여서 표시됩니다. 데이터가 비어 있다면 해당 소스 탭에서 먼저 입력해야 합니다.
실무 활용 시나리오
매월 말 공사비 현황 점검 순서:
1. v3.4.47에서 해당 월의 원가 분개를 엑셀 붙여넣기로 입력합니다.
2. v1.2.22 기성현황 탭에서 해당 월의 기성 청구금을 입력합니다.
3. v1.2.22 공사비현황 탭을 열어 모든 현장의 기성률/원가율을 한눈에 비교합니다.
4. 원가율이 높은(빨간색) 현장은 원인을 분석하고 대책을 수립합니다.
9.7 트러블슈팅
| 문제 | 원인 | 해결 방법 |
| 계약금액이 실제보다 낮게 표시됨 | 분리단가 미반영 또는 미분류 항목 존재 | 계약서 관리 탭에서 항목 태그(재료/노무/경비) 확인. 분리단가가 있는데 반영 안 되면 계약서 재저장 |
| 원가율이 0%로 표시됨 | 원가예산(costBudgets)이 미설정 | v3.4.47 원가현황 탭에서 해당 현장의 예산을 설정하세요 (11.5절 참조) |
| 기성 데이터가 비어 있음 | Tab6(기성현황)에서 입력하지 않음 | 기성현황 탭에서 해당 현장의 월별 기성을 입력하세요 (10.2절 참조) |
| 카드가 표시되지 않음 | 현장 필터가 특정 현장으로 설정됨 | 필터를 "전체 현장"으로 변경 |
| 소장률이 표시 안 됨 | 소장 예산(costBudgets.sojan) 미설정 | v3.4.47 원가현황 탭에서 소장 예산을 설정 |
10. 기성 현황 (Tab6) v1.2.22 v3 신규
월별 기성 청구 현황을 관리하는 탭입니다. 각 현장에서 매월 청구하는 기성금(자재비/노무비/안전관리비/4대보험/간접비)을 입력하고, 누적 현황과 기성률을 추적합니다.
기성이란?
기성(既成)은 공사가 완료된 부분에 대해 발주자에게 청구하는 금액입니다. 매월 공사 진행률에 따라 기성금을 청구하며, 누적 기성금은 공사비의 주요 수입원이 됩니다. 기성률(기성/계약금)은 공사 진행도를 나타내는 핵심 지표입니다.
10.1 화면 구성 및 연도별 토글
v1.2.22 시스템에서 기성 현황 탭을 클릭합니다.
화면에 연도별로 그룹화된 월별 테이블이 표시됩니다.
과거 연도는 접힌 상태로 표시됩니다. 누계(합산) 컬럼 1개만 보입니다.
최신 연도는 최근 5개월이 표시됩니다. 6개월 이상이면 오래된 월은 토글로 접힙니다.
연도 헤더를 클릭하면 해당 연도의 전체 월별 데이터가 펼쳐집니다.
테이블 구조
| 행 | 내용 |
| 현장명 | 등록된 각 현장의 이름. 클릭하면 세로형 상세 모달이 열립니다. |
| 월별 컬럼 | 각 월의 기성 합계 금액. 약식 표시(억/만 단위)됩니다. |
| 누계 | 해당 연도의 누적 기성 합계 |
| 기성률 | 누적기성 / 계약금 x 100%. 색상 코드로 표시됩니다. |
연도별 토글 기능이 있는 이유: 과거 연도의 월별 데이터를 항상 펼쳐 두면 가로로 너무 넓어지기 때문입니다. 과거는 누계만 확인하고, 현재 연도의 최근 월에 집중할 수 있도록 설계되었습니다.
10.2 기성 입력 — 수동 + 엑셀 붙여넣기
방법 A — 수동 입력 (1건씩)
기성 현황 탭 상단의 "기성 입력" 버튼을 클릭합니다.
| 항목 | 설명 | 비고 |
| 현장명 | 드롭다운에서 현장 선택 | 필수 |
| 기성월 | YYYY-MM 형식으로 월 선택 (type="month" 입력) | 필수 |
| 자재비 | 해당 월의 자재비 기성금액 | 숫자 |
| 노무비 | 해당 월의 노무비 기성금액 | 숫자 |
| 안전관리비 | 해당 월의 안전관리비 기성금액 | 숫자 |
| 4대보험 | 해당 월의 4대보험 기성금액 | 숫자 |
| 간접비 | 해당 월의 간접비 기성금액 | 숫자 |
같은 현장 + 같은 월의 데이터가 이미 있으면 합산됩니다.
방법 B — 엑셀 붙여넣기 (여러 현장 일괄 입력, 권장)
| 컬럼 수 | 형식 | 예시 |
| 3컬럼 | 현장명 | 날짜(YYYY-MM) | 자재비 | 현장A | 2026-03 | 15000000 |
| 4컬럼 | 현장명 | 날짜 | 자재비 | 노무비 | 현장A | 2026-03 | 15000000 | 8000000 |
| 5컬럼 | 현장명 | 날짜 | 자재비 | 노무비 | 안전관리비 | - |
| 6컬럼 | 현장명 | 날짜 | 자재비 | 노무비 | 안전관리비 | 4대보험 | - |
| 7컬럼 | 현장명 | 날짜 | 자재비 | 노무비 | 안전관리비 | 4대보험 | 간접비 | - |
엑셀에서 해당 범위를 선택하고 Ctrl+C로 복사합니다.
기성 현황 탭의 "엑셀 붙여넣기" 입력 영역에 Ctrl+V로 붙여넣기합니다.
시스템이 자동으로 컬럼 수를 인식하고 미리보기를 표시합니다.
"저장"을 클릭합니다. 같은 현장 + 같은 월 데이터는 합산됩니다.
날짜 형식에 주의하세요. 2번째 컬럼이 YYYY-MM 또는 YYYY-MM-DD 형식이어야 인식됩니다. 날짜가 아닌 경우 붙여넣기가 실패합니다.
실무 팁: 매월 말에 엑셀에서 모든 현장의 기성 데이터를 한 시트에 정리한 후, 한 번에 붙여넣기하면 빠르게 입력할 수 있습니다.
10.3 현장명 클릭 — 세로형 상세 모달
세로형 상세 모달이 열립니다. 해당 현장의 전체 월별 데이터가 세로로 나열됩니다.
모달 내용
| 항목 | 설명 |
| 월별 행 | 각 월의 자재비/노무비/안전관리비/4대보험/간접비 5항목 + 합계 |
| 누적합계 | 해당 월까지의 누적 기성 합계 |
| 누적률 | 누적기성 / 계약금 x 100% |
| 하단 요약 바 | 기성률, 원가율, 잔액을 한눈에 표시 |
세로형 모달은 한 현장의 전체 기성 이력을 시간순으로 확인할 때 유용합니다. 어떤 달에 기성이 많았는지, 누적 추이가 어떤지 한눈에 파악할 수 있습니다.
10.4 수정/삭제 (관리자 전용)
기성 데이터의 수정과 삭제는 관리자 권한이 있는 사용자만 가능합니다. 일반 사용자는 조회만 가능합니다.
수정
현장명 클릭 → 세로형 상세 모달에서 "수정" 버튼을 클릭합니다.
수정 모달이 열리고, 해당 현장의 각 레코드별 금액을 직접 편집할 수 있습니다.
삭제
세로형 상세 모달에서 삭제할 월의 "X" (삭제) 버튼을 클릭합니다.
확인 팝업이 표시됩니다. "확인"을 클릭하면 해당 월의 기성 데이터가 삭제됩니다.
삭제 후 누적 합계와 기성률이 자동으로 재계산됩니다.
삭제된 기성 데이터는 복구가 어렵습니다. 삭제 전에 반드시 데이터를 확인하세요. 금액 오류는 삭제보다 수정을 권장합니다.
10.5 필터, 엑셀 내보내기, 레거시 정리
필터
| 필터 | 설명 |
| 현장 필터 | 특정 현장의 기성 데이터만 표시 |
| 연도 필터 | 특정 연도의 데이터만 표시 |
엑셀 내보내기 (2시트)
| 시트 | 내용 |
| 월별합계 | 현장 x 월 합계 + 원가 + 잔액 + 기성률 + 원가율 |
| 세부항목 | 현장 x 월 x 5항목(자재비/노무비/안전관리비/4대보험/간접비) 상세 |
탭 상단의 "엑셀 내보내기" 버튼을 클릭합니다.
2개 시트가 포함된 엑셀 파일이 다운로드됩니다.
레거시 데이터 정리 (관리자 전용)
이전 버전에서 사용하던 비표준 형식의 기성 키(예: 현장명_03월 31일)가 남아 있을 수 있습니다. 이런 레거시 데이터는 정상적인 집계에 방해가 됩니다.
필터 영역의 "레거시 정리" 버튼을 클릭합니다 (관리자만 표시됨).
시스템이 비표준 키를 탐지하여 표준 형식(현장명_YYYY-MM)으로 자동 변환하거나, 변환 불가능한 항목은 삭제 여부를 물어봅니다.
10.6 기성 데이터의 누적 계산 원리
기성현황의 핵심은 월별 데이터의 누적 합산입니다. 시스템이 어떻게 누적을 계산하는지 이해하면 데이터 오류를 방지할 수 있습니다.
입력값 vs 누적값의 차이:
- 입력값: 해당 월에 새로 발생한 기성금 (예: 3월 자재비 1,500만원)
- 누적값: 1월부터 해당 월까지의 입력값을 모두 합산한 금액 (예: 1~3월 합계 4,500만원)
기성 입력 시에는 해당 월의 신규 발생분만 입력하세요. 시스템이 자동으로 누적 합산합니다.
각 월의 기성 입력값은 Firestore costProgress 컬렉션에 개별 레코드로 저장됩니다.
테이블 표시 시 시스템이 자동으로 시간순 정렬 → 누적 합산을 수행합니다.
누적 재계산은 _progRecalcCum() 함수 하나로 통합 처리됩니다.
기성률 = 누적 기성 합계 / 계약금액 x 100%
같은 현장 + 같은 월에 여러 번 입력하면 금액이 합산됩니다. 예를 들어 현장A의 3월 자재비를 1,000만원 + 500만원으로 두 번 입력하면, 3월 자재비는 1,500만원이 됩니다. 금액을 교체하려면 수정 모달에서 직접 변경하세요.
기성률/원가율과 공사비현황 연동
기성현황 탭에서 입력한 데이터는 공사비현황(Tab5)의 기성 행에 자동 반영됩니다.
| 기성현황(Tab6) | 공사비현황(Tab5) |
| 월별 자재비 누적 | 기성 행 → 자재비 컬럼 |
| 월별 노무비 누적 | 기성 행 → 인건비 컬럼 |
| 월별 안전관리비 누적 | 기성 행 → 안전관리 컬럼 |
| 월별 4대보험 누적 | 기성 행 → 4대보험 컬럼 |
| 월별 간접비 누적 | 기성 행 → 간접비 컬럼 |
| 전체 누적 합계 | 기성 행 → 분류금액 컬럼 |
| 누적/계약금 비율 | 기성률 행 |
Tab6에서 데이터를 입력하면 Tab5에 자동 반영됩니다. Tab5에서 기성 데이터가 비어 있다면 Tab6에서 먼저 입력하세요.
10.7 트러블슈팅
| 문제 | 원인 | 해결 방법 |
| 엑셀 붙여넣기가 안 됨 | 날짜 형식이 올바르지 않음 | 2번째 컬럼이 YYYY-MM 또는 YYYY-MM-DD 형식인지 확인. 엑셀의 셀 서식이 "텍스트"인지 확인 |
| 기성률이 0% | 계약서가 등록되지 않음 | 계약서 관리 탭에서 해당 현장의 계약서를 먼저 등록하세요 |
| 같은 월에 데이터가 중복됨 | 같은 월에 여러 번 입력 | 데이터는 자동 합산됩니다. 원치 않는 경우 수정 모달에서 금액을 조정하세요 |
| 과거 연도 데이터가 안 보임 | 연도 토글이 접혀 있음 | 해당 연도 헤더를 클릭하여 펼치세요 |
| 삭제/수정 버튼이 없음 | 관리자 권한이 없음 | 관리자(유수문님)에게 문의하세요 |
| 누계 금액이 이상함 | 레거시 데이터가 섞여 있음 | 관리자에게 "레거시 정리" 실행 요청 |
11. 원가 현황 v3.4.47 v3 신규
현장별 원가 분개 데이터를 관리하고 분석하는 탭입니다. 엑셀에서 원가 데이터를 붙여넣기하면 5가지 분류로 자동 매핑되며, 업체별/월별 피벗 테이블로 원가 현황을 한눈에 파악할 수 있습니다.
원가 현황은 왜 필요한가요?
공사 진행 중 발생하는 모든 비용(자재 구매, 인건비, 경비 등)을 체계적으로 기록하고 분석해야 합니다. 원가현황 탭은 이 데이터를 5가지 분류로 자동 정리하여 예산 대비 집행률을 실시간으로 확인할 수 있게 합니다.
11.1 개요 및 5분류 체계
원가 현황은 모든 원가 데이터를 5가지 대분류로 분류합니다. 이 5분류는 테이블에서 아코디언 형태의 최상위 그룹이 됩니다.
| 5분류 | 포함 항목 | 설명 |
| 자재비 | 자재비, 안전관리비 | 발주서로 나가는 물품 구매 비용. 안전관리비는 v3.4.47에서는 자재비로 분류됩니다. |
| 인건비 | 급여, 노무비, 퇴직금 | 현장 근로자의 급여 및 관련 비용 |
| 현장간접비 | 경비, 장비대 | 현장에서 직접 발생하는 간접 비용 (v3.4.47 피벗에서는 "현장경비"로 표시) |
| 현장지원비 | 경비(숙), 법인카드, 세금, 지급수수료 | 현장 운영 지원에 필요한 비용 |
| 본사간접비 | 보험료 | 본사에서 부담하는 간접 비용 |
안전관리비의 분류 차이에 주의:
v3.4.47(원가현황)에서는 안전관리비가 자재비에 포함됩니다 (발주서로 나가는 물품이므로).
v1.2.22(공사비현황 Tab5)에서는 안전관리비가 별도 컬럼으로 표시됩니다 (계약 예산 기준).
5분류 매핑 상세
원가 데이터에 포함된 원가구분(costType) 값이 어떤 5분류(costClass)로 매핑되는지 상세히 설명합니다.
| 원가구분 (costType) | 5분류 (costClass) | 설명 |
| 자재비 | 자재비 | 건설자재 구매 비용 |
| 안전관리비 | 자재비 | 안전 관련 물품 구매 (v3.4.47 기준) |
| 급여 | 인건비 | 정규직 급여 |
| 노무비 | 인건비 | 현장 근로자 노무비 |
| 퇴직금 | 인건비 | 퇴직급여 충당 |
| 경비 | 현장간접비 | 현장 직접 경비 |
| 장비대 | 현장간접비 | 건설장비 임대/사용료 |
| 경비(숙) | 현장지원비 | 숙소 관련 경비 |
| 법인카드 | 현장지원비 | 법인카드 사용 경비 |
| 세금 | 현장지원비 | 각종 세금/공과금 |
| 지급수수료 | 현장지원비 | 수수료 관련 비용 |
| 보험료 | 본사간접비 | 보험 관련 비용 (본사 부담) |
상세 테이블 레이아웃
원가현황의 메인 테이블은 5분류를 아코디언 형태로 보여줍니다. 각 아코디언을 클릭하면 해당 분류의 상세 데이터가 펼쳐집니다.
5분류 헤더 행을 클릭하면 아코디언이 펼쳐집니다. 각 헤더에는 해당 분류의 합계 금액이 표시됩니다.
펼쳐진 아코디언 안에서는 선택한 보기 방식(날짜별/월별/업체별)에 따라 세부 항목이 나열됩니다.
테이블은 table-layout:fixed와 <colgroup>을 사용하여 컬럼 폭이 고정됩니다. 품명 열이 전체를 차지하지 않도록 설계되었습니다.
보기 방식을 전환해도 5분류 아코디언 구조는 유지됩니다. 날짜별 → 업체별로 전환하면 아코디언 안의 정렬만 변경됩니다.
11.2 분개 입력 — 엑셀 붙여넣기
분개란?
분개(分介)는 회계에서 거래를 분류하여 기록하는 것입니다. 원가 현황에서 "분개 입력"은 비용 발생 내역을 날짜/업체/금액/항목별로 기록하는 것을 의미합니다.
v3.4.47 시스템에서 원가 현황 탭을 클릭합니다.
상단의 "붙여넣기 입력" 영역을 클릭하여 펼칩니다.
엑셀에서 원가 데이터를 복사(Ctrl+C)합니다. 데이터에는 최소한 날짜, 업체명, 금액이 포함되어야 합니다.
시스템이 자동으로 컬럼을 인식하고, 업체명 기반으로 원가구분(5분류)을 자동 매핑합니다.
처음 입력하는 업체는 원가구분이 "미분류"로 표시됩니다. 수동으로 5분류를 선택하면 시스템이 패턴을 학습하여, 다음에 같은 업체가 입력되면 자동으로 분류합니다 (11.3절 참조).
관리자 권한이 있는 사용자만 분개 입력(붙여넣기)이 가능합니다. 일반 사용자는 조회와 엑셀 내보내기만 할 수 있습니다 (11.6절 참조).
11.3 패턴 학습 (업체-원가구분 자동 매핑)
원가 현황은 업체명(사업자번호) + 원가구분 패턴을 학습합니다. 한 번 분류하면 같은 업체의 다음 데이터부터는 자동으로 올바른 5분류가 적용됩니다.
새로운 업체 데이터가 입력되면 원가구분이 "미분류"로 표시됩니다.
해당 행의 5분류 셀렉트박스에서 올바른 분류를 선택합니다. (관리자만 가능)
시스템이 이 패턴을 Firestore(costPatterns)에 저장합니다.
다음에 같은 업체의 데이터가 입력되면 자동으로 해당 5분류가 적용됩니다.
5분류를 변경하면 같은 현장 + 같은 업체 + 같은 원가구분 조합의 모든 항목이 일괄 변경됩니다. 다른 현장의 데이터는 영향받지 않습니다.
11.4 피벗 테이블 (월별/업체별)
원가 데이터를 다양한 기준으로 집계하여 보여주는 피벗 테이블입니다.
보기 전환
| 보기 | 설명 |
| 날짜별 보기 | 5분류 아코디언 안에서 날짜별로 항목을 나열 |
| 월별 보기 | 5분류 아코디언 안에서 월별로 그룹화 |
| 업체별 보기 | 5분류 아코디언 안에서 업체별로 그룹화하여 합산 |
어떤 보기 방식을 선택하더라도 5분류(대분류) 아코디언은 항상 최상위입니다. 보기 전환은 아코디언 안의 세부 정렬만 변경합니다.
피벗 테이블 (엑셀 내보내기 시 포함)
| 피벗 유형 | 행 | 열 | 값 |
| 월별 피벗 | 년-월 | 5분류 | 합계 금액 + 구성비(%) |
| 업체별 집계 | 업체명 | 5분류 | 합계 금액 (금액 큰 순 정렬) |
11.5 예산 설정 및 집행률
원가 현황 탭 상단의 "예산 설정" 버튼을 클릭합니다. (관리자만 표시됨)
예산 설정 모달이 열립니다. 현장을 선택합니다.
| 항목 | 설명 | 비고 |
| 자재비 예산 | 자재 구매에 배정된 총 예산 | 숫자 (실시간 콤마 포맷) |
| 인건비(소장관리) 예산 | 소장 인건비 + 현장간접비에 배정된 예산 | 숫자 |
| 현장지원 예산 | 현장지원비에 배정된 예산 | 숫자 |
| 본사간접 예산 | 본사간접비에 배정된 예산 | 숫자 |
| 총 예산 | 위 4개 항목의 합계 (자동 계산, 읽기전용) | 자동 |
"저장"을 클릭합니다. Firestore costBudgets 컬렉션에 저장됩니다.
집행률 바 해설
예산 대비 실제 집행 금액의 비율을 시각적으로 보여주는 막대 그래프입니다.
| 영역 | 내용 |
| 1칸 (왼쪽) | 총 예산 — 다크 배경으로 강조 |
| 2칸 (가운데) | 자재비 집행률 + 인건비 집행률 |
| 3칸 (오른쪽) | 현장지원 집행률 + 본사간접 집행률 |
| 집행률 범위 | 바 색상 | 의미 |
| ~70% | 초록 | 정상 범위 |
| 70~90% | 주황 | 주의 필요 |
| 90% 이상 | 빨강 | 예산 소진 임박 또는 초과 |
예산이 설정되지 않은 현장은 집행률 바가 표시되지 않습니다. 반드시 예산을 먼저 설정한 후 집행률을 확인하세요. Tab5(공사비현황)의 원가율에서도 이 예산을 사용합니다.
11.6 관리자 vs 일반 사용자 권한
| 기능 | 관리자 | 일반 사용자 |
| 원가 데이터 조회 | 가능 | 가능 |
| 엑셀/PDF 내보내기 | 가능 | 가능 |
| 분개 입력 (붙여넣기) | 가능 | 불가 |
| 5분류 변경 | 가능 (셀렉트박스) | 불가 (텍스트로만 표시) |
| 예산 설정/수정 | 가능 | 불가 |
| 현장명 통합 정리 | 가능 | 불가 |
관리자 권한은 untech-config.js 파일의 admins 목록에 등록된 이메일로 결정됩니다. 관리자 추가가 필요하면 유수문님에게 요청하세요.
11.7 엑셀/PDF 내보내기
엑셀 내보내기 (3시트 XLSX)
원가 현황 탭 상단의 "엑셀 내보내기" 버튼을 클릭합니다.
현재 필터(현장/연도) 조건이 반영된 엑셀 파일이 다운로드됩니다.
| 시트 | 내용 | 활용 |
| 월별피벗 | 년-월 x 5분류 + 합계 + 구성비(%) | 월별 원가 추이 분석, 보고서 작성 |
| 업체별집계 | 5분류별 업체 합계 (금액 큰 순) | 주요 거래처 분석, 협력사 관리 |
| 전체데이터 | raw 13컬럼 전체 데이터 | 상세 분석, 외부 시스템 연동 |
PDF 저장
원가 현황 탭 상단의 "PDF 저장" 버튼을 클릭합니다.
새 창이 열리면서 요약 카드 + 예산 바 + 피벗 테이블이 인쇄용 레이아웃으로 표시됩니다.
브라우저의 인쇄 기능(Ctrl+P)을 사용하여 "PDF로 저장"을 선택합니다.
11.8 원가 데이터 흐름 및 다른 탭과의 연동
원가현황 탭에서 입력한 데이터는 v1.2.22의 공사비현황(Tab5)에서도 읽힙니다. 양쪽 시스템의 데이터 흐름을 이해하면 더 효과적으로 활용할 수 있습니다.
| 원가현황(v3.4.47) | 공사비현황(v1.2.22 Tab5) |
| costEntries (자재비) | 원가 행 → 자재비 컬럼 |
| costEntries (인건비) | 소장 행 → 인건비 부분 |
| costEntries (현장간접비) | 소장 행 → 현장간접비 부분 + 원가 행 → 현장경비 컬럼 |
| costEntries (현장지원비) | 원가 행 집계에 포함 |
| costEntries (본사간접비) | 원가 행 집계에 포함 |
| costBudgets (예산) | 원가율 계산의 분모로 사용 |
| costPatterns (패턴) | 직접 사용하지 않음 (v3.4.47 내부용) |
Firestore 컬렉션 구조
| 컬렉션 | 키 형식 | 주요 필드 |
costEntries | siteName_date_bizNo_total | siteName, date, supplier, bizNo, costType, costClass, total, items |
costPatterns | bizNo|supplier | costType(원가구분), costClass(5분류), supplier(업체명) |
costBudgets | siteName | total, mat(자재비), sojan(인건비/소장), support(현장지원), hq(본사간접) |
실무 활용: 매월 원가 관리 워크플로
매월 초: 전월 말 기준의 원가 데이터를 엑셀로 정리합니다. (회계팀에서 제공받거나 ERP에서 추출)
원가 입력: v3.4.47 원가현황 탭에서 엑셀 데이터를 붙여넣기합니다. 업체별 5분류가 자동 매핑됩니다.
분류 검토: "미분류" 항목이 있으면 올바른 5분류를 선택합니다. (패턴이 학습되어 다음 달부터는 자동)
예산 확인: 집행률 바를 확인하여 예산 대비 집행 상태를 점검합니다.
보고서 생성: "엑셀 내보내기"로 3시트 보고서를 다운로드하거나, "PDF 저장"으로 인쇄용 요약을 생성합니다.
현장 비교: v1.2.22 공사비현황(Tab5)을 열어 모든 현장의 원가율을 한눈에 비교합니다.
11.9 현장명 통합 정리 (관리자 전용)
엑셀 데이터에서 현장명이 마스터 데이터와 다르게 입력되는 경우가 있습니다. 예를 들어 "현장A"와 "현장 A" (공백 차이), "현장A 신축" (상세 명칭) 등이 혼재할 수 있습니다.
원가현황 탭 상단의 "현장명 통합" 버튼을 클릭합니다. (관리자만 표시)
시스템이 costEntries의 현장명과 마스터(sites) 현장명을 비교하여 불일치 항목을 표시합니다.
각 불일치 항목에 대해 올바른 현장명을 선택합니다.
"적용"을 클릭하면 해당 현장명의 모든 costEntries가 일괄 변경됩니다.
현장명 통합 시 Firestore의 sites 컬렉션 원본만 조회합니다. allSites 전역 변수에는 costEntries의 현장명이 혼입되어 있을 수 있으므로, 통합 기능은 별도 조회 방식을 사용합니다.
11.10 트러블슈팅
| 문제 | 원인 | 해결 방법 |
| 붙여넣기 버튼이 안 보임 | 관리자 권한 없음 | 관리자(유수문님)에게 admins 목록 추가 요청 |
| 업체가 "미분류"로 표시됨 | 해당 업체의 패턴이 아직 학습되지 않음 | 관리자가 5분류 셀렉트박스에서 올바른 분류를 선택하세요. 자동 학습됩니다. |
| 5분류 변경 후 다른 현장 데이터도 변경됨 | 발생하면 안 되는 현상 | 변경은 같은 현장 + 같은 업체 + 같은 원가구분만 영향. 다른 현장이 변경되었다면 관리자에게 즉시 보고 |
| 집행률 바가 안 보임 | 예산이 설정되지 않음 | 관리자가 "예산 설정"에서 해당 현장의 예산을 입력 |
| 피벗 테이블에 데이터가 없음 | 현장/연도 필터가 잘못 설정됨 | 필터를 "전체"로 변경하여 확인 |
| 현장명이 여러 이름으로 중복됨 | 원가 데이터의 현장명이 마스터와 다름 | 관리자가 "현장명 통합 정리" 기능으로 올바른 현장명으로 매핑 |
| 금액이 이상하게 표시됨 | 엑셀에서 콤마가 포함된 채로 복사 | 시스템이 자동으로 콤마를 제거하지만, 문제가 지속되면 엑셀에서 셀 서식을 "숫자"로 변경 후 재복사 |
12. 백업/복원
12.1 Firebase 모드에서의 백업 개념
Firebase Firestore에 모든 데이터가 실시간 저장되므로 이전 방식(매일 백업 필수)과 다릅니다.
다음 경우에 백업을 권장합니다:
- 월말/분기말 스냅샷 보관
- 대량 데이터 삭제 전 안전망
- 회사 자체 데이터 보관 정책에 따라
12.2 시스템별 백업 방법
| 시스템 | 백업 방법 | 파일 형식 | 필요성 |
| V164 |
우상단 저장 아이콘 클릭 |
자재매칭_통합백업_YYYY-MM-DD.json |
선택 권장 (Firestore 저장) |
| v1.2.22 |
백업/복원 탭 → "전체 백업 다운로드" |
계약대비발주_백업_YYYYMMDD.json |
선택 권장 |
| v3.4.47 |
백업/복원 탭 → "전체 백업 다운로드" |
YYYYMMDDHHMMSS_발주서백업.json |
선택 권장 |
12.3 백업 주기 권장사항
| 주기 | 대상 | 보관 위치 | 목적 |
| 매월 말 | v3.4.47 전체 백업 | 구글 드라이브 공유 폴더 | 월별 스냅샷 보관 |
| 매월 말 | v1.2.22 전체 백업 | 구글 드라이브 공유 폴더 | 계약/기성 데이터 보관 |
| 분기말 | V164 통합 백업 | 구글 드라이브 공유 폴더 | 코드DB·학습DB 보관 |
| 대량 수정 전 | 해당 시스템 백업 | 로컬 PC | 안전망 확보 |
| 계약서 대량 등록 전 | v1.2.22 백업 | 로컬 PC | 복원 가능성 확보 |
실무 팁: 구글 드라이브에 발주시스템_백업/YYYY-MM 형식으로 폴더를 만들어 매월 백업 파일을 정리하면, 필요 시 특정 시점으로 복원이 가능합니다.
12.4 복원 방법
복원 시 Firestore의 현재 데이터가 백업 파일로 덮어쓰기됩니다.
복원 전에 반드시 현재 상태의 백업을 먼저 다운로드해 두세요.
잘못된 복원을 한 경우, 방금 다운로드한 현재 상태 백업으로 다시 복원하면 됩니다.
복원 영역에 JSON 파일을 드래그하거나 파일 선택 버튼으로 선택합니다.
13. 팀 계정 관리 (Firebase Authentication)
13.1 계정 구조
Firebase Authentication으로 직원 계정을 관리합니다. 최대 10명까지 등록 가능.
| 항목 | 내용 |
| 계정 방식 | 이메일 / 비밀번호 |
| 관리자 | 유수문님 (Firebase Console 접근 권한) |
| 최대 사용자 | 10명 |
| 비용 | 무료 (Firebase 무료 플랜) |
13.2 신규 직원 계정 등록 절차
관리자(유수문님)가 Firebase Console에서 진행:
Firebase Console (console.firebase.google.com) 접속
Authentication → Users 탭 → "Add user" 버튼 클릭
직원이 임시 비밀번호로 최초 로그인 → 이후 비밀번호를 본인이 바꾸려면 로그아웃 후 로그인 화면의 "비밀번호를 잊으셨나요?" 링크로 본인 메일로 재설정 (시스템 내부에 비밀번호 변경 화면은 없음)
Google 계정 로그인 옵션: 직원 이메일이 Google 계정(@gmail.com 또는 Google Workspace 도메인)이면 로그인 화면에서 "Google 계정으로 로그인"도 가능합니다. 이 경우 비밀번호 관리는 Google 계정 자체에서 처리되며, 본 시스템에 별도의 비밀번호가 없습니다.
13.3 권한별 기능 요약
시스템에서 관리자와 일반 사용자의 권한 차이를 정리합니다.
| 기능 | 시스템 | 관리자 | 일반 사용자 |
| 발주서 작성/수정/삭제 | v3.4.47 | 가능 | 가능 |
| 마스터 관리 (업체/현장/자재) | v3.4.47 | 가능 | 가능 |
| 계약서 등록/수정 | v1.2.22 | 가능 | 가능 |
| 원가 분개 입력 | v3.4.47 | 가능 | 불가 |
| 원가 5분류 변경 | v3.4.47 | 가능 | 불가 |
| 원가 예산 설정 | v3.4.47 | 가능 | 불가 |
| 기성 수정/삭제 | v1.2.22 | 가능 | 불가 |
| 레거시 데이터 정리 | v1.2.22 | 가능 | 불가 |
| 현장명 통합 정리 | v3.4.47 | 가능 | 불가 |
| 데이터 조회/내보내기 | 전체 | 가능 | 가능 |
13.4 관리자(admins) 등록
원가현황/기성현황의 편집 권한은 untech-config.js 파일의 admins 배열에 이메일이 포함된 사용자에게만 부여됩니다. 관리자 추가/삭제는 코드 수정이 필요하므로 시스템 관리자에게 요청하세요.
13.5 일상적인 사용 흐름
| 상황 | 절차 |
| 작업 시작 | 웹 브라우저에서 https://untech-poju.web.app 접속 → (자동 로그인 유지) |
| 다른 PC에서 작업 | 동일 주소 접속 → 로그인 → 동일한 데이터 바로 사용 |
| 퇴근 시 | 그냥 브라우저 닫기 (데이터 자동 저장됨) |
| 데이터 공유 | 불필요 (Firestore 실시간 자동 동기화) |
| 월말 백업 | 백업/복원 탭에서 JSON 다운로드 |
14. 자주 묻는 질문 (FAQ)
Q1. 처음 접속했는데 에러가 떠요
- 인터넷 연결 상태 확인
- 주소 확인:
https://untech-poju.web.app (http가 아닌 https)
- Chrome 브라우저 사용 권장
Q2. 로그인이 안 돼요 (비밀번호 오류)
이메일/비밀번호 대소문자 확인 (특히 비밀번호의 대문자/숫자/특수문자)
로그인 화면에서 이메일 입력 → "비밀번호를 잊으셨나요?" 링크 클릭 → 등록 메일로 재설정 링크 수신 → 새 비밀번호 설정 후 재로그인
메일이 도착하지 않으면 스팸함 확인. 그래도 없으면 관리자(유수문님)에게 연락하여 Firebase Console에서 재발송 요청
Q3. 로그인은 됐는데 데이터가 안 보여요
처음 접속하는 경우 데이터가 없는 것이 정상입니다.
기존 로컬 백업 데이터가 있다면: 백업/복원 탭 → JSON 파일로 복원하세요.
Q4. 내가 저장한 발주서가 다른 직원 화면에도 즉시 보이나요?
예! Firestore 실시간 동기화로 저장 즉시 모든 직원 화면에 반영됩니다.
다른 직원이 화면을 새로고침(F5)하면 바로 확인할 수 있습니다.
Q5. V164 코드DB를 다른 PC에서 쓰려면?
V164부터 Firestore 클라우드 저장으로 전환되었습니다.
V164에 로그인하면 모든 PC에서 동일한 데이터를 바로 사용할 수 있습니다.
Q6. 여러 명이 동시에 같은 발주서를 수정하면?
동시 편집 시 마지막으로 저장한 내용이 유지됩니다.
같은 발주서를 두 명이 동시에 열어 수정하는 것은 피해 주세요.
Q7. 인쇄가 이상하게 나와요
- 반드시 Chrome 브라우저에서 인쇄하세요.
- 용지 크기: A4, 여백: 기본값으로 설정합니다.
- 배경 그래픽 옵션을 활성화해야 도장/로고가 인쇄됩니다.
Q8. 데이터가 사라진 것 같아요
Firebase Firestore는 클라우드에 안전하게 보관됩니다. 거의 사라지지 않습니다.
필터 조건이나 현장 선택이 잘못되어 안 보이는 경우가 대부분입니다.
필터를 "전체"로 초기화하고 다시 확인해 보세요.
진짜 문제인 경우: 관리자(유수문님)에게 연락하세요.
Q9. 회사 밖(자택, 현장)에서도 사용할 수 있나요?
예! 인터넷이 연결된 어디서든 https://untech-poju.web.app으로 접속하여 사용할 수 있습니다.
스마트폰/태블릿 브라우저에서도 접속 가능합니다.
Q10. 엑셀에서 복사한 날짜가 숫자로 표시돼요
엑셀에서 복사 시 날짜가 숫자(예: 46027)로 붙여넣기되는 경우가 있습니다.
v3.4.47부터 자동 변환 기능이 추가되어 붙여넣기 시 자동으로 날짜(2026-01-05)로 변환됩니다.
Q11. 공사비 현황(Tab5)의 원가율이 이상해요
원가율은 원가예산(costBudgets)을 기준으로 계산됩니다.
원가예산이 설정되지 않은 경우 계약금액을 폴백으로 사용하므로, 정확한 원가율을 위해서는 v3.4.47 원가현황 탭에서 반드시 예산을 설정하세요.
Q12. 기성 데이터를 잘못 입력했어요
기성현황 탭에서 해당 현장명을 클릭하여 상세 모달을 엽니다.
관리자 권한이 있다면 "수정" 버튼을 클릭하여 금액을 직접 수정할 수 있습니다.
잘못 입력된 월을 삭제하고 다시 입력할 수도 있습니다.
관리자 권한이 없다면 관리자(유수문님)에게 수정을 요청하세요.
Q13. 원가현황에서 붙여넣기가 안 돼요
원가 분개 입력은 관리자만 가능합니다. untech-config.js의 admins 목록에 등록된 이메일로 로그인해야 합니다.
관리자에게 권한 추가를 요청하세요.
Q14. 공사비현황에서 노무비가 실제보다 적게 나와요
계약서에 분리단가(재료비/노무비/경비)가 있는지 확인하세요.
분리단가가 없으면 태그(재료/노무) 기반으로 분류되는데, 태그가 잘못 지정되었을 수 있습니다.
계약서 관리 탭에서 해당 항목의 태그를 확인하고, 분리단가가 있다면 계약서를 재등록하세요.
Q15. 기성현황 엑셀 붙여넣기 시 날짜 인식이 안 돼요
2번째 컬럼이 YYYY-MM (예: 2026-03) 또는 YYYY-MM-DD (예: 2026-03-15) 형식인지 확인합니다.
엑셀에서 셀 서식을 "텍스트"로 변경한 후 날짜를 직접 입력하면 확실합니다.
"2026/03"처럼 슬래시(/)로 구분해도 인식됩니다.
엑셀의 날짜 셀이 숫자(예: 46112)로 복사되는 경우가 있습니다. 이 경우 셀 서식을 변경하세요.
Q16. 3개 시스템의 데이터는 어떻게 연결되나요?
데이터 흐름 요약:
- V164에서 자재코드를 학습하면 → v1.2.22 계약서에서 코드 검증에 활용됩니다.
- v3.4.47에서 발주서를 저장하면 → v1.2.22 대시보드에서 발주금액이 실시간 반영됩니다.
- v3.4.47에서 원가 분개를 입력하면 → v1.2.22 공사비현황(Tab5)에서 원가 데이터가 반영됩니다.
- v1.2.22에서 기성을 입력하면 → v1.2.22 공사비현황(Tab5)의 기성 행이 업데이트됩니다.
모든 데이터는 Firestore 클라우드에 저장되므로, 한 곳에서 입력하면 다른 곳에서 자동으로 보입니다.
빠른 시작 가이드 (Quick Start)
처음 시스템을 사용하는 직원을 위한 핵심 요약입니다.
첫째 날 — 기본 설정
Chrome 브라우저에서 https://untech-poju.web.app 접속
메인 홈에서 3개 시스템 카드를 각각 클릭하여 접속 확인
일상 업무 — 발주서 처리
v3.4.47 발주서 관리 → 발주서 작성 탭에서 업체 선택 → 품목 입력 → 저장 → 인쇄
발주 현황 탭에서 기존 발주서 조회/수정/상태 변경
주간/월간 — 분석 및 관리
v1.2.22 대시보드에서 현장별 발주 집행률 확인
기성현황 탭에서 매월 기성 데이터 입력 (엑셀 붙여넣기)
v3.4.47 원가현황 탭에서 원가 분개 입력 (관리자)
v1.2.22 공사비현황 탭에서 전체 현장 기성률/원가율 비교
통계/분석 탭에서 월별/업체별 발주 동향 분석
분기말/연말 — 백업
각 시스템의 백업/복원 탭에서 JSON 백업 다운로드
가장 중요한 3가지:
1. 발주서 저장 전에 "미발주/재발주 품목 체크"를 반드시 확인하세요.
2. 계약연결을 해야 계약대비발주 분석이 정확합니다.
3. 원가/기성 데이터를 매월 꾸준히 입력해야 공사비 현황이 의미 있습니다.
㈜유앤테크
통합 발주관리 시스템 매뉴얼 v3 (v3.4.47 / v1.2.22 / V164)
경기도 부천시 원미구 조마루로385번길 122 삼보테크노타워 1902호
032-324-1201 | untech1201@naver.com
https://untech-poju.web.app
본 매뉴얼의 무단 복제 및 배포를 금합니다. | 2026년 3월 29일 작성