---
source: mes_react/src/USER_STORY_GUIDE.md
section: 비즈니스 로직 분석
created: 2025-11-12
bp_mes_phase: Phase A - Step A.1
related:
  - business_quotation_guide_summary.md
  - api_item_analysis_summary.md
  - react_screen_spec_summary.md
tags: [user-story, quotation, bom, workflow, roles]
---

# ERP 견적 시스템 - 유저 스토리 요약

**분석일:** 2025-11-12
**원본 문서:** 623줄
**핵심 내용:** 역할별 사용자 스토리 17개 (S1~S17)

---

## Executive Summary

### 📋 문서 구조

역할별로 세분화된 17개 유저 스토리 (S1~S17)를 4개 Phase로 구성:

1. **Phase 1**: 자재/부품 마스터 등록 (S1~S3)
2. **Phase 2**: 부품 BOM 및 원가 정의 (S4~S7)
3. **Phase 3**: 제품 BOM 및 최종 정책 정의 (S8~S12)
4. **Phase 4**: 견적 산출 (S13~S17)

**특징:** 각 스토리마다 역할, 메뉴 경로, 상세 액션, 데이터 입력 목표 명시

---

## Phase 1: 자재/부품 마스터 등록

**목표:** 모든 원자재와 부품을 시스템에 등록하고, 구매/재고 기준을 설정

### S1: 원자재 (RM) 등록

**역할:** 기준정보 담당자

**스토리:** 원자재 (RM)를 등록하고 싶다. BOM 계산의 가장 기초가 되는 품목과 그 매입단가가 존재하도록.

**메뉴 경로:** `생산관리 > 품목관리 (개선)`

**상세 액션:**
1. [신규 등록] 버튼 클릭
2. 기본 정보 탭:
   - 품목 코드: RM-001 (자동 생성)
   - 품목 유형: **원자재 (RM)** 선택
   - 품목명: `알루미늄 압출재`
   - 단위: `M` (미터)
   - 구매단가: `8000` 원
3. [등록] 버튼 클릭

**데이터 입력 목표:** ✅ RM-001 (알루미늄 압출재) 등록 완료

---

### S2: 구매 부품 (PT) 등록

**역할:** 기준정보 담당자

**스토리:** 구매 부품 (PT)을 등록하고 싶다. BOM에 사용될 모터/브라켓 등 외부에서 조달하는 품목을 식별하도록.

**메뉴 경로:** `생산관리 > 품목관리 (개선)`

**상세 액션:**
1. [신규 등록] 버튼 클릭
2. 기본 정보 탭:
   - 품목 코드: PT-MOTOR-001 (자동 생성)
   - 품목 유형: **부품 (PT)** 선택
   - 부품 유형: **구매 부품** 선택
   - 품목명: `셔터 모터`
   - 단위: `EA`
   - 구매단가: `120000` 원
   - 마진율: `50` %
   - 판매단가: `180000` 원 (자동 계산됨)
3. [등록] 버튼 클릭

**데이터 입력 목표:** ✅ PT-MOTOR-001 (셔터 모터) 등록 완료

**자동 계산 공식:**
```
판매단가 = 구매단가 × (1 + 마진율/100)
         = 120,000 × 1.5
         = 180,000원
```

---

### S3: 제작 부품 등록

**역할:** 기준정보 담당자

**스토리:** 제작 부품을 등록하고 싶다. BOM과 치수 로직이 필요한 가이드레일 품목의 마스터를 생성하도록.

**메뉴 경로:** `생산관리 > 품목관리 (개선)`

**상세 액션:**
1. [신규 등록] 버튼 클릭
2. 기본 정보 탭:
   - 품목 코드: PT-RAIL-VAR (자동 생성)
   - 품목 유형: **부품 (PT)** 선택
   - 부품 유형: **제작 부품** 선택
   - 품목명: `가이드레일 (가변 길이)`
   - 단위: `EA`
   - ✅ **"가변 크기 제품" 체크** ← 중요!
