| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- unity
- 커스텀 패키지
- 직장인자기계발
- Dots
- 오공완
- 2D Camera
- sha
- TextMeshPro
- ui
- 패스트캠퍼스
- Unity Editor
- C#
- Custom Package
- RSA
- 샘플
- 환급챌린지
- 프레임워크
- AES
- DotsTween
- Job 시스템
- base64
- 암호화
- Tween
- job
- Framework
- 최적화
- 가이드
- 직장인공부
- 패스트캠퍼스후기
- adfit
- Today
- Total
EveryDay.DevUp
[PART 0.개요(1/1)] Claude Code로 C# 블로그와 유튜브 채널을 자동으로 운영하는 방법 본문
Claude Code로 C# 블로그와 유튜브 채널을 자동으로 운영하는 방법
주제 하나를 던지면 리서치부터 블로그 게시, TTS 영상 제작, 유튜브 업로드까지 — AI 에이전트가 콘텐츠 파이프라인 전체를 자동으로 처리하는 워크플로우를 소개한다.
목차
이 프로젝트가 해결하려는 문제
C#과 Unity를 배우는 신입 개발자에게는 세 가지 장벽이 있다.
첫 번째는 깊이의 문제다. 인터넷에 넘쳐나는 C# 입문 자료는 대부분 표면적인 문법 설명에 그친다. delegate가 무엇인지는 알지만, Unity의 이벤트 시스템에서 왜 메모리 누수가 생기는지는 모른다. struct와 class의 문법 차이는 알지만, GC 압박과 boxing 비용이 모바일 성능에 어떤 영향을 주는지는 모른다.
두 번째는 연결의 문제다. C# 개념을 배웠는데, 그게 Unity 프로젝트에서 정확히 어디서 문제가 되는지 모른다. IL(중간 언어) 수준에서 실제로 무슨 일이 벌어지는지 보여주는 자료는 거의 없다.
세 번째는 지속성의 문제다. 블로그 게시글 하나를 만들려면 리서치, 집필, SVG 시각화, HTML 변환, 게시라는 반복 작업이 필요하고, 여기에 유튜브 영상까지 만들려면 스크립트 작성, TTS 생성, 영상 렌더링, 업로드까지 더해진다. 이 부담이 결국 콘텐츠 생산을 멈추게 만든다.
이 프로젝트는 Claude Code의 스킬과 에이전트 시스템을 활용해 세 문제를 동시에 해결한다.
"C# 개념을 IL 분석과 Unity 실전까지 연결해서 깊이 있게", 그리고 "자동화된 파이프라인으로 블로그와 유튜브 채널을 동시에 꾸준히" 운영하는 것이 목표다.
전체 워크플로우 한눈에 보기

