Files
sam-docs/plans/document-system-master.md
권혁성 da2839c4d0 docs: 문서관리 시스템 및 채번규칙 계획 문서 업데이트
- 문서관리 시스템 계획/변경이력/마스터 진행상황 반영
- 중간검사 서식 계획 신규 추가
- 채번규칙 관리 계획 상세화 (1767줄 확장)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 10:02:47 +09:00

24 KiB
Raw Blame History

문서관리 시스템 - 마스터 진행 관리

작성일: 2026-02-10 목적: mng에서 문서양식(템플릿)을 관리하고, SAM(react)에서 JSON으로 소비하는 문서관리 시스템. 수입검사/중간검사/제품검사/작업일지 폼을 지원한다. 상태: Phase 13 , Phase 4 🔄, Phase 5.0 , Phase 5.1 🔄, Phase 5.2 , Phase 5.3 🔄 (5.3.13 , 5.3.4 , mng 상세보기 완료)


🚀 새 세션 시작 가이드

이 문서만 보고 작업을 시작할 수 있도록 작성되었습니다.

프로젝트 정보

항목 내용
SAM 루트 /Users/kent/Works/@KD_SAM/SAM/ (Git 저장소 아님)
mng /Users/kent/Works/@KD_SAM/SAM/mng/ — Laravel 12 + Blade + DaisyUI + HTMX + Alpine.js
api /Users/kent/Works/@KD_SAM/SAM/api/ — Laravel 12 REST API
react /Users/kent/Works/@KD_SAM/SAM/react/ — Next.js 15 프론트엔드
5130 /Users/kent/Works/@KD_SAM/SAM/5130/ — 레거시 (참조 전용)
docs /Users/kent/Works/@KD_SAM/SAM/docs/ — 기술 문서
mng URL https://mng.sam.kr (Docker 로컬, admin.sam.kr 동일)
react URL https://dev.sam.kr (Docker 로컬)
api URL https://api.sam.kr (Docker 로컬)

Git: api/, mng/, react/ 각각 독립 Git 저장소

세션 시작 체크리스트

1. 이 문서를 읽는다 (📍 현재 진행 상태 확인)
2. 다음 작업할 Phase의 상세 문서를 읽는다 (섹션 1 링크)
3. 해당 프로젝트의 CLAUDE.md를 읽는다 (mng/CLAUDE.md 또는 api/CLAUDE.md)
4. 작업 시작 전 사용자에게 확인

📍 현재 진행 상태

항목 내용
마지막 완료 Phase 5.2 제품검사(FQC) 폼 구현 (5.2.1~5.2.5 전체 완료) (2026-02-12)
미완료 Phase 4.4 - 프론트엔드 담당자 협의 후 react 전환 결정
현재 작업 Phase 5.1.6 (결재 워크플로우 보류), Phase 5.3.4 (React 전환 대기)
진행률 Phase 1~3 , Phase 4 (3/4), Phase 5.0 , Phase 5.1 (5/6), Phase 5.2 , Phase 5.3 (3/4+α, mng )
마지막 업데이트 2026-02-12

1. 전체 진행 현황

Phase 이름 진행률 상태 상세 문서
1 mng 양식 관리 (수입검사) 5/5 Phase 1~4 아카이브
2 mng 문서 생성/관리 4/5 Phase 1~4 아카이브
3 중간검사 양식 추가 (시더/이관설계) 4/4 Phase 1~4 아카이브
4 API 연동 및 mng JSON 3/4 🔄 Phase 1~4 아카이브
5.0 공통: 검사기준서↔컬럼 연동 (방안1) 3/3 섹션 7.5
5.1 중간검사(PQC) 폼 구현 5/6 🔄 document-system-mid-inspection.md
5.2 제품검사(FQC) 폼 구현 5/5 document-system-product-inspection.md
5.3 작업일지 폼 구현 3/4+α (mng ) 🔄 document-system-work-log.md
5.4 기타문서 확장 - ⏭️ 추후 정의

Phase 4.4 (미완료)

  • 내용: 프론트엔드 담당자와 협의하여 react 기존 하드코딩 컴포넌트를 양식 JSON 기반으로 전환할지 결정
  • 영향: Phase 5의 React 작업 방향에 영향. 협의 전까지 mng/api 작업 우선 진행 가능

2. 핵심 결정사항

