GitHub Actions로 야심 차게 시작했던 자동화 로직이 YouTube 봇 차단이라는 벽에 부딪혔어요. 봇으로 인식돼서 자막 수집이 전부 실패하는 상황이었죠. 쿠키 설정까지 해봤지만 소용없더라고요. 결국 클라우드를 포기하고 제 노트북을 서버로 쓰는 로컬 방식으로 방향을 틀었습니다. 이 글은 그 과정에서 겪은 온갖 오류와 삽질을 그대로 담은 스케줄러 자동화 구축기 실습 로그예요.
자동화 목표: 사람 없이 하루 3번 글이 올라가는 시스템
오늘 제가 만들고 싶었던 건 버튼 하나 안 눌러도 정해진 시간에 AI가 자막을 수집하고 글까지 써주는 ‘완전 자동화’ 시스템이었어요. 여기서 스케줄러(특정 시간에 프로그램이 자동으로 실행되도록 예약하는 도구)를 활용해서 하루 3번, 오전 9시·오후 2시·저녁 8시에 맞춰 작동하게 설정했습니다.
준비물은 생각보다 단순했어요. 실행 환경이 될 Windows 노트북과 코드를 짜줄 Claude만 있으면 됩니다. 추가로 시스템 제어를 위해 Python 환경이 미리 구축되어 있어야 해요.
Step 1. 로컬 서버 구축과 Windows 작업 스케줄러 설정
클라우드 서비스의 IP 차단 문제를 피하기 위해 Windows 작업 스케줄러를 활용해봤어요. 노트북 덮개를 닫아도 절전 상태에서 자동으로 깨어나 실행되고, 작업이 끝나면 다시 절전 모드로 돌아가도록 구성했습니다. 이렇게 하니 전기세가 한 달에 약 3,000원 수준이더라고요. 처음엔 ‘이게 말이 되나?’ 싶었는데 진짜였어요.
실행할 배치 파일(.bat)을 만들고 작업 스케줄러에 등록하는 과정을 거쳤는데, 순탄하지 않았습니다. 아래가 제 삽질의 역사예요.
- PowerShell 권한 에러 — 관리자 권한 없이 실행해서 스크립트가 차단됨 → 관리자 권한으로 터미널을 다시 열어서 해결했어요.
- 배치 파일 경로 오류 — 파일 경로에 공백이 있어 실행 파일을 못 찾음 → 전체 경로를 큰따옴표(“)로 감싸니까 됐어요.
- 절전 모드 미작동 — 노트북이 깨어나지 않아서 실행 자체가 누락 → 전원 옵션에서 ‘절전 모드 해제 타이머’ 허용으로 해결했습니다.
막힐 때마다 에러 화면을 캡처해서 Claude한테 보여줬더니 금방 해결 방법을 알려주더라고요. 알려준 대로 터미널에 명령어를 입력했더니 생각보다 허무하게 해결됐습니다. 뭔가 대단한 게 필요할 줄 알았는데, 그냥 대화하듯 물어보면 되는 거였어요.
Step 2. 모니터링 중 발견한 중복 발행 문제와 로직 수정
로컬 서버를 구축하고 스케줄러를 돌린 뒤 며칠간 모니터링을 해봤어요. 그런데 예상치 못한 문제가 터졌습니다. 슬랙봇 관련 글이 계속해서 중복 발행되는 거예요. ‘이거 뭐지?’ 싶어서 원인을 파헤쳐봤더니 세 가지 결정적인 구멍이 있었습니다.
| 문제 원인 | 기존 상태 | 수정 후 상태 (구현 방법) |
|---|---|---|
| URL 저장 여부 | approved.txt 저장 누락 | source_url 파이프라인 완성: 발행 완료된 URL을 approved.txt에 한 줄씩 기록하고, 실행 시 이 파일을 먼저 읽어 대조하는 필터 추가 |
| 유사도 임계값 | 50% (너무 낮음) | 70%로 상향 조정: Scikit-learn의 TfidfVectorizer와 cosine_similarity를 사용해 텍스트 간 거리 측정 로직 강화 |
| 토큰 필터링 | 모든 단어 포함 | 3글자 미만 토큰 제외: 의미 없는 조사나 단편적인 단어로 인한 유사도 왜곡을 막기 위해 필터링 조건 추가 |
특히 영문과 한글의 토큰(텍스트를 처리하는 최소 단위) 불일치 때문에 중복 감지가 제대로 안 되고 있었어요. 이를 해결하기 위해 도구명 반복 발행 시 페널티를 주는 로직도 추가했습니다. 이 과정에서 Claude 토큰을 정말 많이 썼는데, 코딩을 몰라도 대화만으로 로직을 짤 수 있다는 게 아직도 신기하더라고요.
Step 3. 최종 결과 확인: 진짜 혼자 돌아가더라고요
하루 종일 씨름한 끝에 드디어 중복 없이 깔끔하게 글이 발행되는 시스템을 완성했어요. 이제 저는 아무것도 안 해도 노트북이 알아서 자막을 긁어오고, AI가 글을 써서 블로그에 올려줍니다.
최종적으로 발행된 글 중 하나인 “Claude Code로 코딩 몰라도 10분 만에 웹 서비스 기능 구현하기”가 의도한 시간에 딱 올라온 걸 확인했어요. 수동으로 했을 때는 한 건당 30분 넘게 걸렸는데, 이제는 0분입니다. 이 차이가 진짜 크게 느껴지더라고요.
.
자주 묻는 질문 (FAQ)
Q: 노트북을 계속 켜두면 전기세가 많이 나오지 않나요?
A: 절전 모드 해제 타이머 기능을 쓰면 작업 시간에만 잠깐 깨어났다가 다시 잠들어요. 그래서 한 달 약 3,000원 수준으로 유지됩니다.
Q: GitHub Actions 대신 로컬을 추천하는 이유가 뭔가요?
A: YouTube 같은 대형 플랫폼은 클라우드 서버(GitHub 등)의 IP를 봇으로 인식해서 차단하는 경우가 많아요. 개인 PC의 IP는 상대적으로 안전하게 통과되더라고요.
Q: 코딩을 전혀 모르는데 이런 설정이 가능한가요?
A: 네, 에러 메시지를 그대로 복사해서 AI한테 “해결해줘”라고 하면 수정된 코드를 줘요. 그대로 붙여넣기만 하면 됩니다. 저도 그렇게 했거든요.
오늘은 진짜 삽질의 연속이었어요. 봇 차단부터 경로 오류, 예상치 못한 중복 발행 이슈까지 하나하나 막히고 해결하느라 진이 다 빠졌거든요. 그래도 이 스케줄러 자동화 구축기를 완성하고 나니까 내 컴퓨터가 알아서 돈 벌어다 줄 준비를 마쳤다는 생각에 뿌듯하네요. 하루 다 쓴 값은 했다 싶습니다.
📌 관련 글도 읽어보세요
썸네일: Aditya Chinchure on Unsplash