전체 파이프라인은 4단계로 구성된다. STEP 1~2는 순차적으로 실행하고, 사용자 검토 이후 STEP 3·4는 /publish-parallel 오케스트레이터가 두 에이전트를 동시에 실행한다. 모든 단계에서 텔레그램으로 진행 상황을 알려주기 때문에 자리를 비워도 상태를 파악할 수 있다.
STEP 1 — 주제 선정
docs/curriculum.md 파일에 PART별 주제 목차가 정리되어 있다. 타입 시스템, 클래스와 객체, 상속과 다형성, 인터페이스, 구조체와 레코드, 문자열, 제네릭, 컬렉션과 LINQ 등 15개 PART에 걸쳐 80개 이상의 C# 심화 주제가 실무 빈도 순으로 배치되어 있다.
주제를 선택하면 아래 구조로 폴더를 생성한다.
content/topic/PART {번호}/{주제명}/
├── research/ ← 리서치 결과
├── tistory/ ← HTML 및 이미지
├── youtube_make/ ← 영상 제작 소스
└── youtube_result/ ← 최종 영상
이 폴더가 이후 모든 산출물이 저장되는 기준 경로가 된다. 완료된 주제는 목차에 [v] 표시로 관리한다.
STEP 2 — 리서치 + 작성 + 교정 + HTML 변환 + 티스토리 게시
/research {주제명}
이 명령 하나로 리서치부터 티스토리 게시까지 일괄 수행된다.
3개 소스 병렬 리서치
| 소스 | 도구 | 강점 | 산출물 |
|---|---|---|---|
| NotebookLM | MCP 서버 | .NET 서적 기반 정확한 정보 추출 | research/notebooklm.md |
| Gemini | Gemini CLI | 넓은 맥락과 최신 정보 | research/gemini.md |
| Claude | Claude Code 자체 | 통합 분석과 구조화 | 내부 참조 |
세 소스가 동시에 동작한다. NotebookLM에는 CLR via C#, C# in Depth 등 유명 C# 서적이 소스로 등록되어 있어, 서적 기반의 정확한 개념 설명을 추출할 수 있다. 각각의 강점이 다르기 때문에, 단일 소스 대비 훨씬 균형 잡힌 리서치 결과를 얻을 수 있다.
게시글 작성
세 리서치 결과를 통합한 뒤, /c#-blog-write-guide 작성 규칙에 따라 result.md를 작성한다.
이 가이드가 정의하는 핵심 규칙은 다음과 같다.
ADEPT 교습법: 모든 개념을 비유(Analogy) → SVG 시각화(Diagram) → 코드 예시(Example) → 쉬운 설명(Plain) → 기술 정의(Technical) 순서로 설명한다. 도입부에서 기술 정의부터 시작하는 기존 자료와 정반대 순서다.
IL 분석 필수: C# 코드마다 ilspycmd로 IL(중간 언어)을 디컴파일한 결과를 함께 보여준다. box, callvirt, newobj 같은 IL 명령어가 실제로 어떤 비용을 만드는지 눈으로 확인할 수 있다.
고정 7섹션: 문제 제기 → 개념 정의 → 내부 동작 → 실전 적용 → 함정과 주의사항 → 버전별 변화 → 정리. 어떤 주제든 이 흐름을 따른다.
교정과 검토
작성이 끝나면 /c#-blog-reviewer 스킬이 자동으로 실행된다. 오타, 맞춤법, 띄어쓰기를 수정하고, 작성 가이드 준수 여부를 검토한 보고서를 생성한다.
HTML 변환과 티스토리 게시
교정이 끝나면 /tistory-format이 result.md를 티스토리 게시용 HTML로 변환한다. SVG 코드 블록은 rsvg-convert로 PNG 이미지로 변환되고, TOC가 자동 생성되며, C# 코드는 다크 테마에 파란 배지, IL 코드는 더 어두운 테마에 노란 배지가 붙는 커스텀 스타일이 적용된다.
변환된 tistory/tistory.html은 /tistory-publish 스킬이 Playwright 브라우저 자동화로 티스토리에 게시한다. HTML에 포함된 로컬 PNG 이미지를 티스토리 서버에 업로드하고, src 경로를 CDN URL로 자동 교체한다.
게시 후 텔레그램으로 result.md 파일과 게시 URL을 전송하고, 사용자의 최종 검토를 기다린다.
STEP 3·4 — 두 에이전트 병렬 배포
/publish-parallel
이 명령 하나로 두 에이전트가 동시에 백그라운드로 시작된다. 각 에이전트는 result.md를 원본으로 삼아 독립적으로 작업하기 때문에 서로 의존 관계가 없다.
/publish-parallel
├── [1/2] unity-skills-creator → Unity 실전 가이드
└── [2/2] video-production → TTS 영상 + YouTube
텔레그램으로 시작 알림을 보내고, 각 에이전트가 완료될 때마다 개별 알림, 전체 완료 시 집계 알림을 보낸다. 하나가 실패해도 나머지는 정상적으로 진행된다.
STEP 3 — Unity 실전 가이드 생성
unity-skills-creator 에이전트가 result.md에서 이 C# 개념 고유의 Unity 함정과 패턴을 추출한다.
일반론이 아니라, 게시글에 실제로 다룬 내용만 대상으로 한다. 예를 들어 boxing 게시글이라면 "LINQ가 boxing을 일으키는 구체적 상황"이나 "Update 루프에서 인터페이스 호출 시 boxing 비용" 같은 함정을 추출한다.
결과물은 content/topic/unity-skills/PART {번호}/{주제명}/SKILL.md 파일로, 다음과 같은 구조로 정리된다.
- DON'T — 하면 안 되는 패턴 (문제 설명 + 나쁜 코드 예시)
- DO — 올바른 패턴 (개선 설명 + 좋은 코드 예시)
- 모바일 성능 함정 — GC 압박, 배터리, 드로우콜 관련 주의사항
- 플랫폼별 차이 — IL2CPP vs Mono 동작 차이
- 코드 작성 전 체크리스트
이 SKILL.md는 다음 주제를 작업할 때 AI가 참조하는 가이드 역할을 한다. 주제가 쌓일수록 AI가 같은 함정을 반복하지 않게 되는 자기 개선 메커니즘이다.
STEP 4 — TTS 영상 제작과 YouTube 업로드
가장 복잡한 파이프라인이다. /video-production 스킬이 /video-render와 /youtube-upload-pipeline 두 스킬을 순차 호출하면서 TTS 나레이션이 포함된 영상을 만든다.

