제 6부. 첫 번째 자동화 실습: 셀프 호스팅 N8N 환경으로 Google Sheets 연동하기

제 6부. 첫 번째 자동화 실습: 셀프 호스팅 N8N 환경으로 Google Sheets 연동하기

인트로: 실용적인 자동화의 시작, 외부 서비스와 데이터 주고받기

제4부까지 우리는 여러분의 서버에 N8N 환경을 완벽하게 구축하고, N8N의 핵심 개념인 노드(Node)와 데이터 흐름(JSON)을 이해했습니다. 이제는 N8N의 가장 강력한 능력 중 하나인 '외부 서비스 연결 및 데이터 처리'를 실습할 차례입니다.

Google Sheets는 개인 프로젝트부터 기업의 데이터베이스 역할까지 수행하는 가장 보편적인 데이터 저장소입니다. N8N의 자동화는 이 Google Sheets와의 연동이 매우 중요합니다. 웹에서 수집한 데이터를 Sheets에 정리하거나, Sheets의 데이터를 읽어 알림을 보내는 등 활용도가 무궁무진하기 때문입니다.

이번 제5부에서는 실제로 여러분의 셀프 호스팅 N8N 환경Google Sheets를 연결하여, 데이터를 읽고 쓰는 방법을 단계별로 마스터할 것입니다.

  • 크레덴셜(Credential) 설정: N8N이 Google Sheets에 안전하게 접근하도록 권한을 부여하는 방법을 배웁니다. 이것이 외부 앱 연동의 핵심입니다.

  • Google Sheets 노드 활용: Sheets에서 데이터를 읽어오고(Read), 새로운 데이터를 추가하는(Append) 가장 기본적인 두 가지 작업을 실습합니다.

이 실습을 통해 여러분은 '캡슐 2번: 앱/서비스 노드'의 실제 작동 방식을 이해하고, N8N 자동화의 문을 활짝 열게 될 것입니다.

1: Google Sheets 연동의 핵심 — 안전한 크레덴셜 설정하기

N8N이 여러분의 Google Sheets 데이터에 접근하려면, 먼저 Google로부터 정식 권한을 부여받아야 합니다. 이 권한을 N8N에 저장하는 과정을 크레덴셜(Credential) 설정이라고 합니다. 이 과정은 다른 모든 외부 서비스(Slack, Notion 등)를 연동할 때도 동일하게 적용되는 기본 중의 기본입니다.

1. Google OAuth 2.0 API 접근 권한의 이해

N8N은 Google Sheets에 직접적인 비밀번호를 사용하지 않고, OAuth 2.0이라는 표준 보안 프로토콜을 사용합니다. 이는 N8N에게 특정 작업(예: Sheets 읽기/쓰기)만 할 수 있는 임시 권한을 부여하는 방식입니다.

필수 사전 준비: Google Cloud Console 설정

