본문으로 건너뛰기
← 포트폴리오로 돌아가기
포트폴리오>AI>AI 도구
Active

White Place: AI 뉴스 자동 발행 파이프라인

2026Active

이 사이트의 AI 뉴스는 사람이 쓰지 않습니다. AI 루틴이 매일 뉴스를 작성해 PR을 올리면 allowlist와 시크릿 스캔 게이트를 거쳐 자동 머지되고 Vercel로 배포됩니다. 작성부터 배포까지 사람 개입 없는 풀 사이클을 운영 중입니다.

어떤 시스템인가

이 사이트의 AI 뉴스와 보안 뉴스는 사람이 쓰지 않습니다. AI 루틴이 매일 정해진 시각에 뉴스를 조사해 글과 인포그래픽을 작성하고, PR을 올리고, 게이트를 통과하면 자동으로 머지되어 Vercel로 배포됩니다. 작성부터 배포까지 사람 개입이 0인 풀 사이클이 실제 production에서 돌아가고 있습니다.

White Place(AI 뉴스)와 Dark Place(보안 뉴스), 두 파이프라인이 같은 구조로 운영됩니다.

3단계 자동 흐름

  1. claude.ai 루틴이 매일 트리거되어 최신 뉴스를 조사하고, 마크다운 포스트와 인포그래픽 컴포넌트를 작성해 push합니다.
  2. auto-open-pr 워크플로가 push를 감지합니다. 커밋 제목이 feat(ai-news): 또는 feat(dark-news):로 시작하면 PR을 자동 생성합니다.
  3. auto-merge 워크플로가 게이트를 검사하고, 통과하면 머지합니다. main에 머지되는 순간 Vercel이 배포합니다.

재미있는 제약이 하나 있었습니다. 원격 루틴 환경에는 gh CLI가 없고, push 브랜치 이름도 시스템이 강제로 부여합니다. 그래서 "루틴이 PR을 만든다" 대신 "push를 감지한 GitHub Actions가 PR을 대신 만든다"로 구조를 뒤집어 해결했습니다.

게이트 설계: 자동 머지를 믿을 수 있는 이유

사람이 안 보는데 머지된다는 건 그만큼 게이트가 보수적이어야 한다는 뜻입니다.

  • 경로 allowlist: 콘텐츠 마크다운과 해당 포스트의 인포그래픽 디렉토리만 통과합니다. 공유 파일, 워크플로, 패키지 설정을 건드리면 자동 머지가 거부됩니다.
  • 시크릿 스캔: GitHub 토큰, AWS 키, PEM 프라이빗 키 패턴이 디프에 보이면 차단합니다.
  • 품질 fallback: 자체 점수가 기준 미달이면 커밋 제목에 리뷰 필요 표시가 붙고, PR 자동 생성이 스킵되어 사람 리뷰로 넘어옵니다.

중복 방지도 들어 있습니다. 최근 2주 안에 다룬 토픽이면 루틴이 그날은 발행을 스킵합니다. 그래서 "오늘 push가 없었다"는 실패가 아니라 dedup이 정상 동작했다는 신호입니다.

운영 결과

두 파이프라인 모두 사람 손 없이 PR 생성부터 production 배포까지 도달하는 것을 검증했고, 이후 AI 뉴스 90건 이상이 이 경로로 발행됐습니다. 지금 포트폴리오 옆 AI 뉴스 탭에 보이는 글들이 전부 이 시스템의 산출물입니다.

배운 점

자동화의 핵심은 "AI가 글을 잘 쓰는가"보다 "실패가 안전하게 떨어지는가"였습니다. 게이트에 걸리면 머지가 안 될 뿐 사이트는 멀쩡하고, 품질이 애매하면 사람에게 넘어옵니다. 실패 모드를 먼저 설계하고 나니 자동 머지를 켤 용기가 생겼습니다.

기술 스택

Next.jsGitHub ActionsClaude