본문 바로가기

IT/AI 자동화

AI 자동화로 블로그 수익까지 6편: make에서 바로 블로그 비공개 작성 진행하는 방법

⚡ 직접 주제 입력 → 즉시 초안 생성 (Make 시나리오 · 모듈 8개)

✅ 이 글을 마치면: 주제 한 줄 입력 → Blogger 임시보관 초안 1개(맨 위 Unsplash 사진 포함) + 구글 시트에 제목 · 설명 · 상태 · 초안URL · Post ID 자동 기록 · ⏱ 약 30분

색 구분: 노란 상자 = 그대로 입력 · 예시: 회색 점선 = 예시(따라 입력하지 않음) · 초록 상자 = 자동으로 채워짐 · 화면 속 빨간 네모 + 번호 = 확인할 곳

시트에 주제를 미리 쌓아 두고 정해진 시간에 돌리는 방식도 좋지만, 「지금 이 주제로 바로 초안 하나 만들고 싶다」 할 때는 기다리기 답답하죠. 이 글에서 만드는 Make 시나리오 「직접 주제 입력 → 즉시 초안 생성」은 실행 버튼을 누르고 주제 한 줄만 입력하면 끝입니다.

이 시나리오가 하는 일

  1. 입력한 주제를 구글 시트 새 줄의 A열(주제)에 적습니다.
  2. Gemini가 그 주제로 제목 · 검색 설명 · 라벨 · 본문을 씁니다.
  3. 글 제목으로 Unsplash 무료 사진을 1장 검색합니다.
  4. 사진을 맨 위에 붙여 Blogger에 임시보관(비공개) 초안으로 저장합니다.
  5. 같은 시트 줄에 제목 · 설명 · 상태 · 초안URL · Post ID를 다시 기록합니다.
💡 초안은 공개되지 않습니다. 내가 Blogger에서 읽어 보고 고친 뒤 「게시」를 눌러야만 블로그에 나타나요.

준비물

준비물확인할 것
Make 계정 무료 플랜으로 충분 (실행 1번에 모듈 8개 = 약 8 operations)
Google 연결 Make에 저장된 「내 Google 연결」 하나로 Sheets · Blogger 둘 다 사용 (블로그 주인 계정)
Gemini 연결 Google Gemini AI 모듈용 연결 (모델 gemini-2.5-flash)
Unsplash Access Key unsplash.com/developers 에서 앱을 만들면 받는 키. Make의 저장된 연결 안에만 넣습니다
구글 시트 「make 블로그 콘텐츠」 · 시트 이름 「시트1」 · 1행 머리글 A~J (아래 03 이미지)

전체 흐름: 모듈 8개 한눈에 보기

완성된 시나리오는 아래처럼 8개 모듈이 한 줄로 이어집니다. 화면의 빨간 번호 ①~⑧이 실행 순서예요.

①시트에 주제 추가 → ②Gemini 글쓰기 → ③텍스트 정리 → ④JSON 분해 → ⑤Unsplash 사진 검색 → ⑥JSON 분해 → ⑦블로거 임시글 생성 → ⑧시트에 결과 기록, 이 순서로 연결합니다.

순서모듈하는 일모듈 번호(칩 이름)
① Google Sheets › Add a Row 입력한 주제를 새 줄 A열에 추가 1
② Google Gemini AI › Simple text prompt 주제로 글 쓰기 (JSON으로 출력) 2
③ Text parser › Replace JSON 앞뒤 군더더기 지우기 3
④ JSON › Parse JSON title · meta_description · labels · content_html로 나누기 4
⑤ HTTP › Make a request Unsplash에서 제목으로 사진 1장 검색 7
⑥ JSON › Parse JSON Unsplash 응답을 나누기 8
⑦ Blogger › Create a post 사진 + 본문으로 임시보관 초안 만들기 5
⑧ Google Sheets › Update a Row 같은 줄에 결과 기록 6
📌 순서 번호와 모듈 번호가 달라요. 모듈 아래 작은 회색 숫자(1, 2, 3, 4, 7, 8, 5, 6)가 Make가 붙인 모듈 번호입니다. 나중에 HTTP · JSON을 중간에 끼워 넣어서 7 · 8번이 됐어요. 칩에 보이는 「4. title」, 「5. Post ID」의 앞 숫자는 이 모듈 번호를 뜻합니다.

