블로그 여러 개를 하나의 Apps Script로 자동 관리할 수 있을까?|멀티블로그 자동화 방법

생활정보 블로그와 IT 블로그, 취미 블로그를 함께 운영하다 보면 글감보다 관리 작업에 시간이 더 들어갈 때가 있습니다. 블로그마다 제목을 옮겨 적고, 초안 파일을 찾고, 어느 글을 발행했는지 확인하는 일을 반복하게 되지요.
멀티블로그 자동화는 하나의 Google Apps Script와 구글 시트를 중심으로 여러 블로그의 작업을 나누어 관리하는 방식으로 시작할 수 있습니다. 다만 모든 블로그에 같은 방법으로 글을 자동 발행할 수 있다는 뜻은 아닙니다. 플랫폼에 따라 공식 API 지원 범위가 다릅니다.
하나의 Apps Script에서 블로그별 설정을 분리하면 원고 정리, 작업 배정, 예약 작업 확인, 발행 이력 관리를 함께 자동화할 수 있습니다. 다만 티스토리 공식 글쓰기 API는 종료되었으므로 티스토리 발행은 편집기에서 직접 진행하고, 다른 플랫폼도 지원되는 인증과 API를 확인해야 합니다.
멀티블로그 자동화, 한 개의 스크립트로 어디까지 가능할까요?
핵심은 스크립트를 블로그 개수만큼 복사하는 대신, 공통 작업과 블로그별 설정을 나누는 것입니다. 공통 작업은 대기 중인 원고 찾기, 파일 저장, 작업 상태 변경, 오류 기록입니다. 블로그마다 다른 부분은 글의 분야, 저장 폴더, 인증 방식, 발행 가능 여부로 설정합니다.
예를 들어 생활정보 글은 생활정보 폴더에, IT 글은 IT 폴더에 자동 저장하게 만들 수 있습니다. 원고 제작에 AI 서비스를 연결할 수도 있지만, AI 이용 비용과 플랫폼 발행 기능은 Apps Script 자체 기능과 별개입니다.
| 플랫폼 | 통합 관리 | 자동 발행 |
|---|---|---|
| 티스토리 | 초안·파일·이력 관리 가능 | 공식 글쓰기 Open API 종료로 직접 발행 필요 |
| 설치형 워드프레스 | 가능 | REST API와 계정 권한 등 조건 충족 시 가능 |
| Blogger | 가능 | Blogger API 및 OAuth 인증 설정 시 가능 |
특히 티스토리는 2023년 12월 22일 공식 공지에서 Open API 종료를 안내했고, 2024년 2월 말까지 관련 기능을 순차 종료했습니다. 이전에 소개된 티스토리 API 자동 발행 코드를 현재도 그대로 쓸 수 있다고 생각하면 안 됩니다.

구글 시트는 ‘블로그 선택’ 열부터 만들면 편합니다
시트는 블로그별로 여러 개 만들기보다 우선 하나의 발행관리 시트를 사용하는 편이 전체 일정과 상태를 확인하기 쉽습니다. 처음에는 아래처럼 열 여섯 개만 준비해도 됩니다.
| 열 | 이름 | 입력 예시 |
|---|---|---|
| A | 블로그 | 생활정보 |
| B | 제목 | 보일러 설정 방법 |
| C | 본문 HTML | 작성한 글 내용 |
| D | 희망 발행일 | 2026-10-20 |
| E | 상태 | 대기 |
| F | 결과 링크 | 초안 파일 주소 |
여기서 ‘희망 발행일’은 계획을 관리하는 값입니다. 시트에 날짜를 적었다고 티스토리 예약 발행이 자동으로 설정되지는 않습니다. 실제 예약이나 즉시 발행은 각 플랫폼에서 지원하는 방식에 맞춰 별도로 처리해야 합니다.
또한 서로 다른 블로그의 원고라도 검색 의도와 해결 방법이 같으면 중복 콘텐츠가 될 수 있으니, 블로그명만이 아니라 주제·핵심 키워드·진행 상태를 함께 검토하는 습관이 좋습니다.

