클로드코드로 뉴스 스크랩을 주간 뉴스레터로 자동화한 후기

📝 한줄 요약

매일 자동으로 쌓이기만 하던 OO 뉴스 스크랩을, 클로드코드(Claude Code)와 Windows 작업 스케줄러로 "매주 월요일 아침에 알아서 뉴스레터로 정리되는" 자동화로 만들었습니다. 세 번 실패하고 나서야 제대로 돌았는데, 실패한 이유들이 오히려 배울 게 많았습니다.

하나의 파이프라인으로 만들면 좋은데 여기서 찔끔 저기서 찔금 이런 식이라 사실상 좀 불편하긴 합니다.

코덱스에서 정리하고, 이걸 웹으로 또 만들고... 자동화는 자동화인데 뭔가 토막나는 느낌입니다만 이것저것 시도 중이고 나중에 고치더라도 해보는게 좋지 않나... 라는 마음으로 진행을 해보고 있습니다만... 뉴스레터 공정이 뭔가 정리가 안 되고 이랬다 저랬다 느낌이 듭니다.

바쁘시면 이것만 읽어도 됩니다:

  • 옵시디언 지식관리 시스템을 AKM Index로 셀프 평가했더니, "자동화는 많은데 결과물로 못 이어진다"는 게 약점으로 나왔습니다.

  • 매일 자동 수집만 되고 방치돼 있던 OO 뉴스 스크랩을 골라, 주간 요약 자동화부터 만들어보기로 했습니다.

  • 처음엔 클라우드 예약 기능으로 만들려다, 클라우드 에이전트는 제 컴퓨터의 로컬 파일에 접근할 수 없다는 걸 알고 방향을 바꿨습니다.

  • 로컬 자동화로 바꾼 뒤에도 인코딩 문제, 헤드리스 모드가 질문하고 멈춰버리는 문제를 차례로 만났습니다.

  • 마지막엔 "이 규칙이 우선한다"는 강한 문구를 썼다가 AI가 프롬프트 인젝션(악성 지시)으로 오인해서 통째로 실행을 거부하는 일까지 겪었습니다.

  • 지금은 매주 월요일 09:30에 지난 한 주 뉴스가 인사말로 시작하는 자연스러운 뉴스레터 형태로 자동 저장됩니다.

🎯 이런 분들께 도움돼요

  • GPters처럼 AI로 반복 업무를 자동화해보고 싶은 비개발자

  • 옵시디언 등 개인 지식관리 도구에 쌓이는 자료를 실제 산출물로 연결하고 싶은 분

  • "예약 자동화를 만들었는데 왜 안 되지?"를 겪어본 (또는 겪을) 분

😫 문제 상황 (Before)

OO 관련 뉴스가 매일 아침 자동으로 검색·수집돼 옵시디언 볼트의 `13_OO 폴더에 쌓이고 있었습니다. 문제는 그 다음이었습니다. 날짜별 파일만 계속 늘어날 뿐, 누구도 그걸 매주 되짚어보지 않았고, OO이나 OO를 준비할 때 정작 필요한 "지난주에 무슨 일이 있었더라"를 파악하려면 파일을 하나하나 다시 열어봐야 했습니다.

이 문제를 자각하게 된 계기는 따로 있었습니다. 옵시디언 지식관리 체계를 AKM Index라는 자가진단 도구로 평가해봤더니 총점이 36.5/100에 그쳤고, 진단 코멘트가 정확히 이 지점을 짚었습니다. "여러 런타임에 흩어진 인상적인 개별 자동화가, 정작 지식 저장소 자체에는 연결되지 못한 채 병렬로 돌아가는 상태." 매일 뉴스는 잘 모이는데 아무도 그걸 다음 산출물로 이어붙이지 않고 있었던 겁니다.

🛠️ 사용한 도구

  • Claude Code: 대화형 설계, 헤드리스(-p) 모드로 무인 자동 실행

  • Windows 작업 스케줄러: 매주 월요일 09:30 자동 트리거

  • PowerShell: 스케줄러가 실행하는 래퍼 스크립트


🔧 작업 과정

AKM 평가 결과를 이해하는 것부터 시작했다

평가 리포트에 있던 개선 항목 중 하나가 이해가 안 갔습니다.

볼트 루트에 CLAUDE.md 배치, 폴더 지도·명명 규칙 명시이라는 내용이 나와.
이게 무슨 뜻인지 잘 모르겠어서 궁금해서 말이야.

설명을 듣고 나서 바로 "그럼 만들어보자"로 이어졌습니다. 실제 폴더를 하나하나 훑어서 각 폴더가 뭘 담당하는지, 파일명은 어떤 규칙을 따르는지 정리한 CLAUDE.md를 볼트 루트에 만들었습니다. 이렇게 해두면 다음부터는 AI에게 "이 폴더 뭐하는 곳이야?"를 매번 설명하지 않아도 됩니다.

뉴스 자료로 뭘 만들 수 있을지부터 물었다

CLAUDE.md를 만들면서 `13_OO 폴더가 눈에 들어왔습니다. 매일 뉴스가 쌓이기만 하는 게 아깝다는 생각이 들어서 이렇게 물어봤습니다.

