# R&D 메뉴

> **작성일**: 2026-03-08
> **상태**: 운영 중
> **프로젝트**: SAM MNG (관리자 웹)
> **라우트 접두사**: `/rd`

---

## 1. 개요

### 1.1 목적

R&D 메뉴는 SAM 플랫폼의 **연구개발 및 내부 도구** 모음이다. AI 견적, 조직도 관리, 기획디자인(스토리보드 에디터), 안전점검 등 실험적이거나 내부 운영 목적의 기능을 제공한다.

### 1.2 문서 구조

| 문서 | 설명 |
|------|------|
| **README.md** (이 문서) | 전체 개요, 메뉴 구조, 컨트롤러 매핑 |
| [planning-design.md](planning-design.md) | 기획디자인 스토리보드 에디터 기술 명세 |
| [design-insight.md](design-insight.md) | 디자인 인사이트 UI/UX 연구 도구 (100종 패턴, AI 프롬프트) |
| [fire-shutter-drawing-guide-rail.md](fire-shutter-drawing-guide-rail.md) | 방화셔터 도면 가이드레일 SVG/3D 렌더링 |

### 1.3 하위 메뉴 구조

```
R&D
├── 대시보드               /rd
├── 조직도 관리            /rd/org-chart
├── 중대재해처벌법 점검     /rd/safety-audit
├── AI 견적               /rd/ai-quotation
│   ├── 목록              /rd/ai-quotation
│   ├── 생성              /rd/ai-quotation/create
│   ├── 상세              /rd/ai-quotation/{id}
│   ├── 편집              /rd/ai-quotation/{id}/edit
│   └── 문서              /rd/ai-quotation/{id}/document
├── 기획디자인             /rd/planning-design
├── 디자인 인사이트         /rd/design-insight
└── 방화셔터 도면           /rd/fire-shutter-drawing
```

---

## 2. 아키텍처

### 2.1 기술 스택

| 계층 | 기술 | 설명 |
|------|------|------|
| 뷰 | Blade + Alpine.js | 반응형 SPA (서버 렌더링 없음) |
| 컨트롤러 | `RdController` | 모든 R&D 라우트 처리 |
| 서비스 | `AiQuotationService` | AI 견적 비즈니스 로직 |
| 모델 | `AiQuotation`, `Employee`, `Department`, `Tenant` | Multi-tenant |
| 저장 | localStorage (기획디자인), DB (견적/조직도) | 용도별 분리 |

### 2.2 컨트롤러 구조

**파일**: `app/Http/Controllers/RdController.php`

| 메서드 | 라우트 | 설명 |
|--------|--------|------|
| `index()` | `GET /rd` | R&D 대시보드 |
| `orgChart()` | `GET /rd/org-chart` | 조직도 관리 |
| `orgChartAssign()` | `POST /rd/org-chart/assign` | 직원 부서 배치 |
| `orgChartUnassign()` | `POST /rd/org-chart/unassign` | 직원 부서 해제 |
| `orgChartReorder()` | `POST /rd/org-chart/reorder` | 직원 순서/이동 |
| `orgChartReorderDepts()` | `POST /rd/org-chart/reorder-depts` | 부서 순서 변경 |
| `orgChartToggleHide()` | `POST /rd/org-chart/toggle-hide` | 부서 숨기기/표시 |
| `safetyAudit()` | `GET /rd/safety-audit` | 중대재해처벌법 점검 |
| `quotations()` | `GET /rd/ai-quotation` | AI 견적 목록 |
| `createQuotation()` | `GET /rd/ai-quotation/create` | AI 견적 생성 폼 |
| `showQuotation()` | `GET /rd/ai-quotation/{id}` | AI 견적 상세 |
| `editQuotation()` | `GET /rd/ai-quotation/{id}/edit` | AI 견적 편집 |
| `documentQuotation()` | `GET /rd/ai-quotation/{id}/document` | AI 견적 문서 |
| `planningDesign()` | `GET /rd/planning-design` | 기획디자인 |
| `designInsight()` | `GET /rd/design-insight` | 디자인 인사이트 |

### 2.3 HTMX 전체 페이지 로드 규칙

모든 `/rd/*` 페이지는 Alpine.js 또는 React 컴포넌트를 사용하므로, HTMX 부분 로드 시 스크립트가 실행되지 않는다. 각 메서드에서 `HX-Request` 감지 시 `HX-Redirect`로 전체 페이지 로드를 강제한다.

```php
if ($request->header('HX-Request')) {
    return response('', 200)->header('HX-Redirect', route('rd.planning-design'));
}
```

---

## 3. 기능별 구현 현황

| 기능 | 구현 방식 | 백엔드 | DB | 상태 |
|------|----------|--------|-----|------|
| R&D 대시보드 | Blade | AiQuotationService | ai_quotations | 운영 중 |
| 조직도 관리 | Blade + Alpine.js | RdController (직접 쿼리) | employees, departments | 운영 중 |
| 중대재해처벌법 점검 | Blade (정적) | 없음 | 없음 | 운영 중 |
| AI 견적 | Blade + Alpine.js | AiQuotationService | ai_quotations | 운영 중 |
| **기획디자인** | **Blade + Alpine.js (SPA)** | **없음 (localStorage)** | **없음** | **운영 중** |
| **디자인 인사이트** | **Blade + Alpine.js (SPA)** | **없음 (localStorage)** | **없음** | **운영 중** |
| **방화셔터 도면** | **Blade + JS (SVG/Three.js)** | **RdController** | **없음** | **운영 중** |

---

## 4. 관련 문서

- [기획디자인 스토리보드 에디터](planning-design.md) — 블록 에디터, 서식, 인쇄, 내보내기
- [디자인 인사이트](design-insight.md) — UI/UX 연구 도구 (100종 패턴, AI 프롬프트 복사)
- [방화셔터 도면 가이드레일](fire-shutter-drawing-guide-rail.md) — 가이드레일 SVG/3D 렌더링 기술 명세
- [조직도 관리 기술문서](../../projects/org-chart/) — 조직도 시스템 상세 (별도 프로젝트 문서)

---

**최종 업데이트**: 2026-03-08
