# entities 레이어

도메인 명사(글 · 지원자 · 회사)의 **표시 단위와 타입**.

## import 경계

- 가능: shared
- 금지: 상위 레이어 전부, 다른 entity 슬라이스(정말 필요하면 `@x` 공개 API로)

## 여기 두는 것

- `api/` — 그 도메인의 **쿼리·뮤테이션 팩토리**(`api/queries.ts` + `api/mutations.ts` + 옆에 `api/queries.spec.ts`)와, API가 아직 없을 때 쓰는 목 데이터·스키마
- `model/` — 도메인 타입, 도메인 상수와 포맷터
- `ui/` — 표시 전용 컴포넌트(카드 · 배지 · 라벨)

슬라이스 루트 `index.ts` 하나가 공개 표면이다 — 화면은 `@/entities/<도메인>`에서만 가져간다. 골든샘플: `entities/post/`

## 두지 않는 것

- **폼 · 모달처럼 사용자가 무언가를 하는 컴포넌트** → `features/`
- 화면 배치 → `pages/` · `widgets/`

## 자주 나는 실수

- 표시용 컴포넌트 안에 mutation·폼 상태를 넣기 — 그 순간 feature다.
- 상태 표시 색·문구를 컴포넌트마다 다시 분기 — 도메인 상수(라벨·색 매핑)로 모아 둔다.

## 더 보기

`.claude/skills/feature-sliced-design/SKILL.md`
