n8n Google Sheets 자동 저장: RSS 읽을 목록 만들기
관심 있는 사이트가 몇 개만 되어도 새 글을 챙겨 보는 일이 은근히 번거롭습니다. 브라우저 북마크에 넣어 두면 나중에 다시 찾기 어렵고, RSS 리더에만 쌓아 두면 “이 글을 읽었는지, 글감으로 남겨뒀는지”가 금방 섞입니다.
그래서 이번에는 n8n Google Sheets 자동 저장 흐름을 만들어 봅니다. n8n이 RSS에서 새 글을 읽고, 필요한 정보만 정리한 뒤, Google Sheets에 한 줄씩 쌓아 주는 방식입니다. 완성하면 시트에 수집일, 출처, 제목, 링크, 발행일, 상태, 메모 컬럼이 생기고, 매일 확인할 읽을 목록으로 쓸 수 있습니다.
여기서 중요한 포인트는 “어제 이미 시트에 넣은 글을 오늘 또 넣지 않는 것”입니다. n8n에서는 이걸 Remove Duplicates 노드로 처리합니다. 말은 조금 딱딱하지만, 쉽게 말하면 지난 실행에서 처리한 링크를 기억해 두었다가 같은 링크가 다시 들어오면 건너뛰는 장치입니다.
n8n을 처음 다룬다면 먼저 n8n 첫 자동화 만들기: 외부 데이터 자동으로 가져오기를 보고 기본 실행 흐름을 익힌 뒤 따라오면 이해하기 쉽습니다.
n8n Google Sheets 자동 저장 전체 흐름
이번 자동화는 RSS Read → Limit → Remove Duplicates → Set → Google Sheets 순서로 구성했습니다. 흐름만 보면 복잡해 보이지만 역할은 단순합니다.
- RSS Read: 관심 사이트의 RSS에서 글 목록을 가져오기
- Limit: 한 번에 너무 많이 저장하지 않도록 최근 5개만 남기기
- Remove Duplicates: 전에 저장한 링크는 다시 저장하지 않기
- Set: Google Sheets 헤더에 맞게 필드 이름 정리하기
- Google Sheets: 읽을 목록 시트에 새 행 추가하기
아래 구조도는 이 글에서 만든 n8n Google Sheets 워크플로우의 전체 흐름입니다. 홈 화면만 보여 주기보다, 실제로 어떤 단계에서 데이터가 정리되는지 보이도록 구성했습니다.

직접 해보고 확인했습니다
이 글은 2026-07-07 기준 n8n 공식 문서를 확인하고, 로컬 self-hosted n8n에서 실제 워크플로우를 만들어 실행하며 작성했습니다. 글로만 설명하면 쉬워 보이지만, 자동화는 작은 설정 하나에서 자주 막히기 때문에 실행 결과를 같이 확인했습니다.
- 테스트 환경: 로컬 self-hosted n8n
- 워크플로우 ID:
iLA4m8iiQDD6hJ0J - 실행 ID:
228298 - 테스트 RSS:
https://blog.n8n.io/rss/ - 실제 실행 결과: RSS 15개 수집, 최근 5개 제한, 중복 제거 후 5개 유지, Google Sheets에 보낼 7개 컬럼 구조 생성
다만 제 테스트 n8n에는 Google Sheets OAuth2 credential이 아직 없었습니다. 그래서 Google Sheets Append Row 노드는 비활성화한 상태로 캔버스에 포함했고, 실제 실행은 Google Sheets 직전의 “시트 행으로 정리” 노드까지 검증했습니다. 이 부분은 숨기지 않고 그대로 적습니다. 따라 하는 독자도 같은 지점에서 credential 설정이 필요하다는 걸 미리 알아야 하기 때문입니다.


