Files
sam-react-prod/claudedocs/vehicle/[PLAN-2025-01-28] vehicle-forklift-menu-implementation.md
유병철 e5f0f5da61 feat(WEB): 차량 관리 기능 추가 및 CEO 대시보드 Enhanced 섹션 적용
차량 관리 (신규):
- VehicleList/VehicleDetail: 차량 목록/상세
- ForkliftList/ForkliftDetail: 지게차 목록/상세
- VehicleLogList/VehicleLogDetail: 운행일지 목록/상세
- 관련 페이지 라우트 추가 (/vehicle-management/*)

CEO 대시보드:
- Enhanced 섹션 컴포넌트 적용 (아이콘 + 컬러 테마)
- EnhancedStatusBoardSection, EnhancedDailyReportSection, EnhancedMonthlyExpenseSection
- TodayIssueSection 개선

IntegratedDetailTemplate:
- FieldInput, FieldRenderer 기능 확장

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:53:20 +09:00

10 KiB

차량/지게차 메뉴 구현 계획

1. 개요

1.1 목적

5130 사이트(레거시)의 차량/지게차 메뉴를 SAM 프로젝트로 마이그레이션

1.2 메뉴 구조

📁 차량/지게차
├── 📄 차량관리 (vehicle)
├── 📄 차량일지/월간사진기록 (vehicle-log)
└── 📄 지게차 관리 (forklift)

1.3 페이지 구성 방식

페이지 리스트 등록 상세 수정
차량관리 페이지 페이지 페이지 페이지
차량일지 페이지 페이지 페이지 페이지
지게차 관리 페이지 페이지 페이지 페이지

1.4 사용할 공통 컴포넌트

페이지 타입 사용 템플릿 비고
리스트 UniversalListPage config 기반
등록/상세/수정 IntegratedDetailTemplate config 기반

구현 패턴:

config.ts → 컬럼/필드 정의
actions.ts → API 호출 (Server Actions)
index.tsx → 템플릿에 config 전달

2. 페이지별 상세 분석 (5130 사이트 기준)

2.1 차량관리 (vehicle)

항목 내용
페이지 타입 표준 CRUD (리스트 + 등록/상세/수정 페이지)
레거시 URL /car/list.php
전체 건수 6건 (예시)

리스트 테이블 컬럼 (12개):

순서 컬럼명 타입 설명
1 번호 number 행 번호 (1부터)
2 차량번호 string 차량 식별번호
3 담당자 string 담당자명
4 보험사 string 보험 회사
5 보험만료일 date 보험 만료일
6 차량명 string 차량 이름
7 구입금액 number 구입 금액
8 구입일 date 구입 날짜
9 작성자 string 작성자명
10 정비정보 string 정비 관련 정보
11 등록일 date 등록 날짜
12 관리 action 상세/수정/삭제 버튼

2.2 차량일지/월간사진기록 (vehicle-log)

항목 내용
페이지 타입 표준 CRUD (리스트 + 등록/상세/수정 페이지)
레거시 URL /carrecord/list.php
전체 건수 41건 (예시)

리스트 테이블 컬럼 (5개):

순서 컬럼명 타입 설명
1 번호 number 행 번호 (1부터)
2 작성일 date 작성 날짜
3 차량종류 string 차량 종류/타입
4 작성자 string 작성자명
5 글제목 string 일지 제목

2.3 지게차 관리 (forklift)

항목 내용
페이지 타입 표준 CRUD (리스트 + 등록/상세/수정 페이지)
레거시 URL /lift/list.php
전체 건수 7건 (예시)

리스트 테이블 컬럼 (13개, 차량관리 + 용량):

순서 컬럼명 타입 설명
1 번호 number 행 번호 (1부터)
2 차량번호 string 지게차 식별번호
3 담당자 string 담당자명
4 보험사 string 보험 회사
5 보험만료일 date 보험 만료일
6 차량명 string 지게차 이름
7 구입금액 number 구입 금액
8 구입일 date 구입 날짜
9 작성자 string 작성자명
10 정비정보 string 정비 관련 정보
11 등록일 date 등록 날짜
12 용량 string 지게차 용량
13 관리 action 상세/수정/삭제 버튼

3. 파일 구조

3.1 페이지 구조

src/app/[locale]/(protected)/
└── vehicle-management/                # 차량/지게차
    ├── vehicle/                       # 차량관리
    │   ├── page.tsx                   # 리스트
    │   ├── new/
    │   │   └── page.tsx               # 등록
    │   └── [id]/
    │       ├── page.tsx               # 상세
    │       └── edit/
    │           └── page.tsx           # 수정
    │
    ├── vehicle-log/                   # 차량일지/월간사진기록
    │   ├── page.tsx                   # 리스트
    │   ├── new/
    │   │   └── page.tsx               # 등록
    │   └── [id]/
    │       ├── page.tsx               # 상세
    │       └── edit/
    │           └── page.tsx           # 수정
    │
    └── forklift/                      # 지게차 관리
        ├── page.tsx                   # 리스트
        ├── new/
        │   └── page.tsx               # 등록
        └── [id]/
            ├── page.tsx               # 상세
            └── edit/
                └── page.tsx           # 수정

3.2 컴포넌트 구조

src/components/vehicle-management/
├── VehicleList/
│   ├── index.tsx                      # UniversalListPage 사용
│   ├── actions.ts                     # Server Actions
│   └── config.ts                      # 컬럼/필터 설정
├── VehicleDetail/
│   ├── index.tsx                      # IntegratedDetailTemplate 사용
│   └── config.ts                      # 필드 설정
│
├── VehicleLogList/
│   ├── index.tsx
│   ├── actions.ts
│   └── config.ts
├── VehicleLogDetail/
│   ├── index.tsx
│   └── config.ts
│
├── ForkliftList/
│   ├── index.tsx
│   ├── actions.ts
│   └── config.ts
└── ForkliftDetail/
    ├── index.tsx
    └── config.ts

4. API 엔드포인트 (예상)

기능 Method Endpoint
차량 목록 GET /api/vehicle/list
차량 상세 GET /api/vehicle/{id}
차량 등록 POST /api/vehicle
차량 수정 PUT /api/vehicle/{id}
차량 삭제 DELETE /api/vehicle/{id}
차량일지 목록 GET /api/vehicle-log/list
차량일지 상세 GET /api/vehicle-log/{id}
차량일지 등록 POST /api/vehicle-log
차량일지 수정 PUT /api/vehicle-log/{id}
차량일지 삭제 DELETE /api/vehicle-log/{id}
지게차 목록 GET /api/forklift/list
지게차 상세 GET /api/forklift/{id}
지게차 등록 POST /api/forklift
지게차 수정 PUT /api/forklift/{id}
지게차 삭제 DELETE /api/forklift/{id}

5. 구현 체크리스트

Phase 1: 리스트 페이지 & 컴포넌트

차량관리

  • VehicleList/actions.ts
  • VehicleList/index.tsx
  • vehicle/page.tsx

차량일지

  • VehicleLogList/actions.ts
  • VehicleLogList/index.tsx
  • vehicle-log/page.tsx

지게차 관리

  • ForkliftList/actions.ts
  • ForkliftList/index.tsx
  • forklift/page.tsx

Phase 2: 상세/등록/수정 페이지 & 컴포넌트

차량관리

  • VehicleDetail/config.ts
  • VehicleDetail/index.tsx
  • vehicle/new/page.tsx (등록)
  • vehicle/[id]/page.tsx (상세)
  • vehicle/[id]/edit/page.tsx (수정)

차량일지

  • VehicleLogDetail/config.ts
  • VehicleLogDetail/index.tsx
  • vehicle-log/new/page.tsx (등록)
  • vehicle-log/[id]/page.tsx (상세)
  • vehicle-log/[id]/edit/page.tsx (수정)

지게차 관리

  • ForkliftDetail/config.ts
  • ForkliftDetail/index.tsx
  • forklift/new/page.tsx (등록)
  • forklift/[id]/page.tsx (상세)
  • forklift/[id]/edit/page.tsx (수정)

Phase 3: 메뉴 및 테스트 URL 등록

  • 사이드바 메뉴 추가 (차량/지게차) - 백엔드 메뉴 연동 필요
  • /dev/test-urls에 등록

공통 파일

  • types.ts (Vehicle, VehicleLog, Forklift 타입)

6. 참고 스크린샷 (Desktop)

파일명 내용
5130_car_list.png 차량관리 목록
5130_carrecord_list.png 차량일지 목록
5130_lift_list.png 지게차 관리 목록

7. 특이사항

  1. 차량 vs 지게차 핵심 차이점 (2025-01-28 확인):

    • 차량: 보험사, 보험사 연락처, 엔진오일 교환 주기/일 사용
    • 지게차: 구입업체, 구입업체 연락처, 부속품 교환 주기/일 사용
    • 차종 필드에 용량 포함 (예: "3톤 디젤")
  2. API 미확정: 백엔드 API가 아직 없을 수 있으므로 Mock 데이터로 우선 구현

  3. 번호 컬럼: 모든 테이블에서 1번부터 시작 (globalIndex 사용)

  4. 정비정보/월간사진: 상세 페이지에서 이미지 업로드 기능 필요할 수 있음


8. 컬럼 검증 결과 (2025-01-28)

8.1 차량관리 (vehicle) - 검증 완료

순서 레거시 컬럼명 SAM 구현 상태
1 번호 globalIndex
2 차량번호 vehicleNumber
3 담당자 manager
4 보험사 insuranceCompany
5 보험사 연락처 insuranceContact
6 최초등록일 firstRegistrationDate
7 구매일자 purchaseDate
8 구매 유형 purchaseType
9 엔진오일 교환 주기 oilChangeCycle
10 엔진오일교환일 oilChangeDate
11 정비 정보 maintenanceInfo
12 비고 remarks

8.2 차량일지 (vehicle-log) - 검증 완료

순서 레거시 컬럼명 SAM 구현 상태
1 번호 globalIndex
2 작성일 writeDate
3 차량종류 vehicleType
4 작성자 writer
5 글제목 title

8.3 지게차 관리 (forklift) - 검증 완료

순서 레거시 컬럼명 SAM 구현 상태
1 번호 globalIndex
2 차량번호 vehicleNumber
3 차종 vehicleType
4 담당자 manager
5 구입업체 purchaseCompany
6 구입업체 연락처 purchaseCompanyContact
7 최초등록일 firstRegistrationDate
8 구매일자 purchaseDate
9 구매 유형 purchaseType
10 부속품 교환 주기 partsChangeCycle
11 부속품 교환일 partsChangeDate
12 정비 정보 maintenanceInfo
13 비고 remarks