- getAlbumDetails: tracks/teasers/photos 쿼리 Promise.all로 병렬 실행 - photos.js: 멤버 INSERT for loop → VALUES 배치 처리 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- src/services/album.js 생성: getAlbumDetails, getAlbumsWithTracks - src/services/schedule.js 생성: getMonthlySchedules, getUpcomingSchedules - albums/index.js, schedules/index.js에서 서비스 사용으로 변경 - schedules/index.js에서 중복 함수 제거 (240줄 감소) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>