# 항목 결정 날짜
1 조인트바 처리 슬랫 공정 하위 유지 (별도 공정 등록 안함) 2026-02-10
2 제품검사 단위 개소별 1문서 (수주 50개소 = Document 50건) 2026-02-10
3 작업일지 방식 하이브리드 (양식 정의는 mng 템플릿, 전용 UI/로직은 별도) 2026-02-10
4 기타문서 범위 나중에 정의 (검사 관련만 먼저 진행) 2026-02-10
5 제품검사 = 품질검사 동일 개념, "제품검사(FQC)"로 통일 2026-02-10
6 PDF 생성 추후 고려 (react에 html2pdf.js 기존 구현) 2026-01-31
7 판정 로직 프론트에서 입력, 결과만 저장 (별도 판정 엔진 없음) 2026-01-31
8 react 기존 컴포넌트 mng 완성 후 프론트 담당자와 협의하여 전환 여부 결정 2026-01-31
11 자재 LOT 처리 개소별 품목 = 작업내역 테이블, 공용 자재(내화실 등) = 자재 투입(MaterialInput) 시스템으로 조회. 예외 필드 없이 기존 시스템 역할 분리 2026-02-11
12 중간검사 데이터 정규화 document_data를 section_id/column_id/field_key 기반 정규화 형식으로 저장. 레거시(section_X_item_Y) 자동 변환 지원 2026-02-11
13 mng 작업일지 bf_ backfill 분기 작업일지(섹션 없음)=label 기반 매핑, 검사 문서(섹션 있음)=field_key 기반 매핑. resolveAndBackfillBasicFields에서 자동 판별 2026-02-12
14 개소별 투입자재 LOT work_order_material_inputs 테이블 기반 개소별(work_order_item_id) LOT 매핑. 입고 LOT NO 컬럼에 표시 2026-02-12
15 취소 트랜잭션 상쇄 stock_transactions에서 work_order_input(OUT) + work_order_input_cancel(IN) 합산으로 순수 투입량 계산 2026-02-12
16 자재 투입 방식 변경 (요청) 수량 입력 → 필요수량 기반 LOT 선택 방식으로 변경 요청됨. 미착수 2026-02-12
9 검사기준서↔테이블컬럼 연동 방안1: items.measurement_type → columns 자동 파생. 테이블 컬럼 탭은 "자동 생성 결과 확인/미세조정"용 2026-02-10
10 section_fields 필수화 모든 시더에 section_fields 생성 포함. 없으면 검사 기준서 탭 렌더링 불가 2026-02-10

3. 검사 유형별 데이터 연동 구조

┌─────────────────────────────────────────────────────────────────┐
│ 검사 유형        연동 대상              단위        linkable     │
├─────────────────────────────────────────────────────────────────┤
│ 수입검사(IQC)    Material + Lot         아이템별    Material     │
│ 중간검사(PQC)    WorkOrder + Process    개소별      WorkOrder    │
│ 제품검사(FQC)    Order + OrderItem      개소별      OrderItem    │
│ 작업일지         WorkOrder + Process    작업지시별   WorkOrder    │
└─────────────────────────────────────────────────────────────────┘

3.1 개소(Location) 관리 체계

Order (수주)
├─ OrderItem[0]: floor_code="1F", symbol_code="A", quantity=2
├─ OrderItem[1]: floor_code="2F", symbol_code="B", quantity=4
└─ OrderItem[N]: ...
    ↓
WorkOrder (작업지시)
├─ WorkOrderItem[0] → OrderItem[0] (source_order_item_id)
├─ WorkOrderItem[1] → OrderItem[1]
└─ ...
    ↓
Document (검사문서)
├─ 중간검사: WorkOrder 단위, 내부에 개소별 행(row)
└─ 제품검사: OrderItem(개소) 단위, 개소당 1문서

4. DB 테이블 관계

4.1 문서 시스템 테이블

document_templates (양식 마스터)
├── document_template_approval_lines  (결재라인: 작성/검토/승인)
├── document_template_basic_fields    (기본필드: 품명, LOT NO 등)
├── document_template_sections        (섹션: 검사기준서)
│   └── document_template_section_items (검사항목: 겉모양, 치수 등)
├── document_template_columns         (테이블 컬럼: text/check/complex/select)
├── document_template_section_fields  (동적 필드 정의)
├── document_template_links           (외부 키 매핑)
└── document_template_field_presets   (필드 프리셋)