Google Sheets 연동을 위해서는 Google의 개발자 플랫폼인 Google Cloud Console에서 몇 가지 설정을 해야 합니다.

  1. 새 프로젝트 생성: Google Cloud Console에 접속하여 N8N 자동화를 위한 새로운 프로젝트를 생성합니다.

  2. API 활성화: 생성된 프로젝트에서 'Google Sheets API'를 검색하여 활성화합니다.

  3. 사용자 인증 정보 생성: 좌측 메뉴에서 '사용자 인증 정보' → 'OAuth 클라이언트 ID'를 생성합니다.

    • 애플리케이션 유형: '웹 애플리케이션'을 선택합니다.

    • 승인된 리디렉션 URI: 여기에 여러분의 N8N URL/rest/oauth2-credential/callback 형태의 주소를 입력해야 합니다. (예: https://n8n.my-domain.com/rest/oauth2-credential/callback)

이 리디렉션 URL은 Google이 인증 성공 후 N8N에게 토큰을 돌려줄 주소이므로 매우 중요합니다.

2. N8N에 Google Sheets 크레덴셜 등록하기

Google Cloud Console에서 클라이언트 ID클라이언트 보안 비밀번호를 받았다면, 이제 N8N 서버에 이를 등록할 차례입니다.

  1. N8N 접속: 여러분의 셀프 호스팅 N8N 환경에 접속합니다.

  2. 크레덴셜 추가: 좌측 메뉴에서 'Credentials' 아이콘을 클릭한 후, 'New Credential'을 클릭합니다.

  3. Google Sheets 선택: 'Google Sheets API'를 검색하여 선택합니다.

  4. 정보 입력:

    • Client ID: Google Cloud Console에서 복사한 클라이언트 ID를 붙여넣습니다.

    • Client Secret: Google Cloud Console에서 복사한 클라이언트 보안 비밀번호를 붙여넣습니다.

  5. OAuth 인증 완료:

    • 'Connect' 버튼을 클릭하면 Google 로그인 창이 뜹니다.

    • 로그인 후, N8N이 Google Sheets에 접근하도록 권한을 승인합니다.

    • 승인이 완료되면 N8N 화면으로 되돌아오며, 크레덴셜 등록이 완료됩니다.

3. 크레덴셜의 역할

이렇게 등록된 크레덴셜은 N8N 서버에 안전하게 저장되며, 앞으로 여러분이 어떤 워크플로를 만들든 Google Sheets 노드를 사용할 때마다 재사용됩니다. 한 번의 설정으로 모든 Google Sheets 자동화 작업을 처리할 수 있게 되는 것입니다.

 2: Google Sheets에서 데이터 읽어오기 (Read Operation)

Google Sheets 노드의 가장 기본적이고 중요한 작업은 시트에 저장된 데이터를 N8N 워크플로로 가져오는 것입니다. 이를 통해 Sheets의 데이터를 슬랙으로 보내거나, 이메일 본문에 삽입하는 등 다양한 후속 작업을 진행할 수 있습니다.

1. 실습 준비: Google Sheets 템플릿 준비

실습을 위해 간단한 구글 시트를 준비합니다.

  • 시트 생성: Google Drive에서 새로운 스프레드시트를 만들고 이름을 지정합니다. (예: N8N 테스트 데이터)

  • 데이터 입력: 첫 번째 시트에 다음과 같은 데이터를 입력합니다.

A1 (Name) B1 (Task) C1 (Status)
김지수 마케팅 보고서 작성 In Progress
박민준 신규 API 연동 테스트 Done
이하나 고객 피드백 정리 Todo

2. 워크플로 구축: Google Sheets Read 노드 설정

이제 N8N 캔버스에서 데이터를 읽어오는 워크플로를 구축합니다.

A. 노드 추가 및 크레덴셜 연결

  1. 트리거 노드: Start 노드(혹은 Cron 노드)를 시작점으로 설정합니다.

  2. Google Sheets 노드 추가: Start 노드 다음에 Google Sheets 노드를 추가합니다.

  3. 크레덴셜 선택: Credential 드롭다운 메뉴에서 본론 1에서 설정한 Google Sheets 크레덴셜을 선택합니다.

B. 데이터 읽기 설정 상세

Google Sheets 노드에서 가장 중요한 세 가지 필드를 설정합니다.

  1. Resource (자원): Spreadsheet를 선택합니다. (Sheet 자체가 아니라, Sheet 파일 전체를 의미)

  2. Operation (작업): Read (읽기)를 선택합니다.

  3. Spreadsheet ID:

    • 클릭하여 찾기: Spreadsheet ID 필드 오른쪽의 돋보기 아이콘을 클릭합니다. N8N이 여러분의 Google Drive에 연결되어 접근 가능한 스프레드시트 목록을 보여줍니다.

    • 선택: 목록에서 앞에서 준비한 N8N 테스트 데이터 시트를 선택합니다.

C. 시트 및 범위 설정

읽어올 시트와 범위를 구체적으로 지정합니다.

  1. Sheet Name (시트 이름): 기본값인 Sheet1을 입력합니다. (다른 이름일 경우 해당 이름을 입력)

  2. Range (범위): A1:C4와 같이 읽어올 데이터 범위를 지정합니다. (모든 데이터를 읽어오려면 비워두거나 A:C 등으로 설정 가능)

  3. First Row is Header (첫 행은 헤더): 이 옵션을 활성화합니다. N8N이 첫 행(Name, Task, Status)을 데이터 필드의 이름(Key)으로 인식하여 JSON 객체로 변환하도록 합니다.

3. 워크플로 실행 및 결과 검증

워크플로를 실행합니다.

  1. 실행: Execute Workflow 버튼을 클릭합니다.

  2. 결과 확인: Google Sheets 노드를 클릭하고 우측의 Output Data를 확인합니다.

  3. JSON 출력: 데이터가 다음과 같이 JSON 형태의 아이템 목록으로 깔끔하게 정리되어 출력되었는지 검증합니다.

JSON
[
  {
    "Name": "김지수",
    "Task": "마케팅 보고서 작성",
    "Status": "In Progress"
  },
  {
    "Name": "박민준",
    "Task": "신규 API 연동 테스트",
    "Status": "Done"
  }
  // ... 나머지 아이템
]

성공적으로 Read 작업을 수행했다면, 여러분은 외부 서비스 데이터를 N8N으로 가져와 처리할 수 있는 가장 중요한 단계를 마스터한 것입니다.

3: N8N 데이터를 Google Sheets에 추가하기 (Append Operation)

앞서 Sheets에서 데이터를 가져오는 방법을 익혔으니, 이제 그 반대 방향인 N8N 내부의 데이터를 Sheets에 기록하는 방법을 실습합니다. 이는 웹에서 폼 제출 데이터나 API 응답 데이터를 수집할 때 가장 많이 사용되는 기능입니다.

1. 실습 준비: 기록할 데이터 생성 (Set Node 활용)

Google Sheets에 저장할 데이터가 필요합니다. 여기서는 Set 노드를 사용하여 Sheets에 저장할 가상의 데이터 아이템을 생성합니다.

  1. Set 노드 추가: 새 워크플로를 시작하거나, 기존 워크플로에서 Start 노드 다음에 Set 노드를 추가합니다.

  2. 데이터 필드 생성: Set 노드에 Sheets의 컬럼 헤더 이름과 일치하도록 필드와 값을 정의합니다.

필드 이름 (Key) 값 (Value)
Name 12월 주간 회의록 요약
Task 완료 보고
Status Done

2. 워크플로 구축: Google Sheets Append 노드 설정

Set 노드 다음에 새로운 Google Sheets 노드를 연결합니다.

A. 노드 설정 및 작업 선택

  1. 크레덴셜 선택: 이전에 설정한 Google Sheets 크레덴셜을 선택합니다.

  2. Operation (작업): Append (추가)를 선택합니다.

    • Append는 Sheets의 가장 마지막 행 다음에 새로운 데이터를 추가하는 작업입니다.

  3. Spreadsheet ID 및 Sheet Name: 본론 2에서 사용했던 N8N 테스트 데이터 시트와 Sheet1을 다시 지정합니다.

B. 데이터 매핑 (Data Mapping)

Append 작업에서는 N8N의 JSON 필드(Key)를 Sheets의 컬럼(Column)에 정확히 매핑하는 과정이 필수입니다.


이 포스팅은 쿠팡 파트너스 활동으로, 일정의 수수료를 제공받습니다
  1. Data to Insert (삽입할 데이터): Insert Row Settings 섹션에서 Add Field를 클릭하여, Sheets에 기록할 데이터를 매핑합니다.

  2. 매핑 규칙: Sheets의 헤더 이름(Name, Task, Status)을 필드 이름으로 설정하고, 그 값으로 Set 노드의 데이터를 표현식(Expression)으로 연결합니다.

Sheets 컬럼 헤더 (필드) N8N JSON 필드 (Expression)
Name { { $json.Name } }
Task { { $json.Task } }
Status { { $json.Status } }

팁: Set 노드에서 Sheets의 헤더 이름(Name, Task)과 동일하게 JSON 필드를 설정하면, Expression을 입력할 때 실수를 줄일 수 있습니다.

3. 워크플로 실행 및 결과 검증

워크플로를 실행합니다.

  1. 실행: Execute Workflow 버튼을 클릭합니다.

  2. N8N 결과 확인: Google Sheets 노드를 클릭하고 우측의 Output Data를 확인하여 성공 메시지(처리된 행 수 등)를 검토합니다.

  3. Google Sheets 확인: 실제 N8N 테스트 데이터 스프레드시트를 열어, 기존 데이터 아래 새로운 행이 추가되었는지 확인합니다.

A (Name) B (Task) C (Status)
... ... ...
이하나 고객 피드백 정리 Todo
12월 주간 회의록 요약 완료 보고 Done

이로써 여러분은 외부 데이터를 읽고(Read) 쓰는(Append) N8N 자동화의 양방향 통신 능력을 모두 확보했습니다.

클로징: Google Sheets 연동, 자동화의 새로운 시작점

이번 제6부 실습을 통해 여러분은 셀프 호스팅 N8N 환경에서 외부 서비스인 Google Sheets와 완벽하게 연결하는 방법을 마스터했습니다. 단순한 워크플로 구축을 넘어, 데이터의 '읽기(Read)'와 '쓰기(Append)'라는 양방향 통신 능력을 확보한 것입니다.

💡 실습을 통해 얻은 핵심 역량

  • 크레덴셜 관리의 중요성: 모든 외부 앱과의 연동은 Google Cloud Console을 통한 OAuth 2.0 설정 및 N8N 내 크레덴셜 등록에서 시작됨을 확인했습니다. 이는 모든 '캡슐 2번(App/Service Nodes)' 노드를 다루는 데 필요한 기본 문법입니다.

  • 데이터 흐름의 양방향성: Read 작업을 통해 외부 데이터를 N8N으로 가져와 가공할 수 있게 되었고, Append 작업을 통해 N8N에서 처리된 데이터를 영구적인 저장소(Sheets)에 기록할 수 있게 되었습니다.

  • 노드 작업(Operation)의 명확성: 하나의 노드(Google Sheets)도 Read, Append 등 다양한 작업(Operation)을 통해 여러 기능을 수행할 수 있음을 이해했습니다.

다음 단계로 나아가기

Google Sheets 연동은 단지 시작일 뿐입니다. 여러분이 방금 습득한 크레덴셜 설정 및 데이터 처리 방식은 N8N이 지원하는 수백 개의 앱(Slack, Discord, Notion 등)에 동일하게 적용됩니다.

이제 여러분은 Sheets에 데이터를 저장하는 대신, 다음과 같은 확장된 자동화 로직을 시도해 볼 수 있습니다.

  1. 데이터 기반 알림: Sheets에서 특정 'Status'가 Done인 행만 읽어와 Filter 노드(제4부에서 다룬 로직)를 통과시킨 후, Slack 노드를 연결하여 팀원에게 작업 완료 알림을 자동으로 보냅니다.

  2. API 응답 기록: 외부 API(HTTP Request 노드)에서 수집한 데이터를 Sheets에 즉시 Append하여 실시간 로깅 및 데이터 백업 시스템을 구축합니다.

행동 유발 (CTA): 여러분의 첫 번째 자동화 워크플로를 완성하세요!

이 가이드를 통해 얻은 지식은 N8N의 무한한 가능성을 여는 열쇠입니다.

오늘 배운 내용을 바탕으로, 여러분의 일상 업무에서 가장 반복적이거나 기록이 필요한 부분을 찾아 첫 번째 실용적인 자동화 워크플로를 완성해 보세요!

#가나 투데이 #ganatoday

그린아프로