3. [등록] 버튼 클릭

**데이터 입력 목표:** ✅ PT-RAIL-VAR (가이드레일) 등록 완료

---

## Phase 2: 부품 BOM 및 원가 정의

**목표:** 제작 부품(PT)에 BOM 로직을 부여하고, 자체 원가/판매가를 확정

### S4: 제작 부품의 치수 정의

**역할:** 생산기술 담당자

**스토리:** 제작 부품의 치수를 정의하고 싶다. 가이드레일의 소요량 계산에 필요한 길이(G) 변수를 설정하도록.

**메뉴 경로:** `생산관리 > 품목관리 (개선) > PT-RAIL-VAR 상세`

**상세 액션:**
1. 품목 목록에서 PT-RAIL-VAR 선택
2. [수정] 버튼 클릭
3. 치수/규격 탭 클릭
4. [치수 추가] 버튼 클릭:
   - 치수명: `G`
   - 설명: `길이`
   - 단위: `mm`
   - 기본값: `3500`
   - 최소값: `500`
   - 최대값: `6000`
5. [저장] 버튼 클릭

**데이터 입력 목표:** ✅ G 치수 정의 완료

---

### S5: 부품 BOM 생성

**역할:** 생산기술 담당자

**스토리:** 부품 BOM을 생성하고 싶다. 가이드레일이 알루미늄 압출재를 소요하는 구조를 확립하도록.

**메뉴 경로:** `생산관리 > BOM관리 (개선)`

**상세 액션:**
1. [BOM 등록] 버튼 클릭
2. 기본 정보:
   - 상위 품목: **PT-RAIL-VAR** 선택
   - 버전: `1.0`
3. [저장] 버튼 클릭

**데이터 입력 목표:** ✅ 부품 BOM 헤더 생성 완료

---

### S6: 부품 BOM 소요량 수식 입력

**역할:** 생산기술 담당자

**스토리:** 부품 BOM 소요량 수식을 입력하고 싶다. G 치수와 RM 단가를 연동하여 BOM 계산이 가능하도록.

**메뉴 경로:** `생산관리 > BOM관리 (개선) > PT-RAIL-VAR BOM 상세`

**상세 액션:**
1. PT-RAIL-VAR BOM 선택
2. [수정] 버튼 클릭
3. BOM 라인 탭
4. [구성품 추가] 버튼 클릭

**자재 1: 알루미늄 압출재**
- 하위 품목: **RM-001** (알루미늄 압출재) 선택
- 수량 (고정): `0`
- **계산식 (변수)**: `G/1000*1.02` ← 연실율 반영!
- [추가] 버튼 클릭

**자재 2: 브래킷**
- [구성품 추가] 버튼 클릭
- 하위 품목: **RM-003** (브래킷) 선택
- 수량 (고정): `8`
- 계산식: (비워둠)
- [추가] 버튼 클릭

5. [저장] 버튼 클릭

**데이터 입력 목표:** ✅ G에 따른 자재 소요량 로직 정의 완료

**수식 설명:**
```
G = 3500mm일 때:
알루미늄 소요량 = G/1000 × 1.02
                = 3500/1000 × 1.02
                = 3.57 M (연실율 2% 반영)
```

---

### S7: 부품의 매출 단가 설정

**역할:** 원가 관리팀

**스토리:** 부품의 매출 단가를 설정하고 싶다. 가공비와 마진율을 적용하여 상위 제품 BOM의 자재비로 사용되도록.

**메뉴 경로:** `생산관리 > 품목관리 (개선) > PT-RAIL-VAR 상세`

**상세 액션:**
1. PT-RAIL-VAR 품목 선택
2. [수정] 버튼 클릭
3. 원가 탭 클릭:
   - 자재비: BOM 기반 자동 계산 (표시만)
   - 가공비: `3000` 원
   - 마진율: `20` %
4. [저장] 버튼 클릭

**데이터 입력 목표:** ✅ PT-RAIL-VAR의 판매단가 로직 확정