documents (문서 인스턴스)
├── document_approvals   (결재: PENDING/APPROVED/REJECTED)
├── document_data        (EAV: section_id, column_id, row_index, field_key, field_value)
├── document_attachments (첨부파일)
└── document_links       (외부 엔티티 연결)

process_steps
└── document_template_id (FK) → 공정별 검사 양식 매핑
└── needs_inspection (bool) → 검사 필요 단계 표시

4.2 모델 관계 (코드 참조)

// DocumentTemplate.php
class DocumentTemplate extends Model {
    use BelongsToTenant, SoftDeletes;
    public function approvalLines()  // hasMany, sort_order
    public function basicFields()    // hasMany, sort_order
    public function sections()       // hasMany → section.items()
    public function columns()        // hasMany, sort_order
}

// Document.php
class Document extends Model {
    use BelongsToTenant, SoftDeletes;
    // status: DRAFT → PENDING → APPROVED/REJECTED/CANCELLED
    public function template()    // belongsTo DocumentTemplate
    public function approvals()   // hasMany DocumentApproval
    public function data()        // hasMany DocumentData (EAV)
    public function linkable()    // morphTo (Order, WorkOrder, OrderItem, Material 등)
}

4.3 현재 양식 시더 (mng)

ID 양식명 카테고리 시더
7 EGI 1.55T 수입검사 품질/수입검사 IncomingInspectionTemplateSeeder
8 SUS Plate 수입검사 품질/수입검사 IncomingInspectionTemplateSeeder
10 조인트바 중간검사 품질/중간검사 MidInspectionTemplateSeeder
11 슬랫 중간검사 품질/중간검사 MidInspectionTemplateSeeder
12 스크린 중간검사 품질/중간검사 MidInspectionTemplateSeeder
13 절곡품 중간검사 품질/중간검사 MidInspectionTemplateSeeder
62 스크린 작업일지 생산/작업일지 WorkLogTemplateSeeder
63 슬랫 작업일지 생산/작업일지 WorkLogTemplateSeeder
64 절곡 작업일지 생산/작업일지 WorkLogTemplateSeeder

5. 핵심 파일 경로

5.1 mng (양식 관리)

파일 설명
mng/resources/views/document-templates/edit.blade.php 양식 편집 UI (44.5KB, 4개 탭)
mng/resources/views/documents/show.blade.php 문서 조회 (검사문서+작업일지 동적 렌더링, 재단 알고리즘 포함)
mng/resources/views/documents/print.blade.php 문서 인쇄 (성적서 양식)
mng/app/Http/Controllers/DocumentTemplateController.php 양식 CRUD
mng/app/Http/Controllers/DocumentController.php 문서 CRUD + 결재 + bf_ backfill (작업일지/검사 분기)
mng/app/Models/DocumentTemplate.php 양식 모델
mng/app/Models/Documents/Document.php 문서 모델
mng/database/seeders/IncomingInspectionTemplateSeeder.php 수입검사 시더
mng/database/seeders/MidInspectionTemplateSeeder.php 중간검사 시더
mng/database/seeders/WorkLogTemplateSeeder.php 작업일지 시더
mng/routes/web.php (340-353줄) 양식/문서 라우트

5.2 api (REST API)

파일 설명
api/app/Http/Controllers/V1/DocumentTemplateController.php 양식 조회 API
api/app/Http/Controllers/V1/DocumentController.php 문서 CRUD + 결재 API
api/app/Models/Documents/Document.php 문서 모델
api/app/Models/Order.php 수주 모델 (OrderItem 관계)
api/app/Models/WorkOrder.php 작업지시 모델
api/app/Models/Process.php 공정 모델 (ProcessStep 관계)
api/app/Services/WorkOrderService.php 작업지시 서비스 (검사, 작업일지, materialInputLots)
api/app/Services/DocumentService.php 문서 서비스 (create, update, formatTemplateForReact)
api/app/Console/Commands/NormalizeDocumentData.php 문서 데이터 정규화 커맨드
api/routes/api/v1/production.php 작업지시/작업일지 라우트

5.3 react (프론트엔드)