이 자동화가 필요한 이유
RSS 자동 수집은 “새 글이 올라왔는지 확인”하는 데 유용합니다. 하지만 결과를 매번 n8n 실행 화면에서만 보면 기록이 남지 않습니다. 특히 블로그 주제 조사, 뉴스레터 소재 수집, 경쟁 서비스 업데이트 확인처럼 며칠 뒤 다시 봐야 하는 작업이라면 저장 위치가 필요합니다.
저는 이런 경우 Google Sheets가 가장 편했습니다. 이유는 단순합니다.
- 새 글 목록을 날짜별로 모을 수 있습니다.
- 제목과 링크를 검색하기 쉽습니다.
읽기 전,읽는 중,참고 완료처럼 상태를 붙일 수 있습니다.- 나중에 Notion, Airtable, 이메일, Slack으로 확장하기 쉽습니다.
- 비개발자도 결과를 바로 확인할 수 있습니다.
즉, n8n은 뒤에서 새 글을 모으고 정리합니다. Google Sheets는 사람이 제목을 훑고, 상태를 바꾸고, 글감으로 남길지 판단하는 작업대가 됩니다.
문서로 확인한 노드 역할
이번 흐름에서 쓰는 핵심 노드는 다섯 개입니다. 자동화 글을 쓸 때는 “해보니 됐다”에서 끝내기보다, 공식 문서에서 각 노드가 어떤 일을 하는지도 같이 확인하는 편이 안전합니다.
| 노드 | 역할 | 이 글에서 쓰는 방식 |
|---|---|---|
| Manual Trigger 또는 Schedule Trigger | 워크플로우 실행 시작 | 처음에는 수동 테스트, 운영 시 매일 실행 |
| RSS Read | 인터넷에 공개된 RSS 피드 읽기 | n8n 공식 블로그 RSS에서 글 목록 가져오기 |
| Limit | 처리할 item 수 제한 | 최근 5개만 남기기 |
| Remove Duplicates | 이미 본 item 제거 | link 기준으로 중복 제거 |
| Google Sheets | 시트에 행 추가 | Append Row로 읽을 목록 저장 |
공식 문서 링크:
- n8n Google Sheets 노드 공식 문서
- n8n RSS Read 노드 공식 문서
- n8n Schedule Trigger 공식 문서
- n8n Remove Duplicates 공식 문서
먼저 Google Sheets 표 구조 만들기
Google Sheets에는 먼저 헤더 행을 만들어 둡니다. n8n의 Google Sheets 노드는 입력 데이터 이름과 시트 컬럼명이 맞으면 자동 매핑하기 쉽습니다.
추천 컬럼은 다음과 같습니다.
| 컬럼 | 예시 | 이유 |
|---|---|---|
| 수집일 | 2026-07-07 | 언제 수집했는지 추적 |
| 출처 | n8n Blog | 여러 RSS를 합칠 때 구분 |
| 제목 | AI Security Monitoring… | 읽을 글 제목 |
| 링크 | https://blog.n8n.io/… | 원문 이동 |
| 발행일 | Tue, 07 Jul 2026… | 원문 발행일 |
| 상태 | 읽기 전 | 나중에 처리 상태 관리 |
| 메모 | RSS 자동 저장 테스트 | 간단한 분류나 코멘트 |
아래 헤더 한 줄을 복사해 Google Sheets 첫 행에 붙여넣으면 컬럼이 한 번에 만들어집니다. 각 항목 사이는 탭으로 구분되어 있어, 붙여넣으면 셀이 자동으로 나뉩니다.
수집일 출처 제목 링크 발행일 상태 메모
아래 이미지는 이번 테스트에서 만든 컬럼 구조 예시입니다. 실제 운영에서는 Google Sheets 첫 줄에 같은 헤더를 만들고, n8n에서 같은 이름으로 필드를 보내면 됩니다. 처음에는 컬럼을 적게 시작하는 편이 좋습니다. 자동화보다 시트 정리에 더 많은 시간을 쓰게 되면 목적이 흐려집니다.

1단계: RSS Read로 새 글 가져오기
이전 글과 마찬가지로 처음에는 공개 RSS 하나만 사용합니다. 여러 피드를 한 번에 연결하면 오류가 났을 때 어느 피드가 문제인지 찾기 어렵습니다.
RSS Read 노드 설정은 간단합니다.
- URL:
https://blog.n8n.io/rss/ - Options: 기본값
실행하면 RSS item마다 title, link, pubDate, contentSnippet 같은 필드가 들어옵니다. 이 글에서는 본문 전체를 저장하지 않습니다. 읽을 목록 목적이라면 제목, 링크, 발행일만 있어도 충분합니다.

