스크린샷 2026-01-27 오후 9.23.34.png

스크린샷 2026-01-27 오후 9.23.40.png

스크린샷 2026-01-27 오후 9.23.48.png

본 컴포넌트는 Next.js 환경에서 폼 데이터 처리와 사용자 상호작용에 최적화된 단일 클라이언트 컴포넌트로 설계되었습니다. 상호작용이 필수적인 요소의 특성을 고려하여, 복잡한 분리 없이 효율적인 관리가 가능하도록 구현하였다.

✅ 컴포넌트 구조

파일명 유형 주요 역할
checkbox.tsx Client forwardRef가 적용된 체크박스 및 라벨 구현체
Checkbox.stories.ts Docs UI Kit 명세서 및 Storybook 테스트 케이스

✅ CheckboxProps (공통 속성)

모든 체크박스 컴포넌트는 아래의 타입을 기반으로 하며, 기본적인 HTML Input(Checkbox) 속성을 모두 지원


✅ 설계 특징: 왜 단일 파일인가?

Button이나 Card와 달리 체크박스는 다음과 같은 이유로 단일 클라이언트 컴포넌트 구조를 가지도록 설계함

  1. 필수 상호작용: 체크박스는 상태(checked) 변화가 핵심 기능이며, JS 로직 없는 서버 전용 컴포넌트로서의 실익이 낮습니다.
  2. 구조적 단순함: 인풋과 라벨의 결합 형태로 구조가 명확하여 단일 파일에서 관리하는 것이 유지보수에 유리합니다.
  3. Form 라이브러리 호환성: forwardRef를 통한 직접적인 DOM 참조를 지원함