Simple Task Management API

개요

사용자가 할 일을 등록하고 관리할 수 있는 간단한 API를 설계하세요.

요구사항

  1. 할 일(Task) 관리

    • 새로운 할 일 생성

    • 할 일 목록 조회

    • 특정 할 일 상세 조회

    • 할 일 수정 (제목, 내용, 상태 변경)

    • 할 일 삭제

  2. 할 일 상태

    • TODO, IN_PROGRESS, DONE 중 하나의 상태를 가짐

    • 기본값은 TODO

1. 엔드포인트 설계

  • 새로운 할 일 생성(POST) - /tasks

  • 할 일 목록 조회(GET) - /tasks?page={page}&size={size}

  • 특정 할 일 상세 조회 (GET)- /tasks/{taskId}

  • 할 일 수정 (제목, 내용, 상태 변경) (PATCH) - /tasks/{taskId}

  • 할 일 삭제(DELETE) - /tasks/{taskId}

2. 요청/응답 설계

  • 새로운 할 일 생성(POST) - /tasks

  • 할 일 목록 조회(GET) - /tasks?page={page}&size={size}

  • 특정 할 일 상세 조회 (GET)- /tasks/{taskId}

  • 할 일 수정 (제목, 내용, 상태 변경) (PATCH) - /tasks/{taskId}

  • 할 일 삭제(DELETE) - /tasks/{taskId}

3. DB 스키마 설계

  • user

    • id. BIGINT, PK. 유저 id

  • task

    • id. BIGINT, PK. 할일 id

    • user_id. BIGINT, FK, 유저 id

    • title. VARCHAR(255). 제목

    • description. TEXT. 설명

    • status. VARCHAR(255), Enum("TODO", "IN_PROGRESS", "DONE"). 상태

    • created_at. DATETIME. 생성일

    • modified_at. DATETIME. 수정일

4. 아키텍처 설계

  • API 서버(Spring Boot)

    • 사용자 요청 처리

    • DB와 Redis 캐시 연동

  • 데이터베이스 (MySQL)

    • 사용자, 작업 정보 저장

  • 캐시 서버 (Redis)

    • GET /tasks/{taskId}와 같이 특정 작업 조회 API에 대해서만 캐싱 적용.

Last updated