실행하면 RSS의 글 하나가 아래와 같은 형태로 들어옵니다. 쉽게 말하면, 이 중에서 제목·링크·발행일만 골라 시트로 보내는 것입니다. (아래는 실제 테스트에서 가져온 항목 예시이며, 민감정보는 없습니다.)
{
"title": "AI Security Monitoring: Risks, Detection, and Automated Response",
"link": "https://blog.n8n.io/ai-security-monitoring/",
"pubDate": "Tue, 07 Jul 2026 10:02:11 GMT",
"contentSnippet": "..."
}
본문 전문을 시트에 저장하지 않는 이유는 두 가지입니다. 첫째, 시트가 금방 지저분해집니다. 둘째, RSS에 본문이 포함되어 있어도 원문을 그대로 복사해 재사용해도 된다는 뜻은 아닙니다. 블로그 글감이나 업무 자료로 쓸 계획이라면 원문 복제처럼 보일 수 있는 구조는 피하는 편이 안전합니다.
2단계: Limit으로 최근 글만 남기기
RSS 피드는 한 번에 여러 글을 반환합니다. 제가 테스트한 시점에는 n8n Blog RSS에서 15개 item이 들어왔습니다. 매일 확인하는 자동화라면 전부 저장할 필요가 없습니다.
Limit 노드는 이렇게 설정했습니다.
| 항목 | 값 |
|---|---|
| Max Items | 5 |
| Keep | First Items |
대부분의 블로그 RSS는 최신 글이 위쪽에 오기 때문에, 처음에는 First Items로 최근 5개를 남기는 방식이 이해하기 쉽습니다. 다만 모든 RSS가 같은 정렬을 보장하는 것은 아니므로, 첫 실행 때 실제 최신 글이 위에 오는지 확인해야 합니다.
3단계: Remove Duplicates로 이미 저장한 링크 제외하기
Google Sheets에 저장할 때 가장 귀찮은 문제는 중복입니다. 같은 RSS를 매일 읽으면 어제 저장한 글도 오늘 다시 들어옵니다. 중복 제거 없이 Append Row만 연결하면 시트에 같은 링크가 계속 쌓입니다.
이 글에서는 Remove Duplicates 노드를 다음 기준으로 설정했습니다.
| 항목 | 설정 |
|---|---|
| Operation | Remove Items Processed in Previous Executions |
| Dedupe Value | ={{ $json.link }} |
| Scope | Workflow |
| History Size | 10000 |

제목보다 링크를 기준으로 삼는 편이 낫습니다. 예를 들어 어떤 블로그가 제목을 살짝 바꾸면 제목 기준 중복 제거는 같은 글을 새 글처럼 볼 수 있습니다. 반대로 링크는 보통 같은 글을 가리키는 안정적인 식별자 역할을 합니다.
4단계: Set 노드로 Google Sheets 행 만들기
Google Sheets로 보내기 전에 Set 노드에서 필드 이름을 정리합니다. 이 단계가 중요합니다. 시트의 헤더와 n8n의 필드명이 맞아야 Google Sheets 노드에서 자동 매핑이 편해집니다.
제가 만든 필드는 다음과 같습니다.
| n8n 필드명 | 값 |
|---|---|
| 수집일 | ={{ $now.toFormat("yyyy-MM-dd") }} |
| 출처 | n8n Blog |
| 제목 | ={{ $json.title }} |
| 링크 | ={{ $json.link }} |
| 발행일 | ={{ $json.pubDate }} |
| 상태 | 읽기 전 |
| 메모 | RSS 자동 저장 테스트 |