**원가 계산 예시 (G=3500mm):**
```
[자재비]
알루미늄: 3.57M × 8,000원 = 28,560원
브래킷: 8개 × 500원 = 4,000원
자재비 합계 = 32,560원

[총원가]
총원가 = 자재비 + 가공비
       = 32,560 + 3,000
       = 35,560원

[판매단가]
판매단가 = 총원가 × (1 + 마진율/100)
         = 35,560 × 1.2
         = 42,672원
```

---

## Phase 3: 제품 BOM 및 최종 정책 정의

**목표:** 최종 제품(FG)을 등록하고, 부품 BOM과 치수 로직을 연동하며 최종 판매 정책을 설정

### S8: 최종 판매 제품 (FG) 등록

**역할:** 기준정보 담당자

**스토리:** 최종 판매 제품 (FG)을 등록하고 싶다. 견적서에 나갈 셔터 세트 품목의 마스터를 생성하도록.

**메뉴 경로:** `생산관리 > 품목관리 (개선)`

**상세 액션:**
1. [신규 등록] 버튼 클릭
2. 기본 정보 탭:
   - 품목 코드: FG-SHUTTER-SET-VAR (자동 생성)
   - 품목 유형: **완제품 (FG)** 선택
   - 품목명: `셔터 세트 (가변 크기)`
   - 단위: `SET`
   - ✅ **"가변 크기 제품" 체크**
3. [등록] 버튼 클릭

**데이터 입력 목표:** ✅ FG-SHUTTER-SET (셔터 세트) 등록 완료

---

### S9: 제품의 치수/옵션 정의

**역할:** 생산기술 담당자

**스토리:** 제품의 치수/옵션을 정의하고 싶다. 영업 담당자가 입력할 W, H 및 MOTOR 옵션을 설정하도록.

**메뉴 경로:** `생산관리 > 품목관리 (개선) > FG-SHUTTER-SET-VAR 상세`

**상세 액션:**
1. FG-SHUTTER-SET-VAR 품목 선택
2. [수정] 버튼 클릭
3. 치수/규격 탭 클릭

**치수 추가:**
- [치수 추가] 버튼 클릭:
  - 치수명: `W`
  - 설명: `폭`
  - 단위: `mm`
  - 기본값: `3500`
- [치수 추가] 버튼 클릭:
  - 치수명: `H`
  - 설명: `높이`
  - 단위: `mm`
  - 기본값: `2500`

**옵션 추가:**
- [옵션 추가] 버튼 클릭:
  - 옵션명: `MOTOR`
  - 설명: `모터 포함`
  - 유형: `Y/N`
  - 기본값: `Y`

4. [저장] 버튼 클릭

**데이터 입력 목표:** ✅ 최종 견적 입력 변수 확정 (W, H, MOTOR)

---

### S10: 제품 BOM 생성

**역할:** 생산기술 담당자

**스토리:** 제품 BOM을 생성하고 싶다. 부품 BOM인 PT-RAIL-VAR 등을 포함하는 최상위 구조를 만들도록.

**메뉴 경로:** `생산관리 > BOM관리 (개선)`

**상세 액션:**
1. [BOM 등록] 버튼 클릭
2. 기본 정보:
   - 상위 품목: **FG-SHUTTER-SET-VAR** 선택
   - 버전: `1.0`
3. BOM 라인 탭
4. [구성품 추가] 버튼 클릭

**구성품 1: 가이드레일**
- 하위 품목: **PT-RAIL-VAR** 선택
- 수량: `2`
- 조건: (비워둠)
- [추가] 버튼 클릭

**구성품 2: 셔터 모터 (조건부)**
- [구성품 추가] 버튼 클릭
- 하위 품목: **PT-MOTOR-001** 선택
- 수량: `1`
- 조건: `MOTOR='Y'` ← 중요!
- [추가] 버튼 클릭

5. [저장] 버튼 클릭

**데이터 입력 목표:** ✅ 제품 BOM 헤더 생성 완료

---