구글 시트 열 구조 (A 주제 ~ J Post ID)

시트 「make 블로그 콘텐츠」의 1행에 아래 머리글 10개를 순서대로 적어 둡니다. 2행부터는 비워 두세요. 시나리오가 알아서 채웁니다.

①1행에 주제~Post ID 머리글 10개를 만들고, ②A열(주제)에 쓸 주제를 적으면 됩니다.

열머리글누가 채우나값 예시
A 주제 ① Add a Row (내가 입력한 주제) 예시: 초보자를 위한 구글 시트 필터 사용법
B 키워드 비워 둠 (이 시나리오는 Gemini가 키워드를 직접 정함) —
C 제목 ⑧ Update a Row ← 4. title 자동
D 본문 ⑧ ← 4. meta_description (검색 설명 문장) 자동
E 상태 ⑧ ← 고정 글자 「임시보관」 임시보관
F 승인 비워 둠 (체크박스 · 공개용 시나리오에서 사용) —
G 초안URL ⑧ ← Blogger 편집 화면 주소 자동
H 게시URL 비워 둠 (공개 후 기록용) —
I 메모 비워 둠 (메모 · 오류 기록용) —
J Post ID ⑧ ← 5. Post ID 자동

예를 들어 실행할 때 주제 칸에 예시: 초보자를 위한 구글 시트 필터 사용법을 입력하면, 시트 맨 아래 빈 줄(처음이면 A2)에 이 주제가 들어가고, 잠시 뒤 같은 줄 C · D · E · G · J가 채워집니다. 주제 문장은 예시일 뿐이니 원하는 주제로 바꿔 넣으세요.

📌 D열 머리글은 「본문」이지만, 본문 전체는 너무 길어서 검색 설명(meta_description) 문장을 적습니다. 본문 전체는 Blogger 초안에서 확인하세요.

먼저: 시나리오 입력값 「주제」 만들기

이 시나리오는 시트를 뒤지지 않고, 실행할 때 주제를 물어보는 방식입니다. 그래서 시나리오에 입력값 하나를 만들어 둡니다.

항목값
Name topic
Label 주제
Type Text
Required Yes

Make 편집 화면 아래 도구 막대의 시나리오 입력(Scenario inputs) 설정에서 위처럼 추가하면, 모듈 매핑 패널에 검은색 「topic」 칩이 생깁니다. 실행 일정(Scheduling)은 On demand(누를 때만 실행)로 둡니다.

① Google Sheets › Add a Row (모듈 1)

입력한 주제를 시트에 새 줄로 추가하는 모듈입니다.

①내 Google 연결 ②내 스프레드시트 ③시트1을 고르고, ④주제(A) 칸에 topic을 넣습니다.

항목설정값
Connection 내 Google 연결 (블로그 주인 계정)
Search Method Search by path
Drive My Drive
Spreadsheet Name 폴더를 차례로 클릭해 「make 블로그 콘텐츠」 선택 (내 시트)
Sheet Name 시트1
Table contains headers Yes
Use column headers as IDs of the columns No
주제 (A) 검은색 「topic」 칩

아래로 내려 보면 Values in columns 목록이 나옵니다. 주제 (A)에만 topic 칩을 넣고 나머지는 전부 비워 두세요.

1번 모듈에서는 ①주제(A)만 채우고 ②키워드(B)~Post ID(J)는 비워 둡니다. 나머지는 마지막 6번 모듈이 채워요.

② Google Gemini AI › Simple text prompt (모듈 2)

Model은 gemini-2.5-flash, Text prompt 칸에는 아래 프롬프트 전문을 붙여 넣고 「주제:」 뒤의 {{topic}} 자리에 topic 칩을 넣습니다.

너는 AI를 처음 접하는 초보자에게 쉽게 설명하는 한국어 블로그 작성자야.
아래 주제만 받아서 핵심 키워드와 태그를 직접 만들고, 블로그 글 1편을 써줘.

주제: {{topic}}

[키워드·태그 생성 규칙]
- 주제를 보고 검색에 잘 걸릴 핵심 키워드 1개를 직접 정해.
- 글과 관련된 태그(라벨) 3~5개를 한국어 단어로 만들어. 각 태그는 2~10자.

