
AI와 인공지능 시대, 내 블로그 콘텐츠로 Substack 뉴스레터 자동화하는 실전 노하우
AI와 인공지능 시대에 콘텐츠 관리와 뉴스레터 발송은 더이상 복잡할 필요가 없습니다. 오늘은 내 블로그 글을 손쉽게 Substack 뉴스레터로 자동화하는 기술, 실제 운영 workflow, 그리고 효율과 비용을 모두 잡는 실전 노하우를 쉽고 재미있게 소개합니다. 이 글만 따라오면, 일상적인 콘텐츠 배포가 놀라울 만큼 간편해집니다!
블로그-뉴스레터 자동화: 시스템의 전체 구조 이해하기
요즘 SNS나 이메일 뉴스레터가 대세지만, 콘텐츠 자동화는 항상 어려운 숙제였죠. 제가 사용하는 시스템의 전체 흐름은 이렇게 정리할 수 있습니다.
먼저, 블로그는 Django로 개발되어 Heroku에서 운영됩니다. 데이터는 PostgreSQL 데이터베이스에 안전하게 저장되죠. 여기서 핵심은, 블로그에 새로 올라온 콘텐츠가 이전에 뉴스레터에 포함되지 않았는지 자동으로 걸러내는 것! 이 데이터 추출과 가공은 Observable 노트북이 담당합니다.
Observable 노트북에서 커다란 "복사하기" 버튼을 클릭하면, 최근 블로그 콘텐츠를 HTML 형식으로 복사할 수 있습니다. 그 다음, 이 텍스트를 Substack 편집기에 붙여넣고 제목, 이미지, 태그 등만 살짝 수정해서 발송하면 끝. 이 모든 과정이 평소 몇 분이면 끝납니다!
데이터 흐름 파헤치기: PostgreSQL에서 SQLite까지
블로그는 Django+Heroku+PostgreSQL 조합으로 운영되고, 뉴스레터 자동화엔 Datasette와 SQLite가 빠질 수 없습니다.
매 2시간마다 GitHub Actions 스케줄러가 동작하여 Heroku에 있는 최신 콘텐츠를 가져와서 db-to-sqlite 도구를 통해 PostgreSQL 데이터를 SQLite로 변환합니다. 이 과정을 자동화하고, 백업도 추가로 남기니 실수하거나 오류가 생겨도 걱정이 없습니다.
GitHub 레포지토리엔 JSON 포맷의 데이터도 따로 저장되어, 콘텐츠가 어떻게 바뀌었는지 커밋 이력으로 한눈에 파악할 수 있어요. 이런 방식 덕분에, Django에 복잡한 이력 추적 기능을 별도로 넣지 않아도 버전 관리가 자연스럽게 되는 셈입니다.
Datasette와 Fly.io로 JSON API 제공하기
변환된 SQLite 데이터베이스는 Datasette를 통해 JSON API로 제공됩니다. 이 과정은 Fly.io 클라우드에 배포해놓아 어디서든 호출해서 사용할 수 있습니다.
Observable 노트북에서는 자바스크립트 fetch 함수로 이 API를 가져온 뒤, 여러 SQL 쿼리로 다음에 들어갈 콘텐츠를 선별합니다. 실제로는 매우 복잡한 143줄짜리 SQL이지만, 결국 목적은 뉴스레터에 포함된 적 없는 신규 블로그 포스트와 링크, 인용, 노트, TIL(Today I Learned) 등 각종 콘텐츠를 모아서, HTML로 예쁘게 합쳐주는 것입니다.
SQL 내에서는 날짜별로 데이터 정렬, 태그 연결, 월 표시 등 디테일한 부분까지 직접 처리합니다. "terrible but funny"한 방식이지만, 남이 이해하기 어려운 시스템일수록 본인은 효율적으로 쓸 수 있다는 장점!
Substack 뉴스레터로 보내기: 수동 수정기와 최종 발송 프로세스
이렇게 준비된 HTML 콘텐츠를 Substack 에디터에 붙여넣고, 마지막 소소한 손질만 합니다.
뉴스레터 제목과 부제목은 보통 대표 포스트의 타이틀을 복사
YouTube 링크가 코드 예시 안에 들어가면 자동 임베드 되길 원하지 않아서 수정
미리 작성된 코드 블록 끝에 불필요한 빈 줄을 삭제
뉴스레터에 어울리지 않는 내용과 오래된 시간 표현("어제" 등)을 적절히 바꿔줌
썸네일 이미지와 태그는 직접 선택해서 뉴스레터로 마무리
이 과정을 거치고 나면, 이제 "보내기" 버튼만 눌러주면 뉴스레터가 구독자들의 메일함에 자동으로 도착합니다.
전체 시스템의 실전 가치: 효율, 비용, 그리고 안정성
이 자동화 시스템은 놀랄 만큼 저렴한 비용과 높은 효율을 자랑합니다. GitHub Actions와 Fly.io, SQLite, Datasette 등은 대부분 무료 혹은 저렴하게 쓸 수 있고, 복잡한 백엔드 없이도 뉴스레터 콘텐츠의 관리와 배포가 간편하게 돌아갑니다.
그리고 중요한 점! 대부분의 과정이 자동화되어 개인이 굳이 개입할 필요가 거의 없습니다. 갑자기 새로운 포스트가 올라가도, 몇 분이면 뉴스레터까지 순식간에 발송 가능. 만약 중간에 백업이나 데이터 이력 확인이 필요하다면, GitHub 커밋만 보면 끝!
마무리: 앞으로의 뉴스레터 자동화, 그리고 팁
정리하자면, AI와 인공지능 시대의 콘텐츠 자동화는 Django, PostgreSQL, SQLite, Datasette, Observable, Substack 등 각종 툴의 조화로운 연결이 핵심입니다. 꼭 대기업이 아니어도, 누구나 최신 기술을 활용해 복잡한 뉴스레터 발송 프로세스를 손쉽게 자동화할 수 있습니다.
마지막 팁! 자동화 시스템을 설계할 때는 "나만 알기 쉬운 시스템"보단, 백업과 데이터 흐름이 외부에서 투명하게 파악되는 구조를 두는 게 좋습니다. 혹시라도 문제가 생기면 어디서든 원인을 찾고 복원하기 쉽거든요.
이제 여러분도 내 블로그 콘텐츠를 Substack 뉴스레터로 자동화해보세요! 처음 한 번만 세팅하면, AI와 자동화의 편리함을 두고두고 누릴 수 있습니다.
참고
[1] How I automate my Substack newsletter with content from my blog - Simon Willison’s Weblog
[2] PostgreSQL: Documentation: 18: 25.1. SQL Dump - PostgreSQL 공식 문서
[3] Build a better workflow with this $40 AI tool bundle | Mashable - Mashable
