ERP-node/frontend/docs/CLI_컴포넌트_생성_가이드.md

6.7 KiB

컴포넌트 자동 생성 CLI 가이드

화면 관리 시스템의 컴포넌트를 자동으로 생성하는 CLI 도구 사용법입니다.

사용법

node scripts/create-component.js <컴포넌트이름> <표시이름> <설명> <카테고리> [웹타입]

파라미터

파라미터 필수 설명 예시
컴포넌트이름 kebab-case 형식의 컴포넌트 ID text-input, date-picker
표시이름 한글 표시명 텍스트 입력, 날짜 선택
설명 컴포넌트 설명 텍스트를 입력하는 컴포넌트
카테고리 컴포넌트 카테고리 input, display, action
웹타입 기본 웹타입 (기본값: text) text, number, button

카테고리 옵션

카테고리 설명 아이콘
input 입력 컴포넌트 Edit
display 표시 컴포넌트 Eye
action 액션/버튼 컴포넌트 MousePointer
layout 레이아웃 컴포넌트 Layout
form 폼 관련 컴포넌트 FormInput
chart 차트 컴포넌트 BarChart
media 미디어 컴포넌트 Image
navigation 네비게이션 컴포넌트 Menu
feedback 피드백 컴포넌트 Bell
utility 유틸리티 컴포넌트 Settings

웹타입 옵션

웹타입 설명 적용 대상
text 텍스트 입력 기본 텍스트 필드
number 숫자 입력 숫자 전용 필드
email 이메일 입력 이메일 검증 필드
password 비밀번호 입력 패스워드 필드
textarea 다중행 텍스트 텍스트 영역
select 선택박스 드롭다운 선택
button 버튼 클릭 액션
checkbox 체크박스 불린 값 선택
radio 라디오 버튼 단일 선택
date 날짜 선택 날짜 피커
file 파일 업로드 파일 선택

사용 예시

1. 기본 텍스트 입력 컴포넌트

node scripts/create-component.js text-input "텍스트 입력" "기본 텍스트 입력 컴포넌트" input text

2. 숫자 입력 컴포넌트

node scripts/create-component.js number-input "숫자 입력" "숫자만 입력 가능한 컴포넌트" input number

3. 버튼 컴포넌트

node scripts/create-component.js action-button "액션 버튼" "사용자 액션을 처리하는 버튼" action button

4. 차트 컴포넌트

node scripts/create-component.js bar-chart "막대 차트" "데이터를 막대 그래프로 표시" chart

5. 이미지 표시 컴포넌트

node scripts/create-component.js image-viewer "이미지 뷰어" "이미지를 표시하는 컴포넌트" media

생성되는 파일들

CLI를 실행하면 다음 파일들이 자동으로 생성됩니다:

lib/registry/components/[컴포넌트이름]/
├── index.ts                    # 컴포넌트 정의 및 메타데이터
├── [컴포넌트이름]Component.tsx  # 메인 컴포넌트 파일
├── [컴포넌트이름]Renderer.tsx   # 자동 등록 렌더러
├── [컴포넌트이름]ConfigPanel.tsx # 설정 패널 UI
├── types.ts                    # TypeScript 타입 정의
└── README.md                   # 컴포넌트 문서

자동 처리되는 작업들

자동 등록

  • lib/registry/components/index.ts에 import 구문 자동 추가
  • 컴포넌트 레지스트리에 자동 등록
  • 브라우저에서 즉시 사용 가능

타입 안전성

  • TypeScript 인터페이스 자동 생성
  • 컴포넌트 설정 타입 정의
  • Props 타입 안전성 보장

설정 패널

  • 웹타입별 맞춤 설정 UI 자동 생성
  • 공통 설정 (disabled, required, readonly) 포함
  • 실시간 설정 값 업데이트

문서화

  • 자동 생성된 README.md
  • 사용법 및 설정 옵션 문서
  • 개발자 정보 및 CLI 명령어 기록

CLI 실행 후 확인사항

1. 브라우저에서 확인

// 개발자 도구에서 확인
__COMPONENT_REGISTRY__.get("컴포넌트이름")

2. 컴포넌트 패널에서 테스트

  1. 화면 디자이너 열기
  2. 컴포넌트 패널에서 새 컴포넌트 확인
  3. 드래그앤드롭으로 캔버스에 추가
  4. 속성 편집 패널에서 설정 테스트

3. 설정 패널 동작 확인

  • 속성 변경 시 실시간 반영 여부
  • 필수/선택 설정들의 정상 동작
  • 웹타입별 특화 설정 확인

트러블슈팅

import 자동 추가 실패

만약 index.ts에 import가 자동 추가되지 않았다면:

// lib/registry/components/index.ts에 수동 추가
import "./컴포넌트이름/컴포넌트이름Renderer";

컴포넌트가 패널에 나타나지 않는 경우

  1. 브라우저 새로고침
  2. 개발자 도구에서 오류 확인
  3. import 구문 확인
  4. TypeScript 컴파일 오류 확인

설정 패널이 제대로 작동하지 않는 경우

  1. 타입 정의 확인 (types.ts)
  2. ConfigPanel 컴포넌트 확인
  3. 웹타입별 설정 로직 확인

고급 사용법

사용자 정의 옵션

# 크기 지정
node scripts/create-component.js my-component "내 컴포넌트" "설명" display --size=300x50

# 태그 추가
node scripts/create-component.js my-component "내 컴포넌트" "설명" display --tags=tag1,tag2,tag3

# 작성자 지정
node scripts/create-component.js my-component "내 컴포넌트" "설명" display --author="개발자명"

생성 후 커스터마이징

  1. 컴포넌트 로직 수정: [컴포넌트이름]Component.tsx
  2. 설정 패널 확장: [컴포넌트이름]ConfigPanel.tsx
  3. 타입 정의 확장: types.ts
  4. 렌더러 로직 수정: [컴포넌트이름]Renderer.tsx

베스트 프랙티스

네이밍 규칙

  • 컴포넌트이름: kebab-case (예: text-input, date-picker)
  • 표시이름: 명확한 한글명 (예: "텍스트 입력", "날짜 선택")
  • 설명: 구체적이고 명확한 설명

카테고리 선택

  • 컴포넌트의 주된 용도에 맞는 카테고리 선택
  • 일관성 있는 카테고리 분류
  • 사용자가 찾기 쉬운 카테고리 구조

웹타입 선택

  • 컴포넌트의 데이터 타입에 맞는 웹타입 선택
  • 기본 동작과 검증 로직 고려
  • 확장 가능성 고려

결론

이 CLI 도구를 사용하면 화면 관리 시스템에 새로운 컴포넌트를 빠르고 일관성 있게 추가할 수 있습니다. 자동 생성된 템플릿을 기반으로 비즈니스 로직에 집중하여 개발할 수 있습니다.

더 자세한 정보는 컴포넌트 시스템 가이드를 참조하세요.