Apps Script 멀티블로그 자동화 설정 방법 5단계
- 관리 시트 만들기: 구글 시트에 위 열을 만들고, 블로그 이름을 일정하게 입력합니다. 이름이 조금만 달라도 다른 대상으로 처리될 수 있습니다.
- 블로그별 폴더 정하기: Google Drive에 기존 블로그별 원고 보관 폴더를 준비하고 각 폴더 ID를 확인합니다.
- Apps Script 연결하기: 시트의 확장 프로그램 → Apps Script에서 프로젝트를 만들거나 독립형 프로젝트를 준비해 시트 ID와 폴더 ID를 설정합니다.
- 대기 원고 분류하기: 스크립트가 E열의 ‘대기’ 상태를 읽어 A열 블로그별 폴더에 HTML 초안을 저장하고 상태를 ‘검토대기’로 바꿉니다.
- 실행 일정 지정하기: 실행 테스트 후 Apps Script의 트리거에서 시간 기반 실행을 설정합니다. 발행 자체는 플랫폼별 조건을 따로 확인합니다.
아래 코드는 자동 발행 코드가 아니라 여러 블로그의 초안을 각 폴더로 나누어 저장하는 예시입니다. 시트 이름을 ‘발행관리’로 만들고, 실제 시트 ID와 폴더 ID로 바꾸어 사용해야 합니다. 최초 실행에는 관련 Google 서비스 접근 권한 승인도 필요합니다.
const SHEET_ID = '스프레드시트_ID';
const FOLDERS = {
'생활정보': '생활정보_폴더_ID',
'IT정보': 'IT정보_폴더_ID'
};
function prepareMultiBlogDrafts() {
const lock = LockService.getScriptLock();
lock.waitLock(10000);
try {
const sheet = SpreadsheetApp.openById(SHEET_ID)
.getSheetByName('발행관리');
const last = sheet.getLastRow();
if (last < 2) return;
const rows = sheet.getRange(2, 1, last - 1, 6).getValues();
rows.forEach((r, i) => {
const [blog, title, content, date, status] = r;
if (status !== '대기') return;
if (!FOLDERS[blog] || !title || !content) {
sheet.getRange(i + 2, 5).setValue('확인필요');
return;
}
const safeTitle = String(title).replace(/[\/:*?"<>|]/g, '-');
const file = DriveApp.getFolderById(FOLDERS[blog])
.createFile(safeTitle + '.html', String(content), MimeType.HTML);
sheet.getRange(i + 2, 5).setValue('검토대기');
sheet.getRange(i + 2, 6).setValue(file.getUrl());
});
SpreadsheetApp.flush();
} finally {
lock.releaseLock();
}
}
이 예시는 E열 상태를 업데이트하므로 같은 행이 연속 실행에서 다시 처리되는 일을 줄여 줍니다. 다만 파일 생성 직후 스크립트가 중단되는 예외까지 막는 완전한 중복 방지 시스템은 아닙니다. 실제 운영에서는 작업별 고유 ID를 추가하고 생성된 파일이 있는지도 재확인하는 편이 안전합니다.
여러 블로그가 동시에 실행될 때 특히 조심할 점
한 프로젝트에 블로그를 모으면 관리가 간편하지만, 실행 시간과 요청 횟수도 한곳에 모입니다. 구글 공식 할당량 문서에는 Apps Script 일반 실행 한도가 1회 6분으로 안내되어 있고, 일일 실행 관련 한도도 계정 유형에 따라 달라집니다. 여러 블로그를 한 번에 처리할 때에는 작은 작업 단위로 나누는 것이 좋습니다.
동일한 시간에 트리거가 중복 실행되면 같은 행을 함께 읽을 수 있습니다. 예시 코드의 LockService는 스크립트 수준의 동시 실행 충돌을 줄이기 위한 장치이며, 작업 상태와 오류 로그를 함께 남기는 것이 중요합니다. 시간 기반 트리거도 분 단위로 정확한 시각에 실행된다고 가정하지 않는 것이 좋습니다.
그리고 비밀번호나 발행용 토큰은 스프레드시트에 평문으로 적지 마세요. 인증 정보를 별도로 관리하고, 사용 권한을 최소화해야 합니다. Apps Script의 스크립트 속성도 접근 권한이 있는 프로젝트 사용자와 관리 범위를 고려해 사용해야 합니다.

발행 이력을 합쳐두면 실수도 줄일 수 있습니다
발행 이후에는 원고별로 블로그명, 작업 ID, 최종 제목, 실제 발행 URL, 발행일, 결과 상태를 남기는 것이 좋습니다. 티스토리처럼 직접 발행하는 블로그는 편집기에서 발행한 뒤 실제 글 주소를 시트에 직접 기록하면 됩니다.
반대로 워드프레스나 Blogger처럼 공식 API로 게시물 작성이 가능한 환경에서는 발행 응답에서 받은 게시물 정보와 URL을 검증한 뒤 저장하는 구조로 확장할 수 있습니다. 초안 저장 성공과 공개 발행 성공을 같은 상태로 기록하지 않는 것이 운영의 핵심입니다.
자주 묻는 질문
Q1. 티스토리 블로그 두 개도 한 시트로 관리할 수 있나요?
네. 각 블로그의 원고와 폴더, 작업 상태를 나누어 관리할 수 있습니다. 다만 티스토리 글을 공식 API로 자동 발행하는 기능은 제공되지 않습니다.
Q2. 블로그마다 글을 작성하는 시간도 다르게 지정할 수 있나요?
가능합니다. 시트에 블로그별 작업 시간을 적고 스크립트가 실행 시각을 비교하도록 설계할 수 있습니다. 하지만 시간 기반 트리거는 정확한 발행 시각을 보장하지 않으며, 플랫폼의 예약 기능과도 구분해야 합니다.
Q3. 구글 계정 하나로 서로 다른 플랫폼을 함께 운영할 수 있나요?
Apps Script 실행은 한 Google 계정에서 시작할 수 있습니다. 그러나 외부 블로그에 글을 쓰는 권한은 각 플랫폼의 인증, 계정 권한과 API 제공 여부에 따라 개별적으로 설정해야 합니다.
Q4. 블로그가 늘어나면 Apps Script를 새로 만들어야 하나요?
반드시 그럴 필요는 없습니다. 설정표에 대상을 추가하는 구조로 확장할 수 있습니다. 작업량이 많아 실행 한도에 자주 걸린다면 처리 시간을 나누거나 별도 프로젝트로 분리하는 방법을 검토하세요.
정리: 자동 발행보다 먼저 ‘공통 관리 체계’를 만드세요
멀티블로그 자동화의 출발점은 여러 사이트에 무조건 글을 보내는 기능이 아닙니다. 하나의 시트에서 어떤 블로그에 어떤 원고가 준비되어 있는지 확인하고, 폴더·상태·이력을 일관되게 관리하는 것입니다. 이를 먼저 구축하면 수동 발행이 필요한 티스토리와 API 발행을 지원하는 플랫폼도 혼동 없이 함께 운영할 수 있습니다.
※ API 지원 범위, 인증 방법과 실행 할당량은 서비스 정책에 따라 달라질 수 있으므로 실제 적용 전 각 플랫폼의 최신 공식 안내를 확인하세요.
관련 자료
'블로그·AI 활용' 카테고리의 다른 글
| ChatGPT로 블로그 글 작성부터 예약 발행까지 자동화하는 방법|전체 과정 정리 (0) | 2026.10.13 |
|---|---|
| Search Console 사이트맵 자동 제출하기|Google Apps Script로 매일 자동 실행하는 방법 (0) | 2026.10.13 |
| 블로그 자동화 API 비용은 얼마나 들까?|직접 운영할 때 필요한 비용 정리 (0) | 2026.10.12 |
| 구글 시트에 제목만 입력하면 블로그 글이 자동으로 올라갈까?|ChatGPT·Apps Script 자동화 방법 (0) | 2026.10.11 |
댓글