Claude Code로 Last.fm 월간 음악 리포트 만들기

Claude Code로 Last.fm 월간 음악 리포트 만들기

Claude Code로 Last.fm 월간 음악 리포트 만들기

Last.fm 월간 음악 리포트부터 띄우자

오늘 만들 것
Last.fm 월간 음악 리포트부터 띄우자

음악 들은 기록은 쌓이는데 막상 남는 화면은 별로 없더라구요. 오늘은 Claude Code로 Last.fm 월간 음악 리포트를 만들어서 내가 지난 30일 동안 뭐를 제일 많이 들었는지 한 장으로 뽑아볼 겁니다. 지난 편에서 Twitch 알림을 붙였다면 오늘은 남이 켠 방송 말고 내 기록을 예쁘게 챙기는 쪽으로 가보죠.

완성되면 상단에 총 재생 수, 가장 많이 들은 아티스트, 제일 자주 튼 곡이 뜨고 아래엔 밤늦게 들은 노래랑 top 10 목록이 카드로 내려옵니다. 스크린샷 찍어서 바로 친구한테 보내기 좋은 화면이면 성공입니다.

준비물은 하나만

Claude Code 하나면 됩니다. Codex 쓰는 분도 같은 프롬프트 구조로 따라가면 되는데, 오늘 화면은 Claude Code 기준으로 갈게요. Last.fm 계정이랑 무료 API key만 있으면 되고, 빈 폴더 하나 만든 뒤 CLAUDE.md에 아래 네 줄만 적어두면 시작이 훨씬 편해집니다.

결과물: report.html 한 장
말투: 한국어, 과장 금지
화면: 다크 카드, 모바일 우선
데이터: 최근 30일 Last.fm 기록만 사용

이건 외우지 말고 그냥 이렇게 해두면 됩니다. 이 파일을 먼저 두면 Claude Code가 첫 세션부터 헛소리를 덜 합니다.

붙여넣기 네 번이면 된다

1
첫 버전 한 장 뽑기

터미널에서 폴더를 연 뒤 claude -p로 아래 프롬프트를 넣어요.

AI에게 보낸 프롬프트
파이썬 파일 하나로 Last.fm 월간 음악 리포트 도구를 만들어줘. 파일 이름은 report.py. 상단 변수는 username, api_key 두 개만 두고, 실행하면 최근 30일 기록을 가져와 report.html을 저장해줘. report.html에는 총 재생 수, top artist 5개, top track 10개, 밤 11시 이후에 들은 곡 목록을 한국어 다크 카드 UI로 보여줘. 빌드 도구 없이 바로 열리게 해줘.
왜 이렇게 시켰나: 첫 결과를 빨리 봐야 덜 흔들립니다. 여기서 파일을 여러 개로 벌리면 초반부터 귀찮아져요.
이렇게 나오면 OK: report.pyreport.html이 생기고, 파이썬 파일 맨 위에 username이랑 api_key 넣는 줄이 보이면 됩니다.
여기서 이렇게 하면 안 돼요: Step 1에서 공유 버튼, 자동 갱신, 앨범 통계까지 한 번에 다 달라고 하지 마세요. 첫 판은 뽑히는지만 보면 충분합니다.
2
숫자 이상한 거 바로 잡기

이제 username이랑 api_key를 넣고 python report.py를 한 번 돌려봅시다. 결과가 나오면 이어서 수정만 덧붙이면 돼요.

