프로젝트를 진행하면서 북마크 컴포넌트를 구현하면서 고려했던 점은 아래와 같다. 1. UI와 로직의 분리Headless 컴포넌트 방식으로 UI와 로직을 분리했다. 북마크의 on/off 상태를 관리하는 로직은 별도의 `useSwitch` 훅으로 처리하고 Bookmark 컴포넌트는 UI만 담당하도록 설계 2. 확장성을 고려해보자!- cva를 사용하여 다양한 레이아웃과 상태에 따른 스타일 관리- 북마크에 국한되지 않고 다양한 아이콘을 사용할 수 있는 Checkbox 형태로 구현import { cx } from "class-variance-authority";import { BookmarkFill, BookmarkOutline } from "../icons";const getContainerClass = (isO..