1단계 — HTML 파싱과 스크립트 작성 (메인 스킬)
tistory.html을 파싱해서 제목, 텍스트, 코드, 표, 인용, 이미지, 요약 등 8종의 씬으로 분리한 scenes.json을 만든다. 이어서 result.md의 ADEPT 구조를 활용해 각 씬에 자연스러운 나레이션을 작성하고 script.json으로 저장한다. /script-reviewer 스킬이 기술적 정확성과 이해도를 검증한 뒤 자동 수정한다.
2단계 — 렌더링 (/video-render 스킬)
여기서부터는 /video-render 스킬이 자동으로 진행한다.
- 나레이션 검증: SSML 구조 확인, 미변환 영어 감지, 맞춤법 검사
- TTS 음성 생성: Google TTS(Chirp3-HD Charon)로 씬별 MP3 파일 생성
- Remotion 렌더링: React 기반 Remotion으로 1920×1080 / 30fps 영상 생성. 각 씬 타입별 전용 컴포넌트가 비주얼을 그리고, TTS 오디오와 자막이 동기화된다.
- 썸네일 생성: 영상 첫 프레임(타이틀 씬)을 커스텀 썸네일로 추출
- 무결성 검증: H.264 스트림 디코드 검증으로 손상 여부 확인
- SRT 자막 생성: 한국어·영어 자막 파일 생성
3단계 — 업로드 (/youtube-upload-pipeline 스킬)
렌더링이 완료되면 /youtube-upload-pipeline 스킬이 업로드를 담당한다.
- YouTube 업로드: 제목 자동 생성, 설명 자동 생성, 커스텀 썸네일 설정, "C#과 유니티" 재생목록에 업로드. API 쿼터 초과 시 웹 업로드로 자동 폴백
- 텔레그램 알림: 완료 알림과 함께 YouTube URL 전송
스킬과 에이전트 아키텍처
이 프로젝트는 18개 스킬과 4개 에이전트로 구성된다.
스킬은 Claude Code의 / 명령어로 실행하는 작업 단위다. 사용자가 직접 호출하거나, 다른 스킬/에이전트가 내부적으로 호출할 수 있다.
에이전트는 독립적인 서브 프로세스로, 메인 대화와 별도로 백그라운드에서 실행된다. 주로 시간이 오래 걸리는 작업을 병렬로 처리할 때 사용한다.