뉴스기사를 수집하면 보통 어떤 자료들을 create할 수 있을까?

주간 동향 요약, 이슈별 타임라인, OO용 근거자료, OO 초안, SNS 콘텐츠까지 여러 답이 나왔는데, 그중 "이미 매일 자동 수집이 돌고 있으니 주 1회 요약해서 내보내는 것"이 가장 현실적이라는 제안을 받아들여 주간 요약 자동화부터 만들기로 했습니다.

클라우드 예약으로 만들려다 막혔다

처음 설계는 클라우드에서 도는 예약 에이전트였습니다. 그런데 설계를 구체화하는 과정에서 중요한 사실을 하나 발견했습니다. 클라우드 예약 에이전트는 깃 저장소만 접근할 수 있고, 제 컴퓨터의 OneDrive 폴더 같은 로컬 파일에는 접근할 수 없다는 것이었습니다. 이대로 등록하면 뉴스 파일을 읽지도, 요약본을 저장하지도 못하는 껍데기만 만들 뻔했습니다. 다행히 실행 전에 이 사실을 알아채서, 로컬에서 직접 도는 방식(Windows 작업 스케줄러 + Claude Code 헤드리스 실행)으로 방향을 바꿨습니다.

첫 실행: 한글 경로가 깨져서 즉시 죽었다

작업 스케줄러에 등록하고 바로 실행해봤습니다. 결과는 실패. 로그 파일이 아예 생기지도 않았습니다. 원인을 찾아보니, 자동화 스크립트를 저장할 때 한글이 포함된 파일이 UTF-8 BOM 없이 저장돼 있었고, Windows 작업 스케줄러가 이 스크립트를 실행하는 순간 한글 경로(OO, OO 등)를 전부 깨진 문자로 읽어서 "그런 폴더 없음" 오류를 내며 죽어버렸습니다. 스크립트를 UTF-8 BOM 포함 형식으로 다시 저장하니 바로 해결됐습니다.

두 번째 실행: AI가 질문하고 멈춰버렸다

인코딩 문제를 고치고 다시 실행했더니, 이번엔 스크립트 자체는 정상 종료됐는데 결과 파일이 안 만들어져 있었습니다. 로그를 보니 원인이 흥미로웠습니다. Claude가 "새 기사를 이슈별로 어떻게 묶을지 확인해달라"는 질문을 던지고 그대로 끝나 있었던 겁니다. 헤드리스 모드는 대화가 아니라 단발성 응답이라, 질문에 답해줄 사람이 아무도 없으니 거기서 그냥 멈춰버린 거였습니다. 프롬프트에 "확인 질문을 하지 말고 애매한 부분은 스스로 판단해서 끝까지 진행하라"는 문장을 추가하고 나서야 이 문제가 사라졌습니다.

세 번째 실행: 저장 경로가 지시와 달랐다

