# features 레이어

**사용자가 무언가를 하는** 단위(폼 제출 · 필터 적용 · 삭제 확인 · 상태 변경).

## import 경계

- 가능: entities · shared
- 금지: app · pages · widgets, **다른 feature 슬라이스**

## 여기 두는 것

- 상호작용 컴포넌트와 그 상호작용이 쓰는 검증 스키마(zod) · mutation 호출

## 두지 않는 것

- 표시 전용 카드·배지·라벨 → `entities/` 또는 `shared/ui`
- 서버 데이터 정의(queryOptions·mutationOptions) → `shared/api/<도메인>/`
- 화면 배치 → `pages/`

## 자주 나는 실수

- **형제 feature를 상대경로(`../../`)로 우회 import** — 린트를 피해 가는 것이지 해결이 아니다. 공통이면 entities·shared로 내린다.
- 컴포넌트 안에서 인라인 `useQuery({ queryKey, queryFn })` — 쿼리 정의는 팩토리에, 컴포넌트는 조합만.

## 더 보기

`.claude/skills/query-factory/SKILL.md` · `feature-sliced-design/SKILL.md`
