트러블슈팅 요약: 플레이리스트 생성 및 곡 추가 구조 개선
1. 문제 정의
- 유연성 부족: 플레이리스트 생성과 곡 추가가 결합되어, 곡을 선택하지 않으면 생성 불가.
- 데이터 무결성 문제: 곡 없이 coverImage 설정 시 데이터 일관성 손상 가능.
- 사용자 혼란: 워크플로우가 복잡하고 불명확함.
2. 해결 방법
1) 플레이리스트 생성 개선
- 분리된 로직: 플레이리스트 생성 시 곡 정보는 포함되지 않으며,
coverImage
는 초기값으로 null
설정.
- 기술 활용:
- ORM: Prisma를 사용해 데이터베이스 조작.
- HTTP: RESTful API 방식으로 구현.
2) 곡 추가 로직 개선
- 첫 번째 곡 추가 시 해당 곡의
thumbnailUrl
을 coverImage
로 자동 설정.
- 이미
coverImage
가 있는 경우 변경하지 않음.
3) 플레이리스트 상세 조회 개선
- 추가 데이터:
- 총 재생 시간(
totalTime
) 계산.
- 사용자가 생성자인지(
createdByMe
) 여부와 좋아요 상태(liked
) 포함.
3. 주요 개선점
- 사용자 경험: 독립적인 플레이리스트 생성과 곡 추가로 워크플로우 단순화.
- 데이터 무결성: 곡 추가 시점에서만
coverImage
설정.
- 확장성: 생성/추가 분리로 다양한 요구사항에 대응 가능.