### S11: 치수 연결 매핑 정의 ⭐ (핵심 기능!)

**역할:** 생산기술 담당자

**스토리:** 치수 연결 매핑을 정의하고 싶다. 최상위 입력 치수가 하위 부품의 계산 변수로 자동으로 전달되도록.

**메뉴 경로:** `생산관리 > BOM관리 (개선) > FG-SHUTTER-SET-VAR BOM 상세`

**상세 액션:**
1. FG-SHUTTER-SET-VAR BOM 선택
2. [수정] 버튼 클릭
3. **치수 연결** 탭 클릭 ⭐
4. [매핑 추가] 버튼 클릭

**매핑 1: 세트.W → 가이드레일.G**
- 하위 품목: **PT-RAIL-VAR** 선택
- 하위 치수: **G** 선택
- (화살표)
- 상위 치수: **W** 선택
- [추가] 버튼 클릭

**매핑 결과 확인:**
```
가이드레일.G ← 셔터세트.W
```

5. [저장] 버튼 클릭

**데이터 입력 목표:** ✅ W=G 연동 로직 확정

**동작 원리:**
```
견적 입력: 세트 W=3500

↓ 자동 전달 (치수 매핑)

가이드레일 G = 3500

↓ BOM 계산

알루미늄 소요량 = 3500/1000 × 1.02 = 3.57M
```

---

### S12: 제품의 최종 판매 정책 설정

**역할:** 원가 관리팀

**스토리:** 제품의 최종 판매 정책을 설정하고 싶다. 공임비/설치비와 마진율을 적용하여 최종 견적가를 산출하도록.

**메뉴 경로:** `생산관리 > 품목관리 (개선) > FG-SHUTTER-SET-VAR 상세`

**상세 액션:**
1. FG-SHUTTER-SET-VAR 품목 선택
2. [수정] 버튼 클릭
3. 원가 탭 클릭:
   - 자재비: 하위 구성품 판매단가 합계 (자동 계산)
   - 공임비: `100000` 원
   - 설치비: `50000` 원
   - 마진율: `25` %
4. [저장] 버튼 클릭

**데이터 입력 목표:** ✅ 최종 견적 단가 산출 정책 확정

**원가 계산 예시 (W=3500, H=2500, MOTOR=Y):**
```
[자재비 - 하위 구성품 판매단가 합계]
가이드레일 × 2: 42,672 × 2 = 85,344원
셔터 커튼 × 1: (면적 기반) = 291,664원
셔터 모터 × 1: 180,000원 (MOTOR=Y)
자재비 합계 = 557,008원

[총원가]
총원가 = 자재비 + 공임비 + 설치비
       = 557,008 + 100,000 + 50,000
       = 707,008원

[판매단가]
판매단가 = 총원가 × (1 + 마진율/100)
         = 707,008 × 1.25
         = 883,760원
```

---

## Phase 4: 견적 산출

**목표:** 단 한 번의 입력으로 모든 BOM과 단가 로직을 구동하여 견적을 산출

### S13: 새 견적서 생성

**역할:** 영업 담당자

**스토리:** 새 견적서를 만들고 싶다. 고객과의 거래를 시작할 수 있도록.

**메뉴 경로:** `영업관리 > 견적관리 (개선)`

**상세 액션:**
1. [신규 견적 작성] 버튼 클릭
2. 기본 정보:
   - 견적번호: QT-2025-0001 (자동 생성)
   - 거래처명: **ABC건설** 선택
   - 담당자: **김영업** 선택
   - 견적일자: 2025-01-22 (오늘)
   - 납기일자: 2025-02-15
   - 비고: (선택사항)

**견적 계산 Flow:** 견적서 헤더 생성 완료

---

### S14: 가변 제품을 견적서에 추가

**역할:** 영업 담당자

**스토리:** 가변 제품을 견적서에 추가하고 싶다. FG-셔터세트를 견적 계산 대상으로 지정하도록.

**메뉴 경로:** `견적 작성 다이얼로그 > 품목 추가`

