나만의 음악 재생목록 관리자 - 플레이리스트 큐레이션
music-playlist-curator
문제 설명
🎵 프로젝트 개요
좋아하는 음악을 장르별, 분위기별로 정리하고 관리할 수 있는 개인 음악 재생목록 관리 웹 애플리케이션입니다. Laravel 12.x의 기본 Blade 템플릿과 간단한 라우팅, 그리고 세션 저장소를 활용하여 프로그래밍 입문자도 쉽게 만들 수 있는 프로젝트입니다.
✨ 필수 기능
- 음악 추가하기: 곡명, 아티스트, 장르(팝, 록, 재즈, 클래식 등), 분위기 태그(신나는, 차분한, 슬픈 등) 입력
- 재생목록 보기: 추가된 모든 음악을 카드 형태로 시각적으로 표시
- 장르별 필터링: 드롭다운 메뉴로 특정 장르의 음악만 보기
- 음악 삭제: 개별 음악 항목 제거 기능
- 세션 저장: 새로고침해도 데이터 유지 (Laravel 세션 활용)
- 반응형 디자인: 모바일/태블릿/데스크톱 모두 지원
🎁 선택 추가 기능 (보너스)
- 분위기 태그별 필터링 추가
- 재생 횟수 카운터 (클릭 시 증가)
- 즐겨찾기(별표) 기능
- 검색 기능 (곡명/아티스트명)
- 다크모드 토글
- 음악 카드에 앨범 커버 이미지 URL 추가
- 재생목록 전체 초기화 버튼
🎯 학습 목표
이 프로젝트를 통해 Laravel의 기본 라우팅, 컨트롤러, Blade 템플릿 문법, 세션 관리를 익히고, 간단한 CRUD 로직을 구현하는 방법을 배울 수 있습니다.
제약 조건
- • Laravel 12.x 사용 (최신 버전)
- • 데이터베이스 사용 금지 (세션 저장소만 사용)
- • Blade 템플릿 엔진 활용
- • Tailwind CSS 또는 Bootstrap 5.3+ 사용 권장
- • JavaScript는 최소한으로 (필터링 정도만)
- • 외부 API 연동 금지
- • 단일 페이지 애플리케이션으로 구성
프롬프트 레시피
아래 프롬프트를 순서대로 AI에게 보내면 됩니다. 복사 버튼을 눌러 바로 사용하세요.
Laravel 12.x 프로젝트로 음악 재생목록 관리 웹 애플리케이션을 만들어주세요. 요구사항: 1. 프로젝트명: music-playlist-curator 2. Tailwind CSS 설치 및 설정 3. 메인 페이지 라우트 설정 (GET /) 4. PlaylistController 생성하여 index 메서드 구현 5. resources/views/playlist/index.blade.php 생성 6. 페이지 레이아웃: - 상단에 "🎵 나만의 음악 재생목록" 제목 - 음악 추가 폼 섹션 (곡명, 아티스트, 장르 선택, 분위기 태그 입력 필드) - 장르 옵션: 팝, 록, 힙합, 재즈, 클래식, 인디, 발라드, EDM - "추가하기" 버튼 - 아래에 "아직 추가된 음악이 없습니다" 메시지 표시 7. 폼 스타일: 현대적이고 깔끔한 카드 디자인, 그라데이션 배경 적용 8. 반응형 디자인 적용 (모바일에서도 잘 보이도록) 데이터베이스는 사용하지 말고, 다음 단계에서 세션으로 데이터를 저장할 예정입니다.
기대 결과: Laravel 프로젝트가 생성되고, Tailwind CSS가 설정되며, 음악 추가 폼이 있는 깔끔한 메인 페이지가 표시됩니다. 폼은 작동하지 않지만 시각적으로 완성된 상태입니다.
음악 추가 기능을 구현해주세요. 요구사항: 1. PlaylistController에 store 메서드 추가 2. POST /playlist/add 라우트 생성 3. 폼 데이터 검증: - title (곡명): 필수, 최대 100자 - artist (아티스트): 필수, 최대 100자 - genre (장르): 필수, 지정된 옵션 중 하나 - mood (분위기): 선택, 최대 50자 4. 세션에 음악 데이터 저장: - 세션 키: 'playlist' - 각 음악에 고유 ID 부여 (uniqid() 사용) - 추가 시간(created_at)도 함께 저장 5. 저장 후 메인 페이지로 리다이렉트하며 성공 메시지 표시 6. 검증 실패 시 에러 메시지 표시 및 입력값 유지 7. CSRF 토큰 처리 폼 액션을 새로 만든 라우트로 연결해주세요.
기대 결과: 음악 추가 폼이 실제로 작동하여, 데이터를 입력하고 제출하면 세션에 저장되고 성공 메시지가 표시됩니다. 검증 에러도 적절히 표시됩니다.
저장된 음악 목록을 표시하고 삭제 기능을 추가해주세요.
요구사항:
1. PlaylistController의 index 메서드에서 세션의 playlist 데이터를 뷰로 전달
2. index.blade.php 수정:
- 세션에 음악이 있으면 카드 그리드로 표시 (3열 그리드, 모바일에서는 1열)
- 각 음악 카드에 표시할 정보:
* 곡명 (큰 글씨, 볼드)
* 아티스트명
* 장르 배지 (색상으로 구분: 팝-분홍, 록-빨강, 힙합-보라, 재즈-파랑, 클래식-금색, 인디-초록, 발라드-회색, EDM-네온)
* 분위기 태그 (있는 경우)
* 추가된 시간 (예: "2분 전", diffForHumans 사용)
- 각 카드 우측 상단에 "삭제" 버튼 (작은 X 아이콘)
3. PlaylistController에 destroy 메서드 추가
4. DELETE /playlist/{id} 라우트 생성
5. 삭제 시 세션에서 해당 ID의 음악 제거 후 리다이렉트
6. 삭제 버튼은 form으로 감싸서 DELETE 메서드로 전송
7. 음악이 없을 때는 "아직 추가된 음악이 없습니다. 위에서 음악을 추가해보세요!" 메시지 표시
8. 카드 호버 시 살짝 떠오르는 애니메이션 효과 추가
전체 음악 개수도 상단에 표시해주세요 (예: "총 5곡").
기대 결과: 추가된 음악들이 아름다운 카드 형태로 그리드에 표시되며, 각 카드에는 장르별 색상 배지가 적용됩니다. 삭제 버튼을 클릭하면 해당 음악이 목록에서 제거됩니다. 애니메이션 효과로 사용자 경험이 향상됩니다.
장르별 필터링 기능과 UI 개선을 추가해주세요. 요구사항: 1. 음악 목록 상단에 장르 필터 드롭다운 추가: - "전체 보기" 옵션 (기본값) - 각 장르 옵션 (팝, 록, 힙합, 재즈, 클래식, 인디, 발라드, EDM) 2. JavaScript로 필터링 구현: - 드롭다운 변경 시 해당 장르의 카드만 표시 - "전체 보기" 선택 시 모든 카드 표시 - 페이지 새로고침 없이 즉시 필터링 - data-genre 속성을 각 카드에 추가하여 필터링에 활용 3. 현재 필터링된 장르에 해당하는 음악 개수 표시 (예: "록 5곡") 4. 추가 UI 개선: - 성공/에러 메시지에 자동 사라짐 효과 (3초 후) - 음악 추가 후 폼 자동 초기화 - 페이지 상단에 헤더 그라데이션 배경 추가 - 음악이 없을 때 일러스트레이션 아이콘 추가 (🎵🎸🎹) 5. 접근성 개선: - 적절한 aria-label 추가 - 키보드 네비게이션 지원 모든 JavaScript는 <script> 태그 안에 Blade 템플릿 하단에 인라인으로 작성해주세요.
기대 결과: 장르 필터 드롭다운이 작동하여 선택한 장르의 음악만 즉시 표시됩니다. 전체적인 UI가 더욱 세련되고 사용자 친화적으로 개선되며, 성공 메시지가 자동으로 사라지고 폼이 초기화됩니다. 완성도 높은 음악 재생목록 관리 애플리케이션이 완성됩니다.
제출된 작품 (1)
로그인 후 제출Music Playlist Curator - 음악 재생목록 관리자
나만의 음악 취향을 체계적으로 관리하고 큐레이션할 수 있는 플레이리스트 관리 도구