Set 노드까지 실행하면 글 하나가 아래처럼 시트 컬럼에 맞춰 정리됩니다. 이 구조 그대로 Google Sheets에 한 행으로 쌓이게 됩니다.
{
"수집일": "2026-07-07",
"출처": "n8n Blog",
"제목": "AI Security Monitoring: Risks, Detection, and Automated Response",
"링크": "https://blog.n8n.io/ai-security-monitoring/",
"발행일": "Tue, 07 Jul 2026 10:02:11 GMT",
"상태": "읽기 전",
"메모": "RSS 자동 저장 테스트"
}
여기서 수집일은 원문 발행일과 다릅니다. 원문 발행일은 RSS가 제공한 날짜이고, 수집일은 내 자동화가 해당 글을 발견한 날짜입니다. 나중에 “언제 발견했는지”를 보고 싶다면 두 날짜를 분리해 두는 편이 좋습니다.
5단계: Google Sheets Append Row 연결하기
Google Sheets 노드는 Append Row 작업을 사용합니다.
설정 흐름은 다음과 같습니다.
- Google Sheets OAuth2 credential을 만듭니다.
- Resource는
Sheet Within Document를 선택합니다. - Operation은
Append Row를 선택합니다. - Document에는 저장할 Google Sheet를 선택하거나 URL을 넣습니다.
- Sheet에는 실제 탭 이름을 선택합니다.
- Columns는
Auto-map input data to columns로 시작합니다.
제 테스트 환경에는 Google Sheets OAuth2 credential이 없어서 이 노드는 비활성화했습니다. 실제 운영에서는 credential을 만든 뒤 노드를 활성화하고, 테스트 실행을 한 번 더 눌러 Google Sheets에 행이 추가되는지 확인하면 됩니다.
캡처할 때는 Google 계정 이메일, OAuth client ID, 시트 문서 ID, 개인 폴더명이 보이지 않도록 주의해야 합니다. 공개 블로그에는 민감정보가 들어간 관리 화면보다, 워크플로우 흐름과 결과 컬럼 구조를 보여 주는 캡처가 더 안전합니다.
운영할 때 추천하는 시트 구조
처음에는 단순하게 시작하세요.
| 컬럼 | 운영 팁 |
|---|---|
| 수집일 | 필터 기준으로 자주 사용 |
| 출처 | 여러 RSS를 합칠 때 필수 |
| 제목 | 너무 길면 줄바꿈 사용 |
| 링크 | 중복 확인 기준 |
| 발행일 | 원문 시간 확인 |
| 상태 | 읽기 전, 읽는 중, 참고 완료 |
| 메모 | 글감, 경쟁사, 업데이트 등 간단히 표시 |
나중에 확장한다면 카테고리, 우선순위, 요약, 내 글 주제 후보 같은 컬럼을 추가할 수 있습니다. 처음부터 컬럼을 많이 만들면 자동화보다 시트 정리에 시간이 더 들어가므로, 먼저 읽을 목록으로 쓰면서 필요한 컬럼만 추가하는 편이 좋습니다.
n8n Google Sheets 설정 체크리스트
실제 운영 전에 아래 항목을 한 번씩 확인했습니다. n8n Google Sheets 자동 저장은 노드 연결보다 컬럼명과 권한 설정에서 문제가 나는 경우가 더 많습니다.
| 확인 항목 | 제가 확인한 기준 |
|---|---|
| RSS 결과가 들어오는가 | RSS Read 실행 후 title, link, pubDate 필드 확인 |
| 저장할 글 수가 적절한가 | Limit에서 최근 5개만 남기는지 확인 |
| 중복 기준이 안정적인가 | 제목이 아니라 link 기준으로 Remove Duplicates 설정 |
| 시트 헤더와 필드명이 같은가 | 수집일, 출처, 제목, 링크, 발행일, 상태, 메모 이름 일치 |
| Google Sheets 권한이 준비됐는가 | OAuth2 credential 생성 후 Append Row 테스트 필요 |
| 민감정보가 캡처에 보이지 않는가 | 계정 이메일, 문서 ID, OAuth 정보는 캡처에서 제외 |
이 체크리스트까지 맞춰 두면 n8n Google Sheets 연결이 단순한 실험에서 실제 읽을 목록 자동화로 넘어갑니다. 이후에는 Schedule Trigger를 붙여 하루 한 번 실행하고, 시트에서 상태 컬럼만 업데이트해도 글감 관리 흐름이 유지됩니다.
흔한 오류와 해결법
| 문제 | 원인 | 해결 |
|---|---|---|
| Google Sheets 노드에서 credential 오류 | OAuth2 credential이 없음 | n8n Credentials에서 Google Sheets OAuth2 생성 |
| Append Row는 되지만 컬럼이 비어 있음 | 시트 헤더와 n8n 필드명이 다름 | 헤더와 Set 노드 필드명을 동일하게 맞춤 |
| 같은 글이 계속 저장됨 | 중복 제거 기준이 약함 | 제목 대신 link 기준으로 Remove Duplicates 사용 |
| 날짜가 이상하게 표시됨 | RSS pubDate 형식이 그대로 들어감 | 별도 날짜 변환 노드나 시트 표시 형식 사용 |
| 예약 실행이 안 됨 | 워크플로우가 publish되지 않음 | 테스트 후 저장하고 publish |
Schedule Trigger를 운영에 쓰려면 워크플로우를 저장하고 publish해야 합니다. n8n 공식 문서에서도 Schedule Trigger는 고정된 시간이나 간격으로 워크플로우를 실행하는 노드이며, 스케줄 실행을 위해서는 publish 상태가 필요하다고 설명합니다.
이 방식이 글감 관리에 유용한 이유
블로그를 운영하다 보면 “나중에 읽어야지” 하고 넘긴 글이 금방 사라집니다. 브라우저 북마크는 쌓이기만 하고, 메모 앱은 출처와 날짜가 섞이기 쉽습니다.
RSS를 Google Sheets에 저장하면 글감 관리가 단순해집니다.
- 매일 새로 올라온 글을 한 곳에서 확인
- 같은 링크 중복 저장 방지
- 읽기 상태 관리
- 나중에 뉴스레터나 블로그 글감으로 분류
- 내부 글과 외부 글을 함께 모니터링
이런 자동화 글은 단순한 도구 소개보다 원본성이 강합니다. 실제 워크플로우를 만들고, 오류 지점을 설명하고, 민감정보 처리 기준까지 밝히면 독자가 따라 할 수 있는 경험 기반 글이 됩니다.
FAQ
Google Sheets credential 없이도 이 자동화를 완성할 수 있나요?
Google Sheets에 실제로 행을 추가하려면 credential이 필요합니다. 다만 RSS 읽기, 최근 글 제한, 중복 제거, 시트 행 구조 만들기까지는 credential 없이도 테스트할 수 있습니다. 먼저 앞단을 검증한 뒤 credential을 연결하는 순서가 안전합니다.
제목 대신 링크로 중복 제거하는 이유는 무엇인가요?
제목은 나중에 수정될 수 있고, 서로 다른 글이 비슷한 제목을 가질 수도 있습니다. 링크는 같은 글을 식별하기에 더 안정적입니다. 가능하면 link 또는 RSS가 제공하는 guid를 기준으로 삼는 것이 좋습니다.
Google Sheets에 본문 전체를 저장해도 되나요?
추천하진 않습니다. 읽을 목록 목적이라면 제목, 링크, 발행일 정도면 충분합니다. RSS에 본문이 포함되어 있어도 저작권이나 이용 조건이 사라지는 것은 아니므로, 원문 전체를 저장하거나 재게시하는 방식은 피하는 편이 안전합니다.
여러 RSS를 한 시트에 모을 수 있나요?
가능합니다. RSS Read 노드를 여러 개 두거나, 피드 URL 목록을 반복 처리하는 방식으로 확장할 수 있습니다. 다만 처음에는 피드 하나로 성공한 뒤 출처 컬럼을 기준으로 두 번째 피드를 추가하는 방식이 좋습니다.
마무리
n8n으로 RSS를 읽는 것만으로는 “새 글 확인”에서 끝납니다. Google Sheets에 자동 저장하면 그 다음 단계인 “읽을 목록 관리”로 넘어갈 수 있습니다.
핵심은 단순합니다. RSS를 읽고, 최근 글만 남기고, 이미 저장한 링크를 제외하고, Google Sheets 헤더와 같은 이름으로 필드를 정리한 뒤 Append Row로 저장하면 됩니다. Google Sheets credential 연결만 마치면 매일 새 글이 한 줄씩 쌓이는 개인 리서치 데이터베이스가 됩니다.
이전 단계가 필요하다면 먼저 n8n RSS 자동 수집하기: 관심 사이트 새 글 업데이트 모으기를 보고, RSS 수집 구조를 만든 뒤 이 글의 Google Sheets 저장 단계로 이어가면 됩니다. n8n 자체가 아직 낯설다면 n8n 첫 자동화 만들기: 외부 데이터 자동으로 가져오기에서 Manual Trigger와 HTTP 요청 흐름을 먼저 익히는 편이 좋습니다.
이 글은 일반적인 정보이며 전문 조언이 아닙니다. 각 사이트의 RSS 이용 조건과 Google 계정 보안 정책은 다를 수 있으므로, 공개 발행이나 업무 자동화에 적용하기 전에는 해당 서비스의 이용 조건과 권한 설정을 확인하세요.