**상세 액션:**
1. [품목 추가] 버튼 클릭
2. 품목 선택:
   - 품목: **FG-SHUTTER-SET-VAR** (셔터 세트) 선택

**견적 계산 Flow:** 품목 선택 완료

---

### S15: 고객 요구 사이즈와 옵션 입력

**역할:** 영업 담당자

**스토리:** 고객 요구 사이즈와 옵션을 입력하고 싶다. 견적 엔진이 모든 BOM 연동 로직을 시작할 수 있도록.

**메뉴 경로:** `품목 추가 다이얼로그 > 치수/옵션 입력`

**상세 액션:**
1. 치수 입력:
   - 폭 (W): `3500` mm 입력
   - 높이 (H): `2500` mm 입력

2. 옵션 선택:
   - 모터 포함 (MOTOR): `Y` 선택

3. 수량:
   - 수량: `1` 입력

**견적 계산 Flow:** W→G 전달 → 부품 BOM → 제품 BOM 순차 계산

**자동 계산 프로세스:**
```
1. 치수 전달 (매핑 규칙)
   세트.W=3500 → 가이드레일.G=3500

2. 하위 품목 계산 (PT-RAIL-VAR)
   알루미늄: 3500/1000 × 1.02 = 3.57M
   자재비: 3.57 × 8,000 = 28,560원
   브래킷: 8 × 500 = 4,000원
   가공비: 3,000원
   판매단가: 35,560 × 1.2 = 42,672원

3. 상위 품목 계산 (FG-SHUTTER-SET-VAR)
   자재비: 42,672×2 + 291,664 + 180,000 = 557,008원
   총원가: 557,008 + 100,000 + 50,000 = 707,008원
   판매단가: 707,008 × 1.25 = 883,760원
```

---

### S16: 실시간 견적 단가 확인

**역할:** 영업 담당자

**스토리:** 실시간으로 견적 단가를 확인하고 싶다. 복잡한 수식과 다단계 BOM 로직이 반영된 최종 금액을 즉시 알 수 있도록.

**메뉴 경로:** `품목 추가 다이얼로그 > 견적 계산 미리보기`

**상세 액션:**
1. 치수/옵션 입력 완료 후 자동으로 계산됨
2. **견적 계산 미리보기** 영역 확인

**표시 내용:**
```
┌─────────────────────────────────────┐
│ 구성품 목록 (BOM 전개)              │
├─────────────────────────────────────┤
│ • 가이드레일 (3.5m) × 2   85,344원 │
│ • 셔터 커튼 (8.75㎡) × 1 291,664원  │
│ • 셔터 모터 × 1          180,000원  │
├─────────────────────────────────────┤
│ 원가 내역                           │
├─────────────────────────────────────┤
│ 자재비:     557,008원               │
│ 공임비:     100,000원               │
│ 설치비:      50,000원               │
│ 총 원가:    707,008원               │
├─────────────────────────────────────┤
│ 견적 금액                           │
├─────────────────────────────────────┤
│ 판매단가:   883,760원 (마진 25%)    │
│ 부가세:      88,376원 (10%)         │
│ 총액:       972,136원               │
└─────────────────────────────────────┘
```

**견적 계산 Flow:** RM 구매단가 → PT 판매단가 → FG 최종 견적단가 산출 완료

---

### S17: 확정된 견적 금액 저장 및 PDF 출력

**역할:** 영업 담당자

**스토리:** 확정된 견적 금액을 저장하고 싶다. 고객에게 제시할 공식 문서를 생성하도록.

**메뉴 경로:** `견적 작성 다이얼로그 > 저장 및 출력`

**상세 액션:**
1. 견적서에 추가:
   - [견적서에 추가] 버튼 클릭
   - 품목이 견적 라인에 추가됨

2. (반복) 추가 품목 등록:
   - 필요시 추가 품목 등록 가능

3. 견적서 저장:
   - [견적서 저장] 버튼 클릭
   - 견적 상태: "견적완료"로 변경
   - 견적 목록에 추가됨