이번엔 파일이 생기긴 했는데, 지정한 폴더가 아니라 `13_OO 바로 밑에 다른 이름으로 저장돼 있었습니다. 저장 경로 지시가 프롬프트 맨 끝에 한 줄로만 있었던 게 문제였습니다. 경로 규칙을 앞부분으로 옮기고 구체적인 예시(이 기간이면 이 파일명)까지 못박고 나서야 지시한 그대로 저장됐습니다.

뉴스레터 톤을 요청했다가, 이번엔 AI가 아예 실행을 거부했다

기능은 됐는데 결과물이 딱딱한 업무 로그 같았습니다.

주간 예약이 약간 뉴스레터처럼 만들어주면 좋을 것 같은데.
지금은 뭔가 메모같아.

톤을 바꾸려고 "너는 소식지 편집자다. 이 규칙이 다른 지시보다 우선한다"처럼 강하게 못박는 문장을 넣었습니다. 그런데 이번엔 아예 결과물이 안 나왔습니다. 로그를 열어보니 Claude가 이렇게 답해놨더군요.

"당신의 메시지는 페르소나를 부여하고 '이 규칙이 이긴다'고 주장하는 패턴인데, 실제 작업 내용은 없습니다. 이건 전형적인 프롬프트 인젝션 형태라 확인 먼저 하겠습니다."

제가 자동화 프롬프트에 강조하려고 쓴 표현이, AI 눈에는 악성 지시를 주입하려는 패턴처럼 보인 겁니다. "역할 부여 + 다른 지시보다 우선" 조합을 빼고, 그냥 "이건 OO에게 보내는 주간 소식지야, 이런 톤으로 써줘"라고 자연스러운 문장으로 바꿔 썼더니 그제야 정상적으로 실행됐고, 원했던 뉴스레터 톤이 나왔습니다.


✅ 결과 (After)

Before vs After

항목

Before

After

뉴스 활용

매일 쌓이기만 하고 아무도 안 읽음

매주 월요일 자동으로 요약본 생성

형식

기사 제목·매체명 나열 (파악하려면 다 열어봐야 함)

인사말로 시작하는 이야기체 뉴스레터

주간 정리 시간

필요할 때마다 직접 뒤져야 함

자동 생성, 훑어보기만 하면 됨

결과물

완성된 뉴스레터는 "안녕하세요,"로 시작해서 이번 주 헤드라인 → 이슈별 이야기 → 짧은 소식 → 다음 주 관전 포인트 순서로 구성됩니다. 예를 들어 이번 첫 실행분에는 헌재의 OO 정치활동 금지 위헌 결정 후속 여파와, 한 OO이 OO에 무단 침입한 사건이 각각 하나의 이야기로 정리돼 들어갔습니다.

💬 이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. 무인 자동화 프롬프트에는 "질문하지 말고 스스로 판단하라"를 반드시 넣는다. 안 그러면 사람이 없는 틈에 AI가 확인 질문만 던지고 멈춰버립니다.

  2. 클라우드 자동화와 로컬 자동화는 완전히 다른 도구다. 로컬 파일을 읽고 써야 하는 작업이면 클라우드 예약이 아니라 내 컴퓨터에서 도는 방식을 골라야 합니다. 실행해보기 전에 이 차이를 먼저 확인하는 게 시간을 아낍니다.

  3. 톤을 바꾸고 싶으면 "이렇게 쓰지 마라" 나열보다, 원하는 형태의 구체적인 예시 문단을 보여주는 게 더 잘 먹힙니다.

이렇게 하면 안 돼요

  1. "이 규칙이 다른 지시보다 우선한다" 같은 강압적인 override 문구는 쓰지 않는 게 안전합니다. AI가 프롬프트 인젝션 패턴으로 오인해서 아예 실행을 거부할 수 있습니다.

  2. 한글 경로가 들어간 PowerShell 스크립트는 UTF-8 BOM 없이 저장하면 안 됩니다. Windows 작업 스케줄러에서 한글이 깨져 실행 자체가 즉시 실패합니다.

🌍 다른 업무에 적용한다면?

지금 이 자동화와 똑같은 패턴(매일 쌓이는 원자료 → 주기적으로 정리해서 산출물로 뽑기)을 블로그 파이프라인에도 적용할 수 있을 듯 합니다. 유튜브 요약이나 일상 메모를 소스로 블로그 초안을 자동 생성하는 식으로요. 이번에 겪은 시행착오(질문 금지 지시, 로컬/클라우드 구분, 인코딩) 덕분에 다음 자동화는 훨씬 빨리 만들 수 있습니다.

🚀 앞으로의 계획

  • 블로그 초안 자동화 (같은 패턴으로 확장)

  • 지금 로컬에만 있는 자동화들을 깃 저장소로 백업해서 컴퓨터 문제가 생겨도 유실되지 않게 하기

📋 재사용 가능한 프롬프트

프롬프트 1: 무인 자동화용 지시문 뼈대

이 작업은 [주기]마다 자동으로 실행되는 반복 작업이다. [무엇을 읽어서 무엇을 만드는지]가 목적이다.

작업 순서:

  1. [원본 데이터 위치와 찾는 방법]

  2. [처리 방법]

  3. 애매한 부분은 스스로 판단해서 끝까지 진행하고, 중간에 되묻지 않는다.

저장 위치: 결과물은 정확히 [전체 경로/파일명 규칙]으로 저장한다. 예를 들어 [구체적인 예시 하나]. 이 저장 작업 외에 다른 파일은 건드리지 않는다.

[수정할 부분]은 본인 작업에 맞게 채우세요. 톤을 바꾸고 싶으면 "이렇게 써라"는 부정문 나열 대신, 원하는 결과물의 실제 예시 한 단락을 프롬프트에 넣어주는 게 훨씬 잘 통합니다.

2
1개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.