월. 8월 18th, 2025

G:

n8n 설치부터 연동까지: 첫 워크플로우 쉽게 만드는 법

반복적인 업무에 지치셨나요? 🤯 매일 똑같은 데이터 복사 붙여넣기, 알림 보내기, 또는 웹 서비스 간의 수동적인 연결에 시간을 낭비하고 있다면, 이 글이 바로 여러분을 위한 길잡이가 될 것입니다. n8n은 강력한 오픈소스 자동화 도구로, 코딩 없이도 다양한 웹 서비스와 애플리케이션을 연결하여 여러분의 워크플로우를 자동화할 수 있게 도와줍니다. 이 글에서는 n8n을 설치하는 것부터 여러분의 첫 번째 워크플로우를 만들어 성공적으로 연동하는 모든 과정을 쉽고 자세하게 안내해 드리겠습니다.

1. n8n, 왜 사용해야 할까요? ✨

n8n은 “노드 기반의 워크플로우 자동화 도구”입니다. Zapier나 Make(구 Integromat)와 같은 상용 서비스들과 유사하지만, 몇 가지 독특한 장점들을 가지고 있습니다.

1.1. n8n의 주요 장점 👍

  • 오픈소스 & 자가 호스팅 가능: 🚀 비용 부담 없이 무료로 사용할 수 있으며, 내 서버에 직접 설치하여 데이터 주권을 완벽하게 통제할 수 있습니다. 민감한 정보를 다루는 워크플로우에 특히 유용하죠.
  • 무제한 사용량: 💰 상용 서비스처럼 작업 횟수나 기능에 제한이 없습니다. 필요한 만큼 무제한으로 워크플로우를 실행하고 노드를 사용할 수 있습니다.
  • 강력한 유연성: 🔗 수많은 내장 통합(Integration)은 물론, HTTP 요청 노드를 통해 거의 모든 웹 API와 연결할 수 있습니다. Python이나 JavaScript 코드를 실행할 수 있는 노드도 제공하여 커스텀 로직 구현도 가능합니다.
  • 시각적인 워크플로우: 🎨 드래그 앤 드롭 방식으로 노드를 연결하여 워크플로우를 직관적으로 설계할 수 있습니다. 코딩 지식이 없어도 쉽게 자동화를 구현할 수 있습니다.

2. n8n 설치하기: 시작이 반이다! 🛠️

n8n은 다양한 방법으로 설치할 수 있지만, 가장 권장하는 방법은 Docker를 이용하는 것입니다. Docker는 환경 설정의 복잡성을 줄여주고, 안정적인 실행을 보장합니다.

2.1. Docker를 이용한 n8n 설치 (권장) 🐳

사전 준비물: Docker와 Docker Compose가 설치된 서버 (로컬 PC도 가능).

  1. 작업 디렉토리 생성:

    먼저 n8n 관련 파일을 저장할 디렉토리를 만듭니다.

    mkdir n8n_data
    cd n8n_data
  2. Docker Compose 파일 생성:

    docker-compose.yml 파일을 생성하고 아래 내용을 붙여넣습니다. 이 파일은 n8n 컨테이너를 어떻게 실행할지 정의합니다.

    version: '3.8'
    
    services:
      n8n:
        image: n8nio/n8n
        restart: always
        ports:
          - "5678:5678" # n8n이 5678 포트를 사용합니다. 필요에 따라 변경 가능합니다.
        environment:
          - N8N_HOST=localhost # n8n이 실행될 호스트 주소. 서버 IP 또는 도메인으로 변경 가능.
          - N8N_PORT=5678
          - N8N_PROTOCOL=http # HTTPS를 사용할 경우 https로 변경
          - WEBHOOOK_URL=http://localhost:5678/ # 외부에서 접근할 URL (매우 중요!)
          - GENERIC_TIMEZONE=Asia/Seoul # 원하는 시간대로 변경 (예: Europe/Berlin, America/New_York 등)
          - N8N_BASIC_AUTH_ACTIVE=true # 웹 UI 접근 시 기본 인증 활성화
          - N8N_BASIC_AUTH_USER=your_username # 원하는 사용자 이름으로 변경
          - N8N_BASIC_AUTH_PASSWORD=your_password # 원하는 비밀번호로 변경
        volumes:
          - ./n8n_data:/home/node/.n8n # 데이터를 호스트에 저장하여 컨테이너 삭제해도 유지되도록 함.
        # network_mode: bridge # 기본 설정으로 대부분 충분합니다.
        # environment: # 추가적인 환경 변수가 필요할 경우 주석 해제 후 사용
        #   - DB_TYPE=sqlite
        #   - N8N_EMAIL_MODE=smtp
        #   - N8N_SMTP_HOST=smtp.gmail.com
        #   - N8N_SMTP_PORT=587
        #   - N8N_SMTP_USER=your-email@example.com
        #   - N8N_SMTP_PASSWORD=your-email-password
        #   - N8N_SMTP_SENDER=Your Name <your-email></your-email>

    🚨 주의: N8N_HOST, WEBHOOK_URL, N8N_BASIC_AUTH_USER, N8N_BASIC_AUTH_PASSWORD는 반드시 여러분의 환경에 맞게 수정해야 합니다!

  3. n8n 컨테이너 실행:

    docker-compose.yml 파일이 있는 디렉토리에서 다음 명령어를 실행합니다.

    docker-compose up -d

    이 명령어는 백그라운드에서 n8n 컨테이너를 다운로드하고 실행합니다. 처음에는 시간이 조금 걸릴 수 있습니다.

  4. n8n 접속 확인:

    웹 브라우저를 열고 http://localhost:5678 (또는 서버 IP:5678)로 접속합니다. 설정한 사용자 이름과 비밀번호로 로그인하면 n8n 대시보드를 볼 수 있습니다. 🎉

