<aside>
[x] 프로젝트 디자인 패턴
[x] 깃헙 세팅하기
[x] 공통 컴포넌트 분리 기준 정의(동일한 버튼이라도 다르게 해야하는지)
[x] 버셀 베포
[x] 코드레빗 설정파일 수정
[x] 버튼, 인풋, 카드, 폰트, 컬러 시스템 등 설계 및 문서화
[ ] 공통 컴포넌트 개발 시작
color
, spacing
, radius
, font
정리variant
, size
, state
등)npx shadcn-ui@latest init
및 필요한 기본 컴포넌트 설치Display
, H1
, H2
, Body
, Label
, Muted
, Caption
as="h1"
등의 tag 선택 가능하도록 구현button.tsx
내부 구조 분석 (cva variant, size 이해)primary
, secondary
, ghost
, danger
, outline
, black
sm
, md
, lg
, iconOnly
, fullWidth
<PrimaryButton />
)loading
상태에서 버튼이 disabled
되는지 확인spinner
아이콘이 렌더링되는지 확인 (data-testid
, role
로 접근)aria-busy="true"
속성 부여 확인icon
props로 전달된 컴포넌트가 렌더링되는지 확인left
, right
) 여부 테스트iconOnly
) 렌더링 및 포커싱 테스트disabled
상태일 때 클릭 이벤트 발생 여부 테스트aria-disabled="true"
포함 여부tabindex=-1
등)aria-label
, aria-describedby
, aria-pressed
등 작동 확인aria-busy
, aria-disabled
등 상태별 속성 반영 확인badge.tsx
기반으로 스타일 분석success
, error
, warning
, info
, neutral
card.tsx
구조 기반으로 공통 카드 분리title
, desc
, thumbnail
, actions
ProjectCard
, DataCard
, ListItemCard
slot
또는 children
기반 설계<FormField>
: Label + Input + Error + Helper Text 기본 구조 정의<LabeledInput>
, <Textarea>
, <SelectField>
htmlFor
, aria-*
, role="alert"
등 접근성 고려focus
, error
, disabled
, readOnly
<AppLayout>
: header + main + footer 기본 레이아웃<PageHeader>
: 타이틀, 설명, CTA 구성<Section>
: 배경/패딩 구분 가능한 Wrapper 컴포넌트[ ] 접근성 및 UX 고려사항 초기 점검
[ ] 페이지 개발
[ ] 애니메이션
[ ] 정적 페이지 성능 측정
[ ] 리팩토링 기준 정의
[ ] 에러 처리 전략 시작