Claude Code를 이용한 주간소식 요약 및 자동화
목차
작년부터 개발하고 운영 중인 록 음악 커뮤니티 리얼그루브에는 주간소식 메뉴가 있다. 매주 평균 60개 이상의 새로운소식 글을 직접 정리해, 매주 월요일에 업로드하고 있다.
주간소식을 약 35건 정도 작성하다 보니 점점 패턴이 보이기 시작했다. 글의 구조는 점점 비슷해졌고, 분류·요약·정리 과정에서 반복적으로 수행하는 작업이 많아졌다. 특히 이 과정에 평균 2시간 이상이 소요되면서 점점 부담되기 시작했다.
이 작업은 더 이상 ‘창작’이라기보다 정형화된 작업에 가깝다는 생각이 들었고, “일부는 자동화할 수 있지 않을까?” 라는 생각이 들었다.
그래서 Claude Code를 이용해 주간소식에 들어갈 콘텐츠를 분류하고 요약하는 스킬(Skill)을 구현했고, 실제 발행 과정에도 적용해보기 시작했다.
이 글에서는 해당 스킬을 어떻게 설계하고 적용했는지, 그리고 실제 운영에 어떤 변화가 있었는지 정리해보려고 한다.
배경 #
주간소식은 매주 일요일부터 토요일까지 업로드된 새로운소식 글을 정리해, 월요일 새벽에 발행하는 방식으로 운영하고 있다.
사이트 오픈 초기에는 ChatGPT를 이용해 프롬프트로 단순 “이 내용을 요약해줘"와 같은 방식으로 요약을 진행하였다. 그러나 문맥이 부자연스러워 결과가 기대만큼 만족스럽지 않았다.
이후 AI를 사용하지 않고 직접 내용을 확인 후 요약했고, 게시글을 7개의 카테고리(신보 및 비디오, 아티스트, 인터뷰, 악기 및 장비, 음악산업, 법적문제, 기타)로 나누고, 각 분류별로 내용을 정리하는 방식으로 구조를 잡았다. 또한 국내 소식의 비중을 점차 늘려가며, 해당 카테고리 내에서 국내 소식만 따로 추려 정리하는 방식도 추가했다.
하지만 여전히 매주 60개 이상의 글을 정리하는 데에는 상당한 시간(평균 2시간 이상)이 필요했고, 개인적으로도 지속하기에는 부담이 되는 작업이었다. 그리고 주간소식의 구조가 점점 고정되면서, 이 작업은 자동화할 수 있겠다는 생각이 들어 Claude Code를 활용해 주간소식 정리를 자동화하는 스킬을 구현하게 되었다.
주간소식 형식 #
현재 주간소식은 아래의 순서대로 작성하고 있다.
- 상단 대표 이미지 추가
- 인사말 작성
- 아래 분류별로 소식 정리
- 국내소식, 신보 및 비디오 아티스트, 인터뷰, 악기 및 장비, 음악산업, 법적문제, 기타
- 국내 소식은 기존 분류 상관없이 국내소식 분류에 정리
- 마지막 인사말 작성
- 한 주간 소식 제목 및 원문 링크 목록을 Ordered List로 추가
일부 분류는 아래의 추가 규칙을 갖는다.
- 신보 및 비디오: 내용 작성 후 마지막에 게시글 제목만 Unordered List로 별도 정리
- 인터뷰: AI 내용이 포함될 경우 별도로 해당 내용을 Unordered List로 정리
- 분류가 없는 글일 경우 기타 분류에 포함
Skill 구현 #
앞서 정의한 주간소식 형식을 기반으로, 입력 데이터를 이용해 주간소식을 마크다운(.md) 파일로 생성하는 Claude Code 스킬(Skill)을 구현했다.
스킬은 Claude Code에 요구사항을 프롬프트 형태로 전달하여 생성하는 방식으로 구현했으며, 원하는 결과를 얻기 위해 입력 데이터 구조, 날짜, URL, 파일명, 글자 수 등 최대한 명확하게 정의해주었다.
입력 데이터 #
주간소식 생성에 사용되는 입력 데이터는 관리자가 DB에서 직접 추출한 JSON 배열 형태이며, 각 항목은 아래와 같은 구조를 가진다.
| 항목 | 설명 | 비고 |
|---|---|---|
| id | 게시글 ID | |
| category_name | 게시글 분류 이름으로 {국내소식, 신보 및 비디오 아티스트, 인터뷰, 악기 및 장비, 음악산업, 법적문제, 기타} 중 하나 | |
| created_at | 게시글 작성일 | ISO 8601 형식 |
| subject | 제목 | |
| stripped_content | stripg tag된 게시글 본문 |
날짜 처리 (시작일 / 종료일) #
주간소식의 기간은 입력 데이터의 첫 번째와 마지막 항목의 created_at 값을 기준으로 계산한다.
- 시작일: 첫 번째 데이터의 날짜
- 종료일: 마지막 데이터의 날짜
- 출력 형식: M/D (예: 4/1 ~ 4/7)
해당 기간 정보는 주간소식 제목 및 본문, 파일명에 사용된다.
원문 링크 #
각 게시글의 원문 링크는 아래 규칙을 따른다.
https://realgroove.net/space/news/post/:id
:id 항목은 입력 데이터의 id 값을 이용해 자동 생성한다.
저장 파일명 #
생성된 주간소식은 아래 경로와 파일명 규칙에 따라 저장한다.
/weekly/[Weekly#{순서}] 주간소식 {시작일} - {종료일}.md
- {순서}: 주간소식 번호 (36부터 시작 - 35까지 직접 작성)
- {시작일}, {종료일}: M/D 형식
글자 수 #
내용이 길어지는 것을 방지하기 위해 최대 300자 이내로 요약하도록 정의하도록 지정했다.
작성 예시 #
Claude가 문체, 구성 방식 요약 스타일을 확인 후 학습할 수 있도록 최근 작성된 주간소식 4건의 URL을 예시로 함께 제공했다.
적용 #
위에서 정의한 구조를 기반으로 스킬을 구현한 후, 36번째 주간소식(Weekly #36)에 사용할 데이터를 입력해 실제로 생성해보았다.
결과는 기대 이상이었다. 데이터를 입력하자 거의 즉시 주간소식이 생성되었고, 기존에 작성하던 형식과 거의 동일한 구조로 결과가 나왔다. 내용 역시 대부분 그대로 사용할 수 있을 정도로 완성도가 높았다.
매주 일요일에서 월요일로 넘어가는 새벽마다 2시간 이상을 들여 작성하던 작업이었기 때문에, “왜 더 빨리 적용하지 않았을까”라는 생각이 들 정도였다.
실제 작업 시간도 크게 줄었다. 기존에는 주간소식 작성에 2시간 이상이 소요되었지만, 스킬 적용 이후에는 검수 및 수정, 링크 정리까지 포함해 약 30분 내외로 마무리할 수 있게 되었다.
오히려 현재는 내용 자체를 작성하는 것보다, 리얼그루브 에디터에 맞게 형식을 정리하는 작업이 더 많은 시간을 차지하고 있다.
앞으로는 생성된 결과를 기반으로 부족한 부분을 보완하고, 그 기준을 다시 스킬에 반영하는 방식으로 개선을 반복한다면, 주간소식의 기본적인 내용 생성은 AI가 충분히 담당할 수 있는 영역이라고 될 수 있을 것 같다.
한계와 보완 #
하지만 AI가 생성한 주간소식 내용을 그대로 사용할 수 있는 것은 아니다.
AI가 판단하기 어려운 영역 #
AI가 생성한 결과는 기본적인 구조나 요약 측면에서는 충분히 활용 가능하지만, 내용의 정확성이나 문맥의 자연스러움에 대해서는 반드시 한 번 더 검증하는 과정이 필요하다.
또한 아티스트의 중요도나 소식의 우선순위 판단은 현재 기준에서는 AI가 완전히 대체하기 어려운 영역이라고 생각한다.
예를 들어 ‘신보 및 비디오’ 카테고리의 경우, 주요 아티스트의 소식은 본문으로 정리하고 나머지는 제목 리스트로 구성하는 방식으로 작성하고 있는데, 어떤 아티스트를 ‘주요’로 볼 것인지에 대한 기준은 단순한 데이터만으로 판단하기 어렵다.
이 부분은 밴드의 인지도, 최근 활동, 현재 이슈 등 다양한 요소를 종합적으로 고려해야 하기 때문에, 이 부분은 여전히 사람이 직접 판단하고 수정하는 과정이 필요하다.
해당 부분은 주간소식 작성하면서 기존과 같이 직접 판단한 후 작성할 예정이며, AI가 판단할 수 있는 방법이 있는지는 지속적으로 확인해 나갈 것이다.
자동화 확장 #
현재는 주간소식 생성을 위해 필요한 JSON 데이터를 직접 추출한 후, 프롬프트에 입력하여 결과를 생성하는 방식으로 운영하고 있다.
하지만 이 과정을 조금 더 확장하면, 아래와 같이 하나의 자동화된 업무 프로세스로 구성할 수 있다.
- 주간소식 데이터를 API로 자동 수집
- Claude Code 또는 Claude 기반 워크플로우를 이용해 정해진 시간에 자동 실행
- 생성 결과를 알림으로 전달 (예: PlayMCP의 카카오톡 나챗방등 활용)
- 필요 시 관리자 페이지에서 검수 후 발행
리얼그루브 관리자가 만들어진다면(현재는 사용자 규모가 많지 않아 수동운영), Crontab을 이용해 일정 시간에 자동 실행한 뒤 주간소식 내용을 pending 상태로 저장하고, 검수 후 발행하는 방식으로도 확장해 나가려고 한다.
마치며 #
이번 구현을 통해 AI를 활용한 주간소식 요약 자동화를 진행했고, 기대 이상으로 만족스러운 결과를 얻을 수 있었다.
처음에는 단순히 “AI로 요약을 해보자”는 생각으로 시작했지만, 실제로는 내가 작업하던 방식과 예외 사항을 그대로 정의해 스킬로 구성한 뒤 적용해보니, 사람이 직접 작성한 것과 유사한 결과가 만들어졌다. 이 과정에서 AI를 어떻게 활용해야 하는지에 대해서도 알 수 있었다.
물론 모든 과정을 AI에 맡길 수 있는 것은 아니다. 중요한 판단이나 최종 검수는 여전히 사람이 직접 수행해야 하는 영역이다. 하지만 반복적이고 시간이 많이 소요되던 작업을 크게 줄일 수 있었다는 점에서, 충분히 의미 있는 변화라고 생각한다.
스킬은 결국 내가 수행하던 업무의 일부를 AI에게 위임하는 과정이다. 업무 방식이 계속 변화하는 만큼, 스킬 또한 그에 맞게 지속적으로 개선되어야 한다. 앞으로도 주간소식을 작성하면서, 부족한 부분을 보완하고 그 기준을 스킬에 반영해 나갈 예정이다.
예전부터 느껴왔지만, 이번 경험을 통해 더욱 확신하게 된 점은 앞으로는 AI를 단순히 사용하는 사람이 아니라, 제대로 활용할 수 있는 사람이 높은 생산성을 만들어낼 것이라는 것이다.
그렇다면 AI가 만들어낸 결과를 검수하고, 판단하고, 최종적으로 책임질 수 있는 사람은 어떻게 만들어질까? 결국 답은 단순하다고 생각한다. 직접 고민하고, 만들어보고, 경험해보고, 결론을 내 본 사람일 것이다. 기초를 바탕으로 스스로 문제를 해결해본 경험이 있는 사람만이, AI를 단순한 도구가 아니라 생산성을 극대화하는 수단으로 활용할 수 있을 것이다.