AI에게 보낸 프롬프트
방금 만든 코드에서 Last.fm user.getRecentTracks 응답을 다시 점검해줘. nowplaying 항목은 집계에서 빼고, 최근 30일만 계산하게 해줘. 데이터가 비어 있으면 추측하지 말고 빈 상태 메시지를 한국어로 보여줘. 기존 파일 이름은 그대로 두고 필요한 줄만 수정해줘.
왜 이렇게 시켰나: Last.fm recent tracks에는 지금 재생 중 항목이 섞일 수 있거든요. 이거 안 빼면 Last.fm 월간 음악 리포트 숫자가 괜히 어색해집니다.
이렇게 나오면 OK: 새로고침했을 때 상단 카드 숫자가 달라지고, 아무 기록이 없는 계정은 빈 화면 대신 안내 문구가 보입니다.
여기서 이렇게 하면 안 돼요: 비어 있는 값을 억지로 0으로만 밀어붙이면 화면이 죽어 보입니다. 없는 건 없다고 말하게 두는 편이 훨씬 낫습니다.
3
공유하기 좋은 카드로 다듬기
AI에게 보낸 프롬프트
report.html 아래에 이번 달 한 줄 요약 3개를 추가해줘. 요약 문구는 실제 집계 숫자만 써서 담백하게 만들고, 모바일에서 카드가 한 줄씩 잘 내려오게 여백과 글자 크기를 정리해줘. 복사하기 쉬운 짧은 문장으로 보여줘.
왜 이렇게 시켰나: 숫자만 있으면 재미가 덜합니다. 한 줄 요약이 붙어야 친구가 봐도 바로 이해하죠.
이렇게 나오면 OK: 맨 아래에 '새벽 청취가 많다', '한 아티스트로 쏠렸다' 같은 짧은 문장이 뜨고, 폰으로 열어도 줄바꿈이 안 깨지면 됩니다.
여기서 이렇게 하면 안 돼요: '당신의 감성은 우주적입니다' 같은 과장 문구를 넣게 두면 바로 AI 냄새 납니다. 담백하게 가는 게 오래 씁니다.
4
필요한 줄만 더 고치기
AI에게 보낸 프롬프트
코드 전체를 다시 읽고 초보가 막힐 만한 부분만 정리해줘. API key 누락, 한글 깨짐, 빈 데이터, 모바일 줄바꿈만 점검하고 새 기능 추가는 하지 마. 수정한 이유를 주석 한 줄로 남겨줘.
왜 이렇게 시켰나: 마지막에 욕심내면 꼭 옆길로 샙니다. 검수는 넓게 말고, 진짜 막히는 데만 찍는 게 좋아요.
이렇게 나오면 OK: 주석 몇 줄이 생기고, report.py를 다시 돌렸을 때 같은 에러가 반복되지 않으면 끝입니다. 여기까지 했으면 반은 넘은 게 아니라 거의 다 왔습니다.
여기서 이렇게 하면 안 돼요: 이 단계에서 React로 바꾸자고 하면 다시 원점입니다. 오늘 목표는 Last.fm 월간 음악 리포트 한 장입니다.

여기서 막히면

첫 번째 현상은 Invalid API key가 뜨거나 report.html이 텅 비는 경우예요. 원인은 거의 늘 API key 복붙 실수거나 Last.fm username 오타입니다. 브라우저 주소창에 API URL을 직접 열어 JSON이 보이는지 먼저 확인하고, 거기서도 안 뜨면 키부터 다시 발급받는 게 제일 빠릅니다.

두 번째 현상은 숫자가 전부 0이거나 오늘 들은 곡만 하나 찍히는 경우입니다. 원인은 nowplaying 항목만 잡혔거나 최근 30일 계산에서 날짜 변환이 꼬인 거예요. report.py에서 처음 3개 track의 날짜를 출력하게 잠깐 바꿔보고, UNIX 시간이 비어 있는 항목은 집계에서 빼라고 다시 시키면 대부분 바로 풀립니다.

세 번째 현상은 한글이 깨지거나 모바일에서 카드가 옆으로 튀는 문제예요. 원인은 파일 저장 인코딩이 빠졌거나 카드 최소 너비가 너무 큰 경우가 많습니다. open(..., encoding='utf-8')이 들어갔는지 보고, CSS에 카드 너비를 고정값으로 박아놨다면 그 줄만 줄여달라고 말하면 됩니다.

다음에 붙여볼 것

한 걸음 더

여기까지 만들었으면 다음엔 /schedule로 매달 1일 아침에 report.py를 다시 돌리게 붙여보세요. Last.fm 월간 음악 리포트가 자동으로 갱신되기 시작하면, 듣는 기록이 그냥 기록이 아니라 꽤 재밌는 월말 화면으로 남습니다.

Related Searches

  • 🔍 Claude Code 사용법
  • 🔍 Claude Code 비교
  • 🔍 Last.fm 월간 음악 리포트 사용법
  • 🔍 Last.fm 월간 음악 리포트 비교
  • 🔍 Last.fm API 사용법
  • 🔍 Last.fm API 비교

댓글 쓰기

다음 이전