2.2. 다른 설치 방법 (참고)

  • npm으로 로컬 설치: 개발 및 테스트 용도로는 간단하지만, 영구적인 사용에는 Docker가 더 적합합니다.
    npm install -g n8n
    n8n start
  • 클라우드 서비스: DigitalOcean, Railway 등에서 원클릭 배포를 지원하기도 합니다.

3. n8n 기본 개념 이해하기 🧠

n8n으로 첫 워크플로우를 만들기 전에 몇 가지 핵심 개념을 이해하는 것이 중요합니다.

3.1. 노드 (Nodes) 🧱

노드는 n8n 워크플로우의 가장 기본적인 구성 요소입니다. 각 노드는 특정 작업을 수행합니다.

  • 트리거 노드 (Trigger Nodes): 워크플로우를 시작하는 노드입니다. 특정 이벤트(예: 새 이메일 수신, 웹훅 요청, 주기적인 시간)가 발생했을 때 워크플로우를 실행합니다. ⚡️
  • 일반 노드 (Regular Nodes): 데이터를 처리하고, 다른 서비스와 상호작용하며, 로직을 제어하는 노드입니다. 예를 들어, 데이터를 변환하거나, 슬랙 메시지를 보내거나, 구글 스프레드시트에 행을 추가하는 등의 작업을 수행합니다.

3.2. 워크플로우 (Workflows) 🗺️

워크플로우는 하나 이상의 노드가 연결되어 자동화된 작업을 수행하는 일련의 흐름입니다. 트리거 노드로 시작하여 다른 노드들을 통해 순차적으로 또는 병렬적으로 작업을 수행합니다.

3.3. 크리덴셜 (Credentials) 🔑

크리덴셜은 n8n이 외부 서비스(예: Google, Slack, Notion)에 접근할 수 있도록 하는 인증 정보입니다. API 키, OAuth 토큰 등이 여기에 해당합니다. 보안을 위해 n8n 내부에 암호화되어 저장됩니다.

3.4. 실행 (Executions) 🏃‍♀️

워크플로우가 실제로 실행되는 것을 ‘실행(Execution)’이라고 합니다. 각 실행은 로그와 함께 모든 노드의 입력 및 출력 데이터를 기록하여 디버깅에 매우 유용합니다.

4. 첫 워크플로우 만들기: Notion → Slack 알림 🔔

이제 실제 예제를 통해 n8n의 강력함을 경험해 볼 시간입니다. Notion에 새로운 페이지가 생성될 때마다 Slack 채널로 알림을 보내는 워크플로우를 만들어 봅시다!

4.1. 워크플로우 목표 설정 🎯

  • 트리거: Notion 데이터베이스에 새로운 페이지가 추가될 때
  • 액션: 특정 Slack 채널로 새 페이지 링크와 제목을 포함한 메시지 전송

