✨ 구현 할 기능
사용자가 자신만의 복습 템포에 맞춰 주기를 설정할 수 있는 커스텀 주기 기능을 도입합니다.
기존의 단일 고정 주기 외에 사용자가 직접 주기를 생성, 수정, 삭제할 수 있도록 확장합니다.
- 기본 주기: 서비스 제공, 수정/삭제 불가
- 커스텀 주기:사용자 생성, 수정/삭제 가능 (최대 5개)
📢 구현 방식
1. 정책 및 제약 조건
- 보유 개수: 커스텀 주기는 인당 최대 5개로 제한 (초과 시 생성 불가)
- 시간 설정:
- 최소 10분 단위로만 설정 가능 (예: 10분, 90분 가능 / 15분 불가)
- 첫 번째 주기는 등록 시점으로부터 최소 10분 이상
- 마지막 회차는 등록일 기준 1년(365일) 이내여야 함
2. 데이터 처리
- 전송 포맷: ISO 8601 Duration (예:
PT10M, P1D)을 사용하여 프론트/백엔드 간 데이터 통신 및 Duration 호환성 확보
- 데이터 저장:
Cycle 테이블과 Review 테이블을 강하게 결합하지 않음
- 리뷰 생성 시점의 주기 데이터를 사용하여
Review 행을 개별 생성하므로, 커스텀 주기가 삭제되어도 이미 생성된 리뷰 데이터는 보존
3. API 설계
- 조회:
GET /api/v1/cycles/custom
- 생성:
POST /api/v1/cycles/custom
- 수정:
PUT /api/v1/cycles/custom/{cycleId}
- 삭제:
DELETE /api/cycles/custom/{cycleId}
📑 기능 명세
📕 래퍼런스
✨ 구현 할 기능
사용자가 자신만의 복습 템포에 맞춰 주기를 설정할 수 있는 커스텀 주기 기능을 도입합니다.
기존의 단일 고정 주기 외에 사용자가 직접 주기를 생성, 수정, 삭제할 수 있도록 확장합니다.
📢 구현 방식
1. 정책 및 제약 조건
2. 데이터 처리
PT10M,P1D)을 사용하여 프론트/백엔드 간 데이터 통신 및Duration호환성 확보Cycle테이블과Review테이블을 강하게 결합하지 않음Review행을 개별 생성하므로, 커스텀 주기가 삭제되어도 이미 생성된 리뷰 데이터는 보존3. API 설계
GET /api/v1/cycles/customPOST /api/v1/cycles/customPUT /api/v1/cycles/custom/{cycleId}DELETE /api/cycles/custom/{cycleId}📑 기능 명세
durations)의 ISO 8601 포맷 파싱 및 검증📕 래퍼런스