Skip to content

BackEnd‐Data

LeeSongMi edited this page Oct 10, 2026 · 3 revisions

🗃️ Data

🗃️ ToDo

정의

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

💻 Code

🖥️ FrontEnd

⚙️ BackEnd

Clone this wiki locally