
N8N은 작업 자동화를 위한 강력한 워크플로우 자동화 도구로, 다양한 서비스와 애플리케이션을 연결하여 복잡한 자동화 작업을 쉽게 구현할 수 있게 해줍니다. 이 글에서는 N8N의 설치 방법부터 초기 설정까지 상세히 알아보겠습니다. Docker와 NPM을 통한 설치 방법, 필요한 시스템 요구사항, 기본 설정 방법 등을 단계별로 설명하여 N8N을 빠르게 시작할 수 있도록 안내합니다.
목차
N8N 소개
N8N(pronounced as n-eight-n)은 오픈소스 워크플로우 자동화 도구로, 다양한 애플리케이션과 서비스를 연결하여 복잡한 자동화 작업을 노드 기반 인터페이스로 쉽게 구현할 수 있습니다. Zapier나 Make(구 Integromat)와 유사하지만, 자체 호스팅이 가능하고 확장성이 뛰어납니다.
N8N의 주요 특징:
- 직관적인 노드 기반 워크플로우 에디터
- 200개 이상의 내장 통합 서비스
- 자체 호스팅 가능(데이터 보안 강화)
- 커스텀 노드 개발 지원
- 서브워크플로우 지원
최신 버전의 기능
N8N은 지속적으로 개선되고 있으며, 최신 버전에서는 다음과 같은 기능이 추가되었습니다:
- 향상된 에러 처리 및 디버깅
- 워크플로우 버전 관리
- API 응답 캐싱
- 워크플로우 공유 및 내보내기 기능
- 향상된 보안 기능
설치 전 준비사항
N8N을 설치하기 전에 시스템이 다음 요구사항을 충족하는지 확인하세요.
시스템 요구사항
- 운영체제: Linux, macOS, Windows
- 메모리: 최소 1GB RAM (권장 2GB 이상)
- 저장공간: 최소 1GB 여유 공간
- 네트워크: 인터넷 연결 필수
필요한 소프트웨어
설치 방법에 따라 아래 소프트웨어가 필요합니다:
Docker 방식 설치 시:
- Docker Engine 19.03.0 이상
- Docker Compose (선택사항)
NPM 방식 설치 시:
- Node.js 16 이상 (18 LTS 권장)
- npm 7 이상
설치 방법 비교
N8N을 설치하는 방법은 여러 가지가 있습니다. 가장 일반적인 두 가지 방법과 각각의 장단점을 비교해 보겠습니다.
Docker 설치:
- 장점: 격리된 환경, 의존성 충돌 없음, 배포 용이
- 단점: Docker에 대한 기본 지식 필요
NPM 설치:
- 장점: 직접 설치, 사용자 정의 용이
- 단점: 시스템 의존성 문제 발생 가능
Docker를 이용한 설치
Docker를 사용하면 N8N을 빠르고 간편하게 설치할 수 있습니다. 이 방법은 의존성 문제를 최소화하고 여러 환경에서 일관된 설치를 보장합니다.
기본 Docker 설치
다음 명령어로 N8N 도커 이미지를 설치하고 실행할 수 있습니다:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
이 명령은 다음을 수행합니다:
- N8N 컨테이너를 생성하고 실행
- 호스트의 5678 포트를 컨테이너의 5678 포트에 연결
- 로컬 ~/.n8n 디렉토리를 컨테이너의 데이터 디렉토리에 마운트
영구 데이터 저장을 위한 볼륨 설정
N8N의 데이터를 영구적으로 저장하기 위해 Docker 볼륨을 생성할 수 있습니다:
# 볼륨 생성
docker volume create n8n_data
# 볼륨을 사용하여 N8N 실행
docker run -it \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
환경 변수 설정
다양한 환경 변수를 사용하여 N8N의 동작을 사용자 정의할 수 있습니다:
docker run -it \
--name n8n \
-p 5678:5678 \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=username \
-e N8N_BASIC_AUTH_PASSWORD=password \
-v n8n_data:/home/node/.n8n \
n8nio/n8n
위 예시는 기본 인증을 활성화하고 사용자 이름과 비밀번호를 설정합니다.
Docker Compose 사용
더 복잡한 설정을 위해 Docker Compose를 사용할 수 있습니다. 다음은 기본적인 docker-compose.yml 파일 예시입니다:
version: '3'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=username
- N8N_BASIC_AUTH_PASSWORD=password
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
external: true
이 파일을 생성한 후 다음 명령어로 N8N을 시작할 수 있습니다:
docker-compose up -d
NPM을 이용한 설치
Node.js와 npm을 사용하여 N8N을 설치하는 방법을 알아보겠습니다.
Node.js 설치
먼저 시스템에 Node.js가 설치되어 있어야 합니다. 공식 웹사이트에서 다운로드하거나 패키지 관리자를 통해 설치할 수 있습니다.
Linux(Ubuntu/Debian):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
macOS(Homebrew):
brew install node@18
Windows:
Node.js 공식 웹사이트(https://nodejs.org)에서 설치 프로그램을 다운로드하여 실행하세요.
NPM을 통한 N8N 설치
Node.js가 설치되면 npm을 사용하여 N8N을 설치할 수 있습니다. 글로벌 설치와 로컬 설치 두 가지 방법이 있습니다.
글로벌 설치:
npm install -g n8n
로컬 프로젝트 설치:
mkdir n8n-project
cd n8n-project
npm init -y
npm install n8n
npm 설치 특별 고려사항
일부 시스템에서는 추가 의존성이 필요할 수 있습니다. 특히 Linux 시스템에서 다음 패키지를 설치해야 할 수 있습니다:
# Ubuntu/Debian
sudo apt-get install -y build-essential python
Windows에서는 node-gyp 관련 오류가 발생할 수 있으므로 다음 도구가 필요합니다:
- Visual Studio Build Tools
- Python 2.7 또는 3.x
기본 설정
N8N을 설치한 후에는 몇 가지 기본 설정을 통해 보안과 성능을 최적화할 수 있습니다.
환경 변수 설정
N8N은 다양한 환경 변수를 통해 구성할 수 있습니다. 주요 설정 옵션은 다음과 같습니다:
- N8N_PORT: N8N 웹 인터페이스 포트 (기본값: 5678)
- N8N_PROTOCOL: 사용할 프로토콜 (http 또는 https)
- N8N_HOST: 호스트 이름이나 IP 주소
- N8N_BASIC_AUTH_ACTIVE: 기본 인증 활성화 여부 (true/false)
- N8N_ENCRYPTION_KEY: 자격 증명 암호화를 위한 키
- N8N_TIMEZONE: 워크플로우 실행 시간대
보안 구성
N8N의 보안을 강화하기 위한 중요 설정:
기본 인증 활성화:
export N8N_BASIC_AUTH_ACTIVE=true
export N8N_BASIC_AUTH_USER=admin
export N8N_BASIC_AUTH_PASSWORD=secure_password
암호화 키 설정:
export N8N_ENCRYPTION_KEY=your_secure_encryption_key
HTTPS 활성화:
export N8N_PROTOCOL=https
export N8N_SSL_KEY=/path/to/ssl/key.pem
export N8N_SSL_CERT=/path/to/ssl/cert.pem
데이터베이스 구성
기본적으로 N8N은 SQLite 데이터베이스를 사용하지만, 대규모 배포를 위해 PostgreSQL 또는 MySQL을 사용할 수 있습니다.
PostgreSQL 설정:
export DB_TYPE=postgresdb
export DB_POSTGRESDB_HOST=localhost
export DB_POSTGRESDB_PORT=5432
export DB_POSTGRESDB_DATABASE=n8n
export DB_POSTGRESDB_USER=postgres
export DB_POSTGRESDB_PASSWORD=password
MySQL 설정:
export DB_TYPE=mysqldb
export DB_MYSQLDB_HOST=localhost
export DB_MYSQLDB_PORT=3306
export DB_MYSQLDB_DATABASE=n8n
export DB_MYSQLDB_USER=root
export DB_MYSQLDB_PASSWORD=password
N8N 시작하기
이제 N8N을 시작하고 웹 인터페이스에 접속하는 방법을 알아보겠습니다.
N8N 서버 실행
npm으로 설치한 경우:
# 글로벌 설치 시
n8n start
# 로컬 설치 시
npx n8n
Docker로 설치한 경우:
docker start n8n
Docker Compose로 설치한 경우:
docker-compose up -d
웹 인터페이스 접속
N8N 서버가 시작된 후, 웹 브라우저에서 다음 URL로 접속할 수 있습니다:
http://localhost:5678
원격 서버에 설치한 경우 서버의 IP 주소나 도메인 이름을 사용하세요:
http://your-server-ip:5678
초기 설정 마법사
처음 N8N 웹 인터페이스에 접속하면 다음과 같은 설정 과정을 수행해야 합니다:
- 관리자 계정 생성
- 사용 환경 설정 (시간대, 언어 등)
- 필요한 노드 설치
- 첫 번째 워크플로우 생성
문제 해결
N8N 설치 및 실행 중 발생할 수 있는 일반적인 문제와 해결책입니다.
일반적인 오류
포트 충돌 문제:
5678 포트가 이미 사용 중인 경우 다른 포트를 지정할 수 있습니다.
export N8N_PORT=5679
n8n start
데이터베이스 연결 문제:
데이터베이스 연결 정보가 올바른지 확인하고, 데이터베이스 서버가 실행 중인지 확인하세요.
메모리 부족 오류:
Node.js의 메모리 제한을 늘릴 수 있습니다.
export NODE_OPTIONS=--max_old_space_size=4096
n8n start
로그 확인
문제 해결을 위해 N8N 로그를 확인할 수 있습니다.
npm 설치:
n8n start --log-level=debug
Docker 설치:
docker logs n8n
백업 및 복원
워크플로우와 자격 증명을 백업하고 복원하는 방법:
백업:
n8n export:workflow --all --output=workflows-backup.json
n8n export:credentials --all --output=credentials-backup.json
복원:
n8n import:workflow --input=workflows-backup.json
n8n import:credentials --input=credentials-backup.json
자주 묻는 질문
Q: N8N은 무료로 사용할 수 있나요?
A: 네, N8N은 오픈소스이며 Fair-Code 라이선스로 제공됩니다. 자체 호스팅은 무료이지만, 클라우드 호스팅 서비스는 유료로 제공됩니다.
Q: N8N과 Zapier의 차이점은 무엇인가요?
A: N8N은 자체 호스팅이 가능하며 데이터가 외부로 유출되지 않습니다. 또한, 커스텀 노드 개발이 가능하고 워크플로우 실행에 대한 더 많은 제어가 가능합니다. Zapier는 클라우드 기반 서비스로 더 많은 통합을 제공하지만, 모든 데이터가 Zapier 서버를 통과합니다.
Q: N8N을 위한 최소 시스템 요구사항은 무엇인가요?
A: N8N은 비교적 가벼워서 1GB RAM의 소형 서버에서도 실행 가능합니다. 일반적으로 2GB RAM과 1GB 이상의 저장 공간을 권장합니다.
Q: N8N에서 커스텀 노드를 개발할 수 있나요?
A: 네, N8N은 TypeScript로 커스텀 노드를 개발할 수 있는 기능을 제공합니다. 자세한 내용은 공식 문서의 노드 개발 가이드를 참조하세요.
Q: N8N 워크플로우는 어떻게 트리거되나요?
A: N8N 워크플로우는 여러 방법으로 트리거될 수 있습니다. 웹훅(Webhook), 일정(Schedule), 외부 이벤트, 수동 실행 등의 트리거 방식을 지원합니다.
Q: N8N에서 사용자 인증을 구현할 수 있나요?
A: 네, 기본 인증(Basic Authentication)을 활성화하여 사용자 이름과 비밀번호로 액세스를 제한할 수 있습니다. 또한 환경 변수를 통해 더 복잡한 인증 메커니즘을 구성할 수 있습니다.
Q: N8N은 어떤 데이터베이스를 지원하나요?
A: N8N은 기본적으로 SQLite를 사용하지만, PostgreSQL과 MySQL/MariaDB도 지원합니다. 대규모 배포나 고가용성이 필요한 경우 PostgreSQL을 권장합니다.