[SEO 규칙]
1. title: 핵심 키워드를 앞쪽에 넣고, 공백 포함 60자 안팎(60자를 넘기지 마)으로 써.
2. meta_description: 핵심 키워드를 넣어 공백 포함 120~150자로 글 내용을 요약해. 검색 결과에 보이는 설명 문장이야.
3. labels: 위에서 만든 태그 3~5개를 배열로 넣어.
4. content_html:
- 도입부 첫 문단의 첫 두 문장 안에 핵심 키워드를 자연스럽게 넣어.
- 소제목은 <h2> 3~4개를 쓰고, 필요하면 그 아래에 <h3>를 써.
- 문단은 <p>, 목록은 <ul><li>를 써.
- 초보자가 바로 따라 할 수 있는 실용적인 예시를 넣고, 마지막에 요약과 행동을 권하는 문장(CTA)을 넣어.
- 핵심 키워드는 억지로 반복하지 말고 본문 전체에서 자연스럽게 3~5번 써.
- <html>, <head>, <body>, <h1>, <!DOCTYPE> 태그와 마크다운 문법(#, **, - 목록)은 절대 쓰지 마. 글 제목은 Blogger가 따로 보여 줘.
- HTML 속성이 필요하면 큰따옴표 대신 작은따옴표(')를 써.
- 강조할 말은 <strong>강조</strong>처럼 <strong> 태그로만 감싸. **, *, # 같은 마크다운 기호는 content_html 안에 한 글자도 쓰지 마.

[출력 형식]
- 아래 모양의 JSON 객체 하나만 출력해. JSON 앞뒤에 설명, 인사말을 붙이지 말고, 코드블록(```json, ```)으로 감싸지 마.
- 첫 글자는 { 이고 마지막 글자는 } 여야 해.
- JSON의 키와 문자열 값은 반드시 큰따옴표(")로 감싸. 작은따옴표(')는 content_html 안의 HTML 속성에만 써.
- content_html 값은 줄바꿈 없이 한 줄로 이어서 써.
- 글 문장 안에서 따옴표가 필요하면 큰따옴표 대신 「」나 작은따옴표를 써.
{"title": "제목", "meta_description": "메타설명", "labels": ["라벨1", "라벨2", "라벨3"], "content_html": "<p>도입부</p><h2>소제목</h2><p>내용</p>"}
📌 이 프롬프트는 키워드 · 라벨을 Gemini가 직접 정하게 합니다. 그래서 시트 B열(키워드)을 비워 둬도 돼요.

③ Text parser › Replace (모듈 3)

Gemini가 가끔 JSON 앞뒤에 설명 문장을 붙이는데, 그 부분을 지워서 { 부터 } 까지만 남깁니다.

항목설정값
Pattern ^[^{]*|[^}]*$
New value 패널 KEYWORDS의 「emptystring」 칩 (빈칸으로 두지 않기)
Global match Yes
Case sensitive Yes
Multiline No
Singleline No
Text ② 모듈의 「Result」 칩 (2. Result)

④ JSON › Parse JSON (모듈 4)

JSON string 칸에 ③의 「Text」 칩(3. Text)을 넣습니다. Data structure는 아래 샘플로 만들면 title · meta_description · labels · content_html 칩이 생깁니다.

{"title":"제목","meta_description":"메타설명","labels":["라벨1","라벨2"],"content_html":"<p>본문</p>"}

⑤ HTTP › Make a request: Unsplash 사진 검색 (모듈 7)

④에서 나온 글 제목(4. title)으로 Unsplash에 사진을 검색해 가장 잘 맞는 1장만 받아 옵니다.

①연결은 UNSPLASH_ACCESS_KEY, ②URL에 encodeURL(4.title)과 &per_page=1을 넣고, ③Method는 GET으로 둡니다.

항목설정값
Authentication type API key
Connection 저장된 연결 「UNSPLASH_ACCESS_KEY」 (Add로 한 번 만들어 두기)
URL https://api.unsplash.com/search/photos?query= + encodeURL( 4. title 칩 ) + &per_page=1
Method GET

URL 칸을 완성하면 이렇게 보입니다.

https://api.unsplash.com/search/photos?query={{encodeURL(4.title)}}&per_page=1
  • encodeURL: 한글 제목과 띄어쓰기를 주소에 쓸 수 있는 글자로 바꿔 줍니다. 패널 ⚙(함수) 탭에서 고르세요.
  • per_page=1: 검색 결과 중 1장만 받습니다.
🔒 Access Key는 URL · 헤더 칸에 직접 쓰지 마세요. 키는 Connection의 「Add」로 만드는 저장된 연결 안에만 넣습니다. 그래야 화면을 캡처하거나 시나리오를 공유해도 키가 보이지 않아요. 연결을 만들 때 허용 주소는 https://api.unsplash.com로 제한하고, 키는 Unsplash 안내대로 예시: Authorization 헤더에 Client-ID (내 Access Key) 형식으로 넣습니다.

아래로 내려서 나머지 설정도 확인합니다.

같은 HTTP 모듈의 아래쪽입니다. ①URL ②Method GET을 확인하고 ③Parse response는 꼭 Yes로 체크하세요.

항목설정값
Headers · Query parameters 비워 둠 (키는 연결에 있으니까)
Body content type 비워 둠 (GET이라 필요 없음)
Parse response Yes ← 꼭 체크
Return error if HTTP request fails Yes
Timeout 40 (초)
📌 Unsplash 개발용(Demo) 키는 시간당 50번까지만 요청할 수 있어요. 하루 몇 편 만드는 정도는 충분합니다.

⑥ JSON › Parse JSON (모듈 8)

JSON string 칸에 ⑤ HTTP의 「Data」 칩(7. Data)을 넣습니다. 그러면 8. results[] › urls › regular(사진 주소) 같은 칩을 다음 모듈에서 고를 수 있어요.

⑦ Blogger › Create a post (모듈 5)

사진과 본문을 합쳐 Blogger에 초안으로 저장합니다.

항목설정값
Connection 내 Google 연결 (블로그 주인 계정)
Blog 목록에서 내 블로그 이름 선택
Title 4. title 칩
Content 아래 예시처럼 사진 태그 + 4. content_html 칩
Labels 4. labels 칩 (배열 통째로)
Status Draft ← 처음엔 Live(바로 공개)로 보이니 꼭 바꾸기
Date published 비워 둠

Content 칸은 이런 모양입니다. 사진을 못 찾으면 ifempty가 미리 정한 기본 사진 주소를 대신 넣어 오류를 막아요.

<img src='{{ifempty(8.results[1].urls.regular; "(기본 사진 주소)")}}' alt='{{4.title}}' style='width:100%;max-width:800px;height:auto;' /><br>{{4.content_html}}
📌 results[1]은 검색 결과의 첫 번째 사진이라는 뜻입니다. Make는 0이 아니라 1부터 셉니다. alt에는 글 제목이 자동으로 들어가요.
💡 Unsplash 사진은 무료지만, 초안을 검토할 때 사진 아래에 예시: Photo by (작가 이름) on Unsplash처럼 출처를 한 줄 적어 두면 더 안전하고 보기에도 좋습니다.

⑧ Google Sheets › Update a Row (모듈 6)

①에서 추가한 바로 그 줄에 결과를 적습니다. Connection · Search Method · Drive · Spreadsheet Name · Sheet Name은 ①과 똑같이 고르고, Row number에는 ①의 「Row number」 칩(1. Row number)을 넣으세요.

6번 모듈에서 ①제목(C) 4.title ②본문(D) 4.meta_description ③상태(E) 임시보관 ④초안URL(G) ⑤Post ID(J)를 연결합니다.

열넣을 값
제목 (C) 4. title 칩
본문 (D) 4. meta_description 칩
상태 (E) 임시보관 (글자 그대로 입력)
승인 (F) 비워 둠
초안URL (G) https://www.blogger.com/blog/post/edit/ + 「(내 블로그 ID)」 + / + 5. Post ID 칩
게시URL (H) · 메모 (I) 비워 둠
Post ID (J) ' (작은따옴표) + 5. Post ID 칩
  • (내 블로그 ID): Blogger 관리 화면 주소창의 blogID= 뒤 숫자입니다. 사람마다 다르니 내 것을 넣으세요.
  • J열 앞의 작은따옴표 ': Post ID는 아주 긴 숫자라 시트가 1.23E+18처럼 바꿔 버립니다. 앞에 '를 붙이면 글자로 저장돼 그대로 보여요.

실행하기: 주제 입력 → 초안 확인

  1. 시나리오 화면 아래 「Run once」를 누릅니다.
  2. 주제 입력 창이 뜨면 예시: 초보자를 위한 구글 시트 필터 사용법처럼 주제를 한 줄 입력하고 실행합니다.
  3. 모듈 8개에 모두 초록 체크가 뜨면 성공입니다 (보통 30초~1분).
  4. 시트에서 새 줄의 C · D · E · G · J가 채워졌는지 봅니다.
  5. Blogger 관리 화면 → 글 목록에서 임시보관을 엽니다.

아래는 실행하기 전 모습입니다. 처음엔 「임시보관(0개)」 · 「게시물 없음」이지만, 실행하고 나면 이 목록에 초안이 1개씩 늘어납니다.

실행 전 블로거 ①임시보관(0개) 상태입니다. ②지금은 "게시물 없음"이지만, 시나리오를 돌리면 여기에 초안이 생깁니다.

💡 임시보관 글은 나만 보이는 비공개 상태입니다. 시트 G열의 초안URL을 클릭하면 바로 편집 화면이 열려요. 내용 · 사진 · 출처를 확인하고 고친 뒤에 「게시」를 눌러야 공개됩니다.

체크리스트

  • ☐ Scenario inputs에 topic(라벨 주제, Text, Required) 추가
  • ☐ ① Add a Row: 시트1 · Table contains headers Yes · 주제(A)에만 topic 칩
  • ☐ ② Gemini: gemini-2.5-flash · 프롬프트 전문 · 주제 뒤에 topic 칩
  • ☐ ③ Replace: Pattern ^[^{]*|[^}]*$ · New value는 emptystring
  • ☐ ④ Parse JSON: 3. Text · 샘플 구조로 Data structure 만들기
  • ☐ ⑤ HTTP: API key · UNSPLASH_ACCESS_KEY 연결 · URL에 encodeURL(4.title) · GET · Parse response Yes
  • ☐ ⑥ Parse JSON: 7. Data
  • ☐ ⑦ Blogger: Status Draft · Content에 사진 태그 + 4. content_html · Labels 4. labels
  • ☐ ⑧ Update a Row: Row number = 1. Row number · C/D/E/G/J 매핑 · J 앞에 '
  • ☐ Access Key가 URL · 헤더 · 캡처 어디에도 보이지 않는지 확인
  • ☐ Blogger 임시보관에서 초안을 읽고 고친 뒤에만 게시

자주 묻는 질문 (FAQ)

Q. ④ Parse JSON에서 오류가 나요.

③ Replace의 New value를 비워 두면 null 글자가 붙어 JSON이 깨집니다. 「emptystring」 칩을 넣었는지 확인하세요. Gemini 답이 너무 길어 잘린 경우도 있으니 한 번 더 실행해 보세요.

Q. 초안에 사진이 안 보여요.

⑤ HTTP의 Parse response가 Yes인지, ⑥ JSON에 7. Data를 넣었는지 확인하세요. 검색 결과가 0장이면 ifempty의 기본 사진이 들어갑니다.

Q. HTTP 모듈에서 401 오류가 나요.

저장된 연결의 Access Key가 틀렸거나 넣는 방식이 다를 때 납니다. Connection 옆에서 연결을 다시 확인하세요. 키를 URL에 직접 붙여 해결하려 하지 마세요.

Q. 시트 J열이 1.23E+18처럼 보여요.

Post ID 칩 앞에 작은따옴표(')를 붙이면 글자로 저장돼 숫자가 그대로 보입니다.

Q. 초안이 바로 공개되면 어떡하죠?

⑦ Blogger의 Status가 Draft인지 꼭 확인하세요. Draft면 임시보관에만 들어가고, 내가 「게시」를 누르기 전엔 아무도 못 봅니다.

Q. 주제 여러 개를 한 번에 넣을 수 있나요?

이 시나리오는 실행 1번에 주제 1개입니다. 여러 개는 주제마다 Run once를 다시 누르면 시트에 한 줄씩 쌓입니다.

Q. B열(키워드)은 왜 비워 두나요?

이 시나리오의 프롬프트가 주제만 보고 핵심 키워드와 라벨을 Gemini가 직접 정하게 돼 있기 때문입니다.

✅ 정리: 주제 한 줄 → ① 시트 기록 → ②~④ Gemini 글 → ⑤~⑥ Unsplash 사진 → ⑦ Blogger 임시보관 → ⑧ 시트에 결과. 오늘 주제 하나로 직접 실행해 보고, 임시보관에 생긴 초안을 열어 내 말투로 다듬어 보세요.