Files
ai-code-app/docs/worklogs/2026-03-30.md
2026-04-21 03:33:23 +09:00

5.4 KiB
Executable File

2026-03-30 작업일지

오늘 작업

  • Ant Design 기반 프론트엔드 프로젝트 초기 구조 생성
  • docs/worklogs, docs/features 문서 폴더 구성
  • 기본 대시보드 스타일의 시작 화면 작성
  • React 19.2.4, Vite 8.0.3 최신 안정 버전으로 업데이트
  • 컴포넌트 샘플 구조를 plugins/, samples/, types/, xxxUI.tsx 형태로 정리
  • 공통 플러그인 제네릭과 plugins<T>(props, pluginList) 합성 유틸 추가
  • status-badge 컴포넌트 샘플과 컴포넌트 문서 작성
  • InputUI.tsx 단일 컴포넌트 구조와 validation plugin 기반 입력 샘플 추가
  • 컴포넌트 샘플과 위젯 샘플을 별도 registry로 분리
  • WidgetShell, ApiSampleCardWidget, 위젯 샘플 레이아웃 추가
  • 컴포넌트 샘플 레이아웃을 좌측 내비게이션 + 우측 상세 카드 구조로 개편
  • 입력 컴포넌트 구조를 primitives / specialized / composite 계층으로 재정리
  • Git 저장소 초기화, main 브랜치 생성, 원격 origin 연결, 초기 커밋 생성

이슈 및 메모

  • 초기 스택은 React + Vite + TypeScript + Ant Design으로 결정
  • antd 포함 번들 특성상 빌드 시 청크 크기 경고가 발생함
  • 원격 저장소 push는 HTTPS 인증 정보 부재로 실패
  • 샘플 목록은 samples/Sample.tsx 기본형과 samples/*.tsx 확장형을 구분해 관리하기로 함

결정 사항

  • 작업일지는 날짜별 Markdown 파일로 관리
  • 기능 문서는 기능 단위 Markdown 파일로 관리
  • 컴포넌트 문서는 docs/components 아래에서 관리
  • 컴포넌트 샘플은 samples/Sample.tsx를 대표 샘플로 사용
  • 입력 컴포넌트는 InputUI.tsx 하나만 두고 기능은 plugin으로 확장
  • 입력 패키지는 primitives, specialized, composite 역할 기준으로 분리
  • 플러그인은 기본적으로 공통 제네릭 타입을 사용하고, 필요 시 커링/팩토리 형태로 확장
  • 여러 props 후처리 플러그인은 plugins<T>(props, pluginList) 형태로 합성
  • 샘플 목록은 같은 컴포넌트 기준으로 묶고 base -> plugin -> feature 순서로 정렬

상세 작업 내역

  • 프로젝트 부트스트랩 이후 문서 폴더와 샘플 레지스트리를 함께 정리해 이후 확장 기준을 먼저 마련
  • status-badge, InputUI를 기준 컴포넌트로 삼아 plugin 합성 구조와 샘플 표시 구조를 동시에 검증
  • 컴포넌트/위젯 샘플을 분리해 API 성격의 문서 화면으로 확장할 수 있는 기본 형태를 준비
  • 원격 저장소 연결까지 완료했지만 인증 이슈로 push는 보류 상태로 남음

스크린샷

input status-badge

소스

  • src/components/status-badge/StatusBadgeUI.tsx, src/components/status-badge/plugins/status-badge.plugin.ts: 상태 배지 기본 UI와 플러그인 합성 구조를 잡아 샘플 갤러리의 기준 컴포넌트로 삼았습니다.
  • src/components/inputs/input/InputUI.tsx: validation plugin 기반 입력 컴포넌트 초안을 잡아 이후 primitives / specialized / composite 확장의 출발점으로 사용했습니다.
  • src/widgets/core/WidgetShell.tsx: 위젯 본문을 단순 문단이 아니라 자유 레이아웃 컨테이너로 바꿔 카드형 샘플과 대시보드 위젯을 수용하게 했습니다.
  • docs/templates/worklog-template.md: 작업일지 템플릿에 상세 내역, 스크린샷, 소스, 실행 커맨드, 변경 파일 섹션을 추가해 증적 기록 형식을 고정했습니다.
diff --git a/src/widgets/core/WidgetShell.tsx b/src/widgets/core/WidgetShell.tsx
-const { Paragraph, Title } = Typography;
+const { Title } = Typography;
...
-        <Paragraph className="widget-shell__content">{children}</Paragraph>
+        <div className="widget-shell__content">{children}</div>

diff --git a/docs/templates/worklog-template.md b/docs/templates/worklog-template.md
+## 상세 작업 내역
+## 스크린샷
+## 소스
+

## 변경 파일 (전체, 중복 제거, KST 기준)

- A .gitignore
- A README.md
- A docs/README.md
- A docs/components/status-badge.md
- A docs/features/project-setup.md
- A docs/templates/feature-template.md
- A docs/templates/worklog-template.md
- A docs/worklogs/2026-03-30.md
- A index.html
- A package-lock.json
- A package.json
- A src/App.tsx
- A src/components/status-badge/StatusBadgeUI.tsx
- A src/components/status-badge/index.ts
- A src/components/status-badge/plugins/index.ts
- A src/components/status-badge/plugins/status-badge.plugin.ts
- A src/components/status-badge/samples/Sample.tsx
- A src/components/status-badge/types/index.ts
- A src/components/status-badge/types/status-badge.ts
- A src/main.tsx
- A src/styles.css
- A src/types/component-plugin.ts
- A tsconfig.app.json
- A tsconfig.json
- A tsconfig.node.json
- A vite.config.ts

## 실행 커맨드
+## 변경 파일

실행 커맨드

npm install
npm run build
git init
git checkout -b main
git add .
git commit -m "feat: initialize antd app and component plugin structure"

변경 파일

  • README.md
  • docs/worklogs/2026-03-30.md
  • src/App.tsx
  • src/components/status-badge/StatusBadgeUI.tsx
  • src/components/status-badge/plugins/status-badge.plugin.ts
  • src/components/inputs/input/InputUI.tsx
  • src/widgets/core/WidgetShell.tsx
  • src/styles.css
  • package.json
  • vite.config.ts