4.2. 단계별 워크플로우 구축 🏗️

n8n 대시보드에서 “New Workflow”를 클릭하여 새 워크플로우를 시작합니다.

단계 1: Notion 트리거 설정 (Watch for new pages)

  1. 노드 추가: 빈 워크플로우 캔버스에 “Notion”을 검색하여 “Notion Trigger” 노드를 추가합니다.
    n8n Notion Trigger 검색 화면 예시
  2. 트리거 설정:
    • Trigger on: “Created” (새 페이지 생성 시)
    • Authentication: “New”를 클릭하여 Notion API 연동을 설정합니다.
      • Notion 개발자 사이트(my-integrations)에서 “New integration”을 생성합니다. 내부 통합(Internal integration)으로 생성하고, 필요한 권한(Read content, Read users, Insert content)을 부여합니다.
      • 생성된 통합의 “Internal Integration Token”을 복사하여 n8n의 “API Key” 필드에 붙여넣습니다.
      • Notion 워크스페이스로 돌아가, 연동하려는 데이터베이스 페이지에 해당 통합을 초대합니다. (페이지 우측 상단 `···` 메뉴 -> Add connections -> 생성한 통합 선택)
    • Database ID: Notion 데이터베이스의 URL에서 ID 부분을 복사하여 붙여넣습니다. (https://www.notion.so/{YOUR_WORKSPACE}/{DATABASE_ID}?v=...에서 {DATABASE_ID} 부분)
  3. 테스트: “Execute Workflow” 버튼을 클릭합니다. Notion 데이터베이스에 새로운 페이지를 하나 생성한 후, n8n으로 돌아와 “Output” 탭에서 데이터가 잘 들어오는지 확인합니다.
    n8n Notion Trigger 테스트 출력 예시

단계 2: Slack 알림 노드 추가

  1. 노드 추가: Notion Trigger 노드 옆의 “+” 버튼을 클릭하여 “Slack”을 검색하고 “Slack” 노드를 추가합니다.
  2. Slack 연동 설정:
    • Operation: “Post a Message”
    • Authentication: “New”를 클릭하여 Slack API 연동을 설정합니다.
      • Slack API 사이트(api.slack.com/apps)에서 “Create an App” -> “From scratch”를 선택합니다.
      • 앱 이름을 지정하고 워크스페이스를 선택합니다.
      • “OAuth & Permissions” 메뉴에서 “Scopes” -> “Bot Token Scopes”에 chat:write, chat:write.public, channels:read 등을 추가합니다.
      • “Install to Workspace”를 클릭하여 봇을 설치합니다.
      • “Bot User OAuth Token” (xoxb-...)을 복사하여 n8n의 “Access Token” 필드에 붙여넣습니다.
      • 봇을 초대할 Slack 채널에 /invite @봇이름 명령어로 봇을 초대합니다.
  3. 메시지 내용 구성:
    • Channel: 알림을 보낼 Slack 채널 이름을 입력합니다. (예: #일반 또는 #자동화-알림)
    • Text: 이곳에 Notion에서 가져온 정보를 사용하여 메시지를 구성합니다. 우측의 톱니바퀴 아이콘을 클릭하여 “Add Expression”을 선택하거나, 직접 입력 후 변수를 드래그 앤 드롭하여 넣을 수 있습니다.
      ✨ 새로운 Notion 페이지가 생성되었습니다! ✨
      
      제목: {{ $json.properties.Name.title[0].plain_text }}
      링크: {{ $json.url }}
      생성일: {{ $json.created_time | date("YYYY-MM-DD HH:mm") }}
      

      위 표현식은 Notion에서 받은 데이터의 특정 필드(`Name`, `url`, `created_time`)를 사용하여 메시지를 만듭니다. 데이터 구조는 Notion Trigger의 “Output” 탭에서 확인 가능합니다.

단계 3: 워크플로우 활성화 및 테스트

  1. 워크플로우 저장: 워크플로우 이름을 지정하고 저장합니다. (예: “Notion 새 페이지 Slack 알림”)
  2. 실행 및 테스트: “Execute Workflow” 버튼을 클릭하여 워크플로우를 한 번 실행해 봅니다. Slack으로 메시지가 오는지 확인합니다.
  3. 워크플로우 활성화: 모든 설정이 완료되고 정상 작동하는 것을 확인했다면, n8n 대시보드 우측 상단의 “Active” 토글 버튼을 켜서 워크플로우를 활성화합니다. 이제 Notion에 새 페이지가 생성될 때마다 자동으로 Slack 알림이 전송됩니다! 🎉

5. n8n 워크플로우 활용 팁 및 주의사항 💡

첫 워크플로우를 성공적으로 만들었다면, 이제 더 나아가 n8n을 더 효과적으로 활용하고 발생할 수 있는 문제에 대비하는 방법을 알아봅시다.

5.1. 디버깅과 오류 처리 🐞

  • 실행 기록 확인: “Executions” 탭에서 모든 워크플로우 실행 기록과 각 노드의 입력/출력 데이터를 확인할 수 있습니다. 오류 발생 시 어떤 노드에서 문제가 생겼는지 파악하는 데 매우 유용합니다.
  • Try/Catch 노드: 예상치 못한 오류가 발생했을 때 워크플로우가 멈추지 않고 특정 로직(예: 오류 알림 보내기)을 실행하게 할 수 있습니다.
  • Keep Only Set: 불필요한 데이터를 다음 노드로 넘기지 않고 필요한 데이터만 선별하여 처리 효율을 높일 수 있습니다.

5.2. 표현식 (Expressions) 마스터하기 🧙‍♂️

n8n의 표현식은 데이터 변환과 조건부 로직을 구현하는 데 핵심적인 역할을 합니다.

  • {{ $json.propertyName }}: 이전 노드에서 전달받은 JSON 데이터의 특정 속성에 접근합니다.
  • {{ $('NodeName').item.json.propertyName }}: 특정 노드의 출력 데이터에 접근합니다.
  • {{ $input.item.json.propertyName }}: 현재 노드의 입력 데이터에 접근합니다.
  • JavaScript 함수 활용: {{ $json.created_time | date("YYYY-MM-DD HH:mm") }}처럼 날짜 형식을 변경하거나, {{ $json.value.length > 10 ? '긴 값' : '짧은 값' }}처럼 삼항 연산자를 사용할 수도 있습니다.

5.3. 효율적인 워크플로우 관리 📂

  • 폴더 구조: 워크플로우가 많아지면 폴더를 만들어 체계적으로 관리하는 것이 좋습니다.
  • 템플릿 활용: 자주 사용하는 워크플로우 패턴은 템플릿으로 저장하여 재사용할 수 있습니다.

5.4. 보안 및 성능 고려사항 🛡️

  • 환경 변수 보안: API 키나 비밀번호 같은 민감한 정보는 docker-compose.yml 파일의 환경 변수나 n8n 내의 크리덴셜로만 관리하고, 절대로 워크플로우 코드에 직접 하드코딩하지 마세요.
  • 웹훅 URL: WEBHOOK_URL이 외부에서 접근 가능한 올바른 주소로 설정되어 있는지 항상 확인해야 합니다. 특히 서버의 방화벽 설정에 주의하세요.
  • 리소스 관리: 워크플로우가 많아지거나 복잡해지면 서버의 CPU, 메모리 사용량이 증가할 수 있습니다. 필요한 경우 서버 사양을 업그레이드하거나, 워크플로우를 분리하여 관리하는 것을 고려하세요.

결론: 자동화의 세계로 떠나세요! 🚀

이 가이드를 통해 n8n을 성공적으로 설치하고 첫 워크플로우를 만드는 방법을 익히셨기를 바랍니다. n8n은 여러분의 일상적인 업무를 자동화하고 효율성을 극대화할 수 있는 무궁무진한 가능성을 제공합니다. Notion 페이지 생성 알림은 시작에 불과합니다. 이메일 자동 발송, CRM 데이터 동기화, 소셜 미디어 포스팅 자동화 등 상상하는 모든 것을 n8n으로 구현할 수 있습니다.

이제 망설이지 말고 여러분만의 아이디어를 n8n으로 시도해보세요. 처음에는 어려울 수 있지만, 워크플로우가 성공적으로 작동하는 순간의 짜릿함은 여러분에게 더 큰 영감을 줄 것입니다. n8n 커뮤니티(공식 포럼, Discord 등)도 활발하니, 궁금한 점이 있다면 언제든지 도움을 요청해보세요!

지금 바로 n8n을 활용하여 반복적인 업무에서 벗어나 진정한 생산성을 경험하세요! 💪

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다