Repository navigation
BackEnd‐Data
LeeSongMi edited this page Oct 10, 2026
·
3 revisions
Todo는 사용자가 수행해야 할 작업을 표현하는 최소 단위의 데이터이다.
각 Todo는 하나의 할 일을 나타내며, 제목과 상태를 중심으로 관리된다.
- 사용자가 수행해야 할 작업을 기록하고 관리한다.
- 작업의 완료 여부를 상태로 표현한다.
- Todo는 계층 구조를 가질 수 있으며, 무한히 중첩 가능한 구조를 지원한다.
- Todo는 하나의 User에 속한다 (N:1). User가 삭제되면 소유한 Todo도 함께 삭제된다 (Cascade).
- 로그인하지 않은 사용자(비회원)의 Todo는 DB에 저장되지 않고 브라우저 localStorage에만 저장된다
— 이 문서가 정의하는 스키마는 로그인 사용자(DB 저장) 기준이다. 로그인 시
/api/todo/sync를 통해 로컬에 쌓인 Todo를 계정으로 옮길 수 있다. (User 참고)
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | UUID / BIGINT | ❌ | Todo의 고유 식별자 (Primary Key) |
| parentId | UUID / BIGINT | ⭕ | 상위 Todo의 식별자 (루트일 경우 NULL) |
| userId | UUID / BIGINT | ❌ | 소유자 User의 식별자 (Foreign Key) |
| title | VARCHAR | ❌ | Todo 제목 |
| contents | TEXT | ⭕ | Todo 상세 내용 (NULL 또는 빈 문자열 허용) |
| state | ENUM / VARCHAR | ❌ | Todo 상태 (PENDING, IN_PROGRESS, ON_HOLD, DONE) |
| date | TIMESTAMP | ❌ | Todo 생성 일시 |
| deadline | TIMESTAMP | ⭕ | Todo 마감 기한 |
| 상태 | key |
|---|---|
| 대기 | PENDING |
| 진행 | IN_PROGRESS |
| 진행보류 | ON_HOLD |
| 완료 | DONE |