파일 설명
react/src/components/document-system/viewer/DocumentViewer.tsx 문서 뷰어 (zoom, drag, print)
react/src/components/document-system/components/DocumentHeader.tsx 문서 헤더 (로고, 결재라인)
react/src/components/production/WorkOrders/documents/InspectionReportModal.tsx 중간검사 모달 (~900행)
react/src/components/production/WorkOrders/documents/inspection-shared.tsx 검사 공유 유틸
`react/src/components/production/WorkOrders/documents/Screen Slat
react/src/components/production/WorkerScreen/InspectionInputModal.tsx 검사 입력 모달 (~950행)
react/src/components/production/WorkerScreen/WorkLogModal.tsx 작업일지 모달 (공정관리 양식 연동)
react/src/components/production/WorkerScreen/WorkLogContent.tsx 작업일지 범용 (~280행)
react/src/app/[locale]/(protected)/quality/qms/components/documents/ProductInspectionDocument.tsx 제품검사 (하드코딩)
react/src/app/[locale]/(protected)/quality/inspections/ 품질검사 페이지 라우트

5.4 확인 URL

URL 내용
https://mng.sam.kr/document-templates 양식 관리
https://mng.sam.kr/document-templates/51/edit 양식 편집 (검사기준서 탭)
https://mng.sam.kr/documents 문서 관리
https://dev.sam.kr/production/worker-screen 작업자 화면 (중간검사/작업일지 모달)
https://dev.sam.kr/quality/inspections/1?mode=view 제품검사 요청서/모달

6. 작업 우선순위

Phase 5.0 공통 기반 ✅ ──→ Phase 5.1 중간검사 (5/6) ──→ Phase 5.2 제품검사
(완료: columns 자동파생,     (결재 워크플로우만 남음)       (중간검사 패턴 재사용)
 section_fields 필수화)

Phase 5.3 작업일지 ──→ 5.0과 독립 (검사기준서/columns 자동파생 해당 없음)
(하이브리드 방식,        시더 ✅, 양식연동 ✅, 편집검증 ✅, API ✅, mng상세 ✅ → React 전환 남음)
 섹션 없음)

Phase 5.0 작업 항목 ( 완료)

# 작업 상태 완료 기준 구현 위치
5.0.1 generateColumnsFromItems() JS 함수 구현 items의 measurement_type 분석 → 정적+동적 columns 자동 생성 edit.blade.php line 1040-1139
5.0.2 시더에 section_fields 생성 추가 MidInspectionTemplateSeeder(7필드), IncomingInspectionTemplateSeeder(6필드) 모두 section_fields 포함 각 시더 createSectionFields()
5.0.3 테이블 컬럼 탭 "자동 생성 + 미세조정" 모드 전환 "기준서에서 자동 생성" 버튼 + _auto 플래그 + 수동 편집 병행 edit.blade.php line 259-1299

Phase 5.1 작업 항목 (🔄 5/6)

# 작업 상태 완료 기준 비고
5.1.1 section_fields 생성 Phase 5.0.2에서 해결됨 MidInspection 7필드, IncomingInspection 6필드
5.1.2 mng 양식 편집/미리보기 검증 4종 양식 edit/미리보기/저장 정상 동작 edit.blade.php 4탭 CRUD
5.1.3 API 중간검사 문서 생성 연동 createInspectionDocument() 완전 구현. 정규화+레거시 형식 지원 WorkOrderService line 1810+
5.1.4 React 중간검사 모달 → 양식 기반 전환 TemplateInspectionContent 동적 렌더링 구현 템플릿/레거시 모드 병행
5.1.5 개소별 검사 데이터 저장/조회 getInspectionData, saveInspectionDocument 구현 정규화 레코드 형식
5.1.6 결재 워크플로우 연동 작성→검토→승인 3단계 결재 API ready, 프론트 연동 필요

7. 알려진 이슈

7.1 스키마 불일치 → 해결됨 (2026-02-10 분석)

  • document_template_section_items 테이블에 tolerance, standard_criteria, measurement_type, frequency_n, frequency_c, field_values 컬럼 모두 존재 (마이그레이션 순차 추가됨)
  • Controller line 174-188은 field_values JSON 우선, 직접 컬럼 fallback으로 정상 동작
  • 실제 문제: 중간검사 템플릿에 section_fields 레코드 누락 → 검사 기준서 탭이 빈 테이블로 렌더링됨
  • 해결: 결정사항 #10에 따라 모든 시더에 section_fields 생성 추가

7.2 검사기준서 ↔ 테이블컬럼 분리 문제 → 방안1 채택 (2026-02-10)

  • 현상: 두 탭이 완전 독립. 검사 항목 추가해도 컬럼 자동 반영 안됨
  • 해결: 결정사항 #9에 따라 items.measurement_type → columns 자동 파생 구현
  • 상세: 아래 섹션 7.5 참조

7.3 절곡품 동적 구성

  • 제품코드(KSS01/KSS02/KWE01) + 마감유형(S1/S2/S3)에 따라 검사항목 변경
  • 기본 양식에 구성품 목록 정의 → 문서 생성 시 동적 행 구성 (권장)

7.4 절곡 재공품 양식 미존재

  • React BendingWipInspectionContent에 대응하는 mng 양식 없음
  • 신규 시더 추가 필요

7.5 방안1: columns 자동 파생 설계

아키텍처 개요

현재:  section_items ─── ✕ ─── columns  (독립, 불일치 가능)

방안1: section_items.measurement_type ──→ columns 자동 파생 (Single Source of Truth)

기존 매핑 로직 (edit.blade.php:684, 이미 존재)

// 검사방식 → 측정유형 자동 매핑
METHOD_TO_MEASUREMENT = {
    'visual': 'checkbox',       // → check 컬럼
    'check': 'numeric',         // → complex 컬럼 (n1,n2,n3...)
    'mill_sheet': 'single_value', // → text 컬럼
    'certified_agency': 'single_value',
    'substitute_cert': 'substitute',
    'other': 'text'
};

columns 자동 파생 규칙

Step 1: 정적 컬럼 (항상 포함)
├── NO (text, 40px) → 행 번호
├── 검사항목 (text, 120px) → item.item 속성 매핑
└── 검사기준 (text, 150px) → item.standard 속성 매핑

Step 2: 동적 컬럼 (items의 measurement_type에서 파생)
├── checkbox 존재 → check 컬럼 추가 (OK/NG 체크, 50px)
├── numeric 존재 → complex 컬럼 추가 (sub_labels: n1~n{max(frequency_n)})
├── single_value 존재 → text 컬럼 추가 (단일값 입력)
└── 공통 → select 컬럼 추가 (판정: 적합/부적합)

Step 3: 부가 컬럼 (옵션)
├── 검사방식 (text) → item.method가 다양하면 포함
└── 비고 (text) → 항상 포함

구현 위치

항목 위치 변경 내용
자동 파생 로직 edit.blade.php JS generateColumnsFromItems() items 분석 → columns 생성
트리거 검사 기준서 탭에서 항목 추가/삭제/수정 시 테이블 컬럼 탭 자동 갱신
수동 override 테이블 컬럼 탭에서 미세조정 가능 자동 생성 + 수동 편집 공존
시더 변경 모든 시더에 section_fields 생성 추가 columns 정의는 자동 파생으로 생략 가능
저장 로직 saveTemplate() JS sections + columns 함께 저장

시더 변경 영향

// Before: items + columns 각각 정의 (불일치 위험)
'items' => [...],
'columns' => [...],  // 수동 정의 필요

// After: items만 정의, columns는 자동 파생 (또는 명시적 override)
'items' => [...],
'section_fields' => [...],  // 필수 추가
// columns 생략 가능 → 저장 시 자동 생성

8. 변경 이력

날짜 내용
2026-02-10 마스터 문서 신규 생성. Phase 5 하위 문서 3개 분리
2026-02-10 핵심 결정사항 5건 확정
2026-02-10 새 세션 가이드, 핵심 파일 경로, 알려진 이슈 보강
2026-02-10 방안1 채택: items.measurement_type → columns 자동 파생. Phase 5.0 신설, 결정사항 #9/#10 추가
2026-02-11 Phase 5.3.1: WorkLogTemplateSeeder 3종 생성 (스크린ID:62, 슬랫ID:63, 절곡ID:64). 범용(ID:61) 삭제. 공정별 React 코드 기준 구조 반영
2026-02-11 React: WorkLogModal 공정관리 양식 연동 (workLogTemplateId/Name prop, resolveProcessTypeFromTemplate)
2026-02-11 React: ScreenWorkLogContent 자재 LOT 동적화 (하드코딩 "내화실" → materialLots item_name별 그룹핑)
2026-02-11 API: materialInputLots 엔드포인트 추가 (stock_transactions 기반 투입 LOT 조회)
2026-02-11 API: 중간검사 document_data 정규화 형식 지원 (section_id/column_id/field_key). 레거시 자동 변환
2026-02-11 MNG: 문서 양식 편집 개선 (이미지 업로드 API 연동, 미리보기 모달)
2026-02-11 결정사항 #11(자재 LOT 역할 분리), #12(중간검사 정규화) 추가
2026-02-11 Phase 5.0/5.1/5.3 상태 분석 및 문서 동기화: 5.0 완료(3/3), 5.1 🔄(5/6), 5.3 🔄(1/4+α)
2026-02-12 Phase 5.3.2 완료: mng 작업일지 양식 편집/미리보기 코드 레벨 검증 (정상 동작 확인)
2026-02-12 Phase 5.3.3 완료: API 작업일지 생성/조회 구현 (getWorkLogTemplate, getWorkLog, createWorkLog). 라우트 3개, i18n 추가
2026-02-12 WorkOrder 모델에 documents() MorphMany 관계 추가
2026-02-12 MNG: DocumentController resolveAndBackfillBasicFields 확장 — 작업일지(label 기반) vs 검사 문서(field_key 기반) 분기. buildWorkLogResolveMap, buildInspectionResolveMap 추가
2026-02-12 MNG: show.blade.php 작업일지 전용 섹션 추가 — 템플릿 컬럼 기반 동적 테이블, PHP 재단 알고리즘(calculateCutSize), 작업통계, 투입 자재 LOT, 비고
2026-02-12 MNG: 개소별 투입자재 LOT 매핑 (work_order_material_inputs → stock_lots JOIN, work_order_item_id별 lot_no 조회)
2026-02-12 MNG: 투입자재 취소 트랜잭션 상쇄 처리 (work_order_input + work_order_input_cancel 합산, 순수 투입량 계산)
2026-02-12 MNG: show() 메서드에 workOrder, salesOrder, materialInputLots, itemLotMap 변수 추가
2026-02-12 결정사항 #13~#16 추가 (bf_ 분기, 개소별 LOT, 취소 상쇄, 자재 투입 방식 변경 요청)

상세 변경 이력: document-management-system-changelog.md


9. Phase 1~4 아카이브 요약

상세 문서: document-management-system-plan.md (Phase 14 전체 설계/이력) 5130 이관 설계: 같은 문서 섹션 5.25.3 (JSON→EAV 매핑, 데이터 변환 규칙)

완료된 Phase 요약

Phase 내용 주요 산출물
1 (수입검사 양식) edit.blade.php 5개 탭 CRUD, 시더 2종(EGI/SUS), 미리보기, 복제 IncomingInspectionTemplateSeeder
2 (문서 생성/관리) 문서 생성(IQC prefix), EAV 입력/저장, 결재(submit/approve/reject), 목록/필터 DocumentController, edit/show.blade
3 (중간검사 양식) 4종 구조 설계, JSON→EAV 이관 설계, 시더 4종, 이미지 27개 이관 MidInspectionTemplateSeeder, 이미지
4 (API 연동) Template 조회 API 6모델+Swagger, Document 결재 4 API, mng show.blade JSON 렌더링 api 컨트롤러, Swagger

Phase 1~4 문서를 다시 봐야 하는 경우

상황 참조 섹션
5130 중간검사 데이터 이관 작업 시 섹션 5.3 (JSON→EAV 매핑, 변환 규칙, 6단계 프로세스)
수입검사 자재별 양식 추가 시 섹션 5.1 (23개 자재 목록), 섹션 11.3 (시더 생성 절차)
기존 양식 편집 UI 구조 파악 시 섹션 11.1 (edit.blade.php 분석 절차)
API JSON 응답 구조 확인 시 섹션 4.2~4.3 (양식/문서 JSON 스키마)

10. 참고 문서

문서 경로 용도
Phase 1~4 상세 docs/plans/document-management-system-plan.md 이력/설계/5130 이관
변경 이력 docs/plans/document-management-system-changelog.md 전체 변경 로그
DB 스키마 docs/specs/database-schema.md 테이블 구조
API 규칙 docs/standards/api-rules.md Service-First, FormRequest
품질 체크리스트 docs/standards/quality-checklist.md 코드 품질 기준
mng 규칙 mng/CLAUDE.md mng 프로젝트 규칙

이 문서는 /plan 스킬로 생성되었습니다.