4. PDF 출력:
   - 견적 목록에서 해당 견적 선택
   - [출력] 버튼 클릭
   - 브라우저 프린트 창 자동 열림
   - PDF로 저장 또는 프린터 출력

**견적 계산 Flow:** ✅ 최종 견적서 발행 완료

---

## 🎯 핵심 자동화 프로세스 요약

### 1. 치수 자동 연결 (S11)
```
설정: BOM관리 > 치수 연결 탭
세트.W → 레일.G

실행: 견적 작성 시
입력: W=3500
자동: G=3500
```

### 2. 소요량 계산식 (S6)
```
수식: G/1000*1.02 (연실율 반영)
G=3500일 때: 3.57M
```

### 3. 단가 자동 연동 (S7, S12)
```
하위 품목 판매단가 → 상위 품목 자재비
가이드레일 42,672원 → 셔터세트 자재비에 반영
```

### 4. 조건부 BOM (S10)
```
MOTOR='Y' → 모터 포함 (180,000원)
MOTOR='N' → 모터 제외
```

---

## 📊 데이터 흐름도

```
Phase 1: 기초 데이터
├─ S1: RM-001 (알루미늄) 등록
├─ S2: PT-MOTOR-001 (모터) 등록
└─ S3: PT-RAIL-VAR (가이드레일) 등록

Phase 2: 부품 BOM
├─ S4: 치수 정의 (G)
├─ S5-S6: BOM 생성 (RM-001, 수식: G/1000*1.02)
└─ S7: 원가 설정 (가공비 3,000, 마진 20%)

Phase 3: 제품 BOM
├─ S8-S9: 제품 등록 (W, H, MOTOR 옵션)
├─ S10: BOM 생성 (PT-RAIL-VAR × 2, PT-MOTOR-001)
├─ S11: 치수 연결 (W→G) ⭐
└─ S12: 원가 설정 (공임/설치비, 마진 25%)

Phase 4: 견적 산출
├─ S13: 견적서 생성
├─ S14-S15: 품목 추가 (W=3500, H=2500, MOTOR=Y)
├─ S16: 실시간 계산 (883,760원)
└─ S17: 저장 및 PDF 출력 ✅
```

---

## 역할 매핑 테이블

| Phase | Story | 역할 | 담당 업무 |
|-------|-------|------|----------|
| 1 | S1 | 기준정보 담당자 | 원자재 등록 |
| 1 | S2 | 기준정보 담당자 | 구매 부품 등록 |
| 1 | S3 | 기준정보 담당자 | 제작 부품 등록 |
| 2 | S4 | 생산기술 담당자 | 치수 정의 |
| 2 | S5 | 생산기술 담당자 | 부품 BOM 생성 |
| 2 | S6 | 생산기술 담당자 | BOM 소요량 수식 입력 |
| 2 | S7 | 원가 관리팀 | 부품 매출 단가 설정 |
| 3 | S8 | 기준정보 담당자 | 최종 제품 등록 |
| 3 | S9 | 생산기술 담당자 | 제품 치수/옵션 정의 |
| 3 | S10 | 생산기술 담당자 | 제품 BOM 생성 |
| 3 | S11 | 생산기술 담당자 | 치수 연결 매핑 정의 ⭐ |
| 3 | S12 | 원가 관리팀 | 제품 최종 판매 정책 설정 |
| 4 | S13 | 영업 담당자 | 견적서 생성 |
| 4 | S14 | 영업 담당자 | 가변 제품 추가 |
| 4 | S15 | 영업 담당자 | 치수/옵션 입력 |
| 4 | S16 | 영업 담당자 | 실시간 견적 확인 |
| 4 | S17 | 영업 담당자 | 견적서 저장/PDF 출력 |

---

## 메뉴 경로 요약

| 메뉴 | Story | 주요 기능 |
|------|-------|----------|
| `생산관리 > 품목관리 (개선)` | S1, S2, S3, S4, S7, S8, S9, S12 | 품목/치수/옵션/원가 관리 |
| `생산관리 > BOM관리 (개선)` | S5, S6, S10, S11 | BOM/소요량/치수연결 관리 |
| `영업관리 > 견적관리 (개선)` | S13, S14, S15, S16, S17 | 견적 작성/계산/출력 |

---

## 백엔드 구현 요구사항 (API 관점)

### 필요한 데이터 모델

1. **품목 (Products/Materials):**
   - 가변 크기 플래그 (`is_variable_size`)
   - 치수 정의 (`dimensions` JSON)
   - 옵션 정의 (`options` JSON)

2. **BOM (BOM Templates / Product Components):**
   - 구성품 라인 (`components`)
   - 수량 고정값 (`quantity`)
   - 계산식 (`formula`)
   - 조건식 (`condition`)

3. **치수 연결 매핑 (Dimension Mappings):**
   - 상위 품목 ID
   - 하위 품목 ID
   - 상위 치수명
   - 하위 치수명

4. **견적 (Quotes):**
   - 견적 헤더 (거래처, 담당자, 날짜)
   - 견적 라인 (품목, 치수값, 옵션값, 수량)
   - 계산 결과 (BOM 전개, 원가 내역)

### 필요한 API 엔드포인트

1. **품목 관리:**
   - `POST /api/v1/products` - 품목 등록 (치수/옵션 포함)
   - `PUT /api/v1/products/{id}` - 품목 수정 (원가 설정)

2. **BOM 관리:**
   - `POST /api/v1/boms` - BOM 생성
   - `POST /api/v1/boms/{id}/components` - 구성품 추가 (수식 포함)
   - `POST /api/v1/boms/{id}/dimension-mappings` - 치수 연결 매핑

3. **견적 관리:**
   - `POST /api/v1/quotes` - 견적서 생성
   - `POST /api/v1/quotes/{id}/items` - 품목 추가 (치수/옵션 입력)
   - `POST /api/v1/quotes/{id}/calculate` - 실시간 견적 계산
   - `GET /api/v1/quotes/{id}/pdf` - PDF 출력

---

## 프론트엔드 구현 요구사항 (React 관점)

### 필요한 컴포넌트

1. **ItemMasterForm (S1-S3, S8):**
   - 품목 유형 선택 (RM/PT/FG)
   - 가변 크기 체크박스
   - 구매/제작 부품 구분

2. **DimensionEditor (S4, S9):**
   - 치수 동적 추가/삭제
   - 치수명, 단위, 기본값, 최소/최대값 입력

3. **OptionEditor (S9):**
   - 옵션 동적 추가/삭제
   - 옵션명, 유형 (Y/N), 기본값 입력

4. **BomEditor (S5, S6, S10):**
   - 구성품 트리 뷰
   - 수량/계산식 입력
   - 조건식 입력

5. **DimensionMappingEditor (S11):**
   - 상위-하위 치수 매핑 UI
   - 드래그 앤 드롭 또는 셀렉트 박스

6. **CostEditor (S7, S12):**
   - 자재비 자동 계산 표시
   - 가공비/공임비/설치비 입력
   - 마진율 입력
   - 판매단가 자동 계산 표시

7. **QuoteForm (S13-S17):**
   - 견적서 헤더 입력
   - 품목 선택 모달
   - 치수/옵션 입력 폼
   - 실시간 견적 계산 미리보기
   - BOM 전개 트리 뷰
   - 원가 내역 표시
   - PDF 출력 버튼

---

## 관련 문서

- **ERP_QUOTATION_GUIDE.md**: 시스템 개요 및 6단계 Phase 가이드
- **api_item_analysis_summary.md**: API 품목 분석 (가격 시스템, BOM)
- **react_screen_spec_summary.md**: 화면 설계 명세 (견적 관리, 품목 관리)

---

**문서 버전:** v1.0 요약본
**작성일:** 2025-11-12 (BP-MES Phase A.1)
**다음 단계:** 문서 간 교차 참조 맵 생성