오케스트레이터 스킬
| 스킬 | 역할 |
|---|---|
/research |
3개 소스 병렬 리서치 → result.md 작성 → 교정 → HTML 변환 → 티스토리 게시 |
/publish-parallel |
두 에이전트(STEP 3·4) 병렬 실행 |
/batch-research |
여러 주제를 동시에 /research 파이프라인으로 병렬 실행 |
/scheduled-pipeline |
여러 주제를 4개씩 배치로 나누어 전체 파이프라인 스케줄링 |
에이전트
| 에이전트 | 역할 |
|---|---|
blog-reviewer |
result.md 품질 검수 (한국어 교정 + 가이드 준수 검토) |
tistory-publisher |
티스토리 게시·수정 (단독 실행) |
unity-skills-creator |
Unity 실전 가이드 SKILL.md 생성 |
video-overview-creator |
NotebookLM 동영상 생성 + YouTube 업로드 (단독 실행) |
단독 실행 스킬
| 스킬 | 용도 |
|---|---|
/il-analysis |
C# 코드를 IL로 컴파일하고 결과 분석 |
/tistory-format |
result.md → 티스토리용 스타일 HTML 변환 |
/tistory-publish |
티스토리 게시·수정·삭제 |
/tistory-login |
티스토리 세션 로그인·갱신 |
/youtube-upload |
YouTube Data API 업로드 (쿼터 초과 시 웹 업로드로 폴백) |
/youtube-upload-web |
YouTube Studio 웹 업로드 (API 쿼터 우회) |
/google-auth |
Google OAuth 재인증 (Playwright 자동화) |
/unity-skills |
Unity SKILL.md 단독 생성 |
/notebooklm-studio |
NotebookLM 동영상 또는 팟캐스트 생성 |
/video-production |
Remotion TTS 영상 전체 파이프라인 |
/video-render |
나레이션 검증 + TTS + Remotion 렌더링 + 썸네일 + 무결성 검증 + SRT 자막 |
/youtube-upload-pipeline |
YouTube 업로드 + 텔레그램 알림 (쿼터 폴백 포함) |
/script-reviewer |
script.json 기술 정확성·이해도 검증 + 자동 수정 |
/c#-blog-write-guide |
블로그 게시글 작성 규칙 참조 |
도구 스택
| 영역 | 도구 | 역할 |
|---|---|---|
| 오케스트레이션 | Claude Code | 전체 워크플로우 실행, 스킬/에이전트 관리 |
| 리서치 | NotebookLM MCP | .NET 서적 기반 개념 리서치 |
| 리서치 | Gemini CLI | 넓은 맥락 보완 리서치 |
| 코드 분석 | ilspycmd | C# → IL 디컴파일 |
| HTML 변환 | Python (md_to_html.py) | Markdown → 티스토리 스타일 HTML |
| 이미지 변환 | rsvg-convert | SVG → PNG |
| 블로그 게시 | Playwright | 티스토리 브라우저 자동화 |
| 영상 제작 | Remotion | React 기반 프로그래머틱 영상 렌더링 |
| 음성 합성 | Google TTS (Chirp3-HD) | 한국어 TTS 음성 생성 |
| 영상 업로드 | YouTube Data API v3 | 영상 업로드, 재생목록 관리 |
| 알림 | Telegram MCP | 실시간 진행 상황 알림 |
| 인증 | Google OAuth 2.0 | YouTube, NotebookLM 인증 자동화 |
실제 산출물 — 한 주제가 완성되면
주제 하나를 완료하면 아래 파일들이 자동으로 생성된다.
content/topic/PART {번호}/{주제명}/
├── research/
│ ├── notebooklm.md ← NotebookLM 리서치 결과
│ └── gemini.md ← Gemini CLI 리서치 결과
├── tistory/
│ ├── tistory.html ← 티스토리 게시용 HTML
│ └── diagram_*.svg/png ← SVG 시각화 소스/이미지
├── youtube_make/
│ ├── scenes.json ← HTML 파싱 결과 (씬 목록)
│ ├── script.json ← 대화 스크립트 (나레이션 포함)
│ ├── props.json ← Remotion 렌더링 설정
│ └── audio/ ← TTS 음성 파일 (씬별 MP3)
├── youtube_result/
│ ├── production.mp4 ← 최종 영상
│ ├── subtitles_ko.srt ← 한국어 자막
│ ├── subtitles_en.srt ← 영어 자막
│ ├── thumbnail.jpg ← 커스텀 썸네일
│ └── youtube_url.txt ← YouTube URL
└── result.md ← 최종 블로그 게시글
content/topic/unity-skills/PART {번호}/{주제명}/
└── SKILL.md ← AI 에이전트용 Unity 실전 가이드
현재까지 PART 1(타입 시스템)부터 PART 8(컬렉션과 LINQ)까지 30개 이상의 주제가 완료되었다. 이 모든 결과물은 위 파이프라인을 통해 블로그 게시글, YouTube 영상, Unity 실전 가이드로 자동 변환되었다.
왜 이 구조인가 — 설계 결정의 이유
리서치 소스를 3개 쓰는 이유
NotebookLM은 업로드된 .NET 서적을 기반으로 정확한 정보를 추출하는 데 강하다. Gemini CLI는 최신 정보와 넓은 맥락을 아우르는 데 강하다. Claude는 두 결과를 분석하고 구조화하는 데 강하다. 각각의 강점이 다르기 때문에, 세 결과를 통합하면 단일 소스보다 훨씬 균형 잡힌 게시글이 나온다.
STEP 3·4를 병렬로 실행하는 이유
Unity 가이드 생성과 영상 제작은 모두 result.md를 원본으로 삼지만 서로 의존하지 않는다. 순차적으로 실행하면 전체 소요 시간이 두 배가 되지만, 병렬 실행하면 가장 오래 걸리는 작업(보통 영상 제작) 시간에 수렴한다.
Unity 실전 가이드를 별도로 생성하는 이유
블로그 게시글은 사람 독자를 위한 것이고, SKILL.md는 AI 에이전트를 위한 것이다. 목적이 다르면 형식도 달라야 한다. 게시글은 비유와 시각화로 이해를 돕지만, SKILL.md는 DO/DON'T 규칙과 코드 예시로 즉시 참조할 수 있어야 한다. 주제가 쌓일수록 AI가 Unity 관련 실수를 줄이는 자기 개선 효과가 생긴다.
Remotion을 영상 도구로 선택한 이유
Remotion은 React 컴포넌트로 영상의 각 프레임을 프로그래머틱하게 생성한다. 영상 편집 소프트웨어 없이도 코드만으로 일관된 스타일의 영상을 만들 수 있고, 씬 타입별 컴포넌트(코드 블록, 표, 인용 등)를 한 번 만들어두면 모든 주제에 재사용할 수 있다. AI 에이전트가 스크립트(JSON)만 작성하면 나머지는 자동화되는 구조와 잘 맞는다.
텔레그램 알림을 도입한 이유
리서치부터 영상 업로드까지 전체 파이프라인은 수십 분에서 한 시간 이상 걸릴 수 있다. 이 동안 모니터 앞에 앉아 있을 필요 없이, 진행 상황과 완료 알림을 텔레그램으로 받으면 다른 일을 하다가 결과만 확인하면 된다. 에러가 발생해도 즉시 알림이 와서 빠르게 대응할 수 있다.
마무리
이 워크플로우는 단순히 콘텐츠 생산을 자동화하는 것이 아니다.
핵심은 한 번 작성한 게시글에서 여러 형태의 산출물이 자동으로 파생되는 구조다. result.md 하나에서 티스토리 HTML, TTS 나레이션 영상, Unity 실전 가이드가 만들어진다. 그리고 Unity 가이드가 쌓일수록 AI가 다음 작업에서 더 나은 판단을 하게 되는 자기 개선 루프가 형성된다.
C# 개념 하나하나를 IL 분석과 Unity 실전까지 연결해서 깊이 있게 다루는 콘텐츠가 이 파이프라인을 통해 지속적으로 생산되고 있다.
