n8n v1.0 마이그레이션 가이드
이 문서는 n8n 버전 1.0으로 업데이트하기 전에 알아야 할 사항을 요약합니다. n8n 1.0의 출시는 까다로운 프로덕션 환경에서 n8n을 사용할 수 있도록 하는 n8n의 여정에서 중요한 이정표입니다. JavaScript가 기본 언어로 유지되지만, 이제 Code node에서 Python을 옵션으로 선택할 수 있으며 다양한 Python 모듈도 활용할 수 있습니다.
이 문서는 n8n 버전 1.0으로 업데이트하기 전에 알아야 할 사항을 요약합니다.
n8n 1.0의 출시는 까다로운 프로덕션 환경에서 n8n을 사용할 수 있도록 하는 n8n의 여정에서 중요한 이정표입니다. 버전 1.0은 n8n을 가장 접근하기 쉽고, 강력하며, 다재다능한 자동화 도구로 만들기 위해 지난 4년 동안 투자된 노력을 대표합니다. n8n 1.0은 이제 프로덕션 환경에서 사용할 준비가 되었습니다.
새 기능#
Code node의 Python 지원#
JavaScript가 기본 언어로 유지되지만, 이제 Code node에서 Python을 옵션으로 선택할 수 있으며 다양한 Python 모듈도 활용할 수 있습니다. 단, v1.0 이전에 워크플로에 추가된 Code node에서는 Python을 사용할 수 없습니다.
실행 순서#
n8n 1.0은 다중 브랜치 워크플로를 위한 새로운 실행 순서를 도입합니다:
다중 브랜치 워크플로에서 n8n은 브랜치의 노드를 실행할 순서를 결정해야 합니다. 이전에는 n8n이 각 브랜치의 첫 번째 노드를 실행한 후, 각 브랜치의 두 번째 노드를 실행하는 방식으로 진행했습니다(너비 우선). 새로운 실행 순서는 각 브랜치가 다음 브랜치를 시작하기 전에 완전히 실행되도록 보장합니다(깊이 우선). 브랜치는 캔버스에서 위에서 아래로의 위치에 따라 실행됩니다. 두 브랜치가 같은 높이에 있으면 왼쪽 브랜치가 먼저 실행됩니다.
n8n은 다중 입력 노드가 첫 번째 입력에서 데이터를 수신하는 한 실행했었습니다. 다중 입력 노드의 두 번째 입력에 연결된 노드는 데이터 수신 여부와 관계없이 자동으로 실행되었습니다. n8n 1.0에서 도입된 새로운 실행 순서는 이 동작을 단순화합니다: 이제 노드는 데이터를 수신할 때만 실행되며, 다중 입력 노드는 입력 중 하나 이상에서 데이터를 받아야 실행됩니다.
기존 워크플로는 레거시 순서를 사용하고, 새 워크플로는 v1 순서로 실행됩니다. 워크플로 설정에서 각 워크플로의 실행 순서를 구성할 수 있습니다.
더 이상 사용되지 않는 기능#
MySQL 및 MariaDB#
n8n은 n8n의 스토리지 백엔드로서 MySQL 및 MariaDB에 대한 지원을 더 이상 사용하지 않습니다. 이러한 데이터베이스 시스템은 소수의 사용자만 사용하지만 지속적인 개발 및 유지 관리 노력이 필요합니다. n8n은 더 나은 호환성과 장기적인 지원을 위해 PostgreSQL로 마이그레이션할 것을 권장합니다.
EXECUTIONS_PROCESS 및 "own" 모드#
이전에는 EXECUTIONS_PROCESS 환경 변수를 사용하여 실행을 main 프로세스에서 실행할지 own 프로세스에서 실행할지 지정할 수 있었습니다. 이 옵션과 own 모드는 이제 더 이상 사용되지 않으며 향후 n8n 버전에서 제거될 예정입니다. 이는 한계적인 이점을 제공하면서 코드 복잡성을 증가시키기 때문입니다. n8n 1.0부터 main이 새로운 기본값이 됩니다.
실행은 own 모드보다 main 모드에서 훨씬 빠르게 시작됩니다. 그러나 워크플로가 사용 가능한 것보다 더 많은 메모리를 소비하면 워커 스레드만 종료되는 것이 아니라 전체 n8n 애플리케이션이 충돌할 수 있습니다. 이를 완화하려면 충분한 시스템 리소스를 할당하거나 실행을 여러 워커에 분산하기 위해 큐 모드를 구성해야 합니다.
주요 변경 사항#
Docker#
권한 변경#
Docker 기반 배포를 사용할 때, n8n 프로세스는 이제 root 대신 node 사용자로 실행됩니다. 이 변경으로 보안이 강화됩니다.
n8n을 시작할 때 n8n 컨테이너 로그에 권한 오류가 나타나면, Docker 호스트에서 다음 명령을 실행하여 권한을 업데이트해야 할 수도 있습니다:
docker run --rm -it --user root -v ~/.n8n:/home/node/.n8n --entrypoint chown n8nio/base:16 -R node:node /home/node/.n8n
이미지 제거#
Debian 및 RHEL 이미지가 제거되었습니다. 이러한 이미지를 사용하고 있었다면 사용하는 이미지를 변경해야 합니다. 해당 이미지 중 하나를 기반으로 커스텀 이미지를 만들지 않았다면 오류가 발생하지 않을 것입니다.
엔트리포인트 변경#
컨테이너의 엔트리포인트가 변경되었으며 더 이상 n8n 명령을 지정할 필요가 없습니다. 이전에 n8n worker --concurrency=5를 실행했다면 이제는 worker --concurrency=5로 사용합니다.
표현식 오류로 인한 워크플로 실패#
존재하지 않는 노드를 참조하는 표현식과 같은 구문 또는 런타임 오류로 인해 워크플로 실행이 실패할 수 있습니다. 표현식은 이미 프론트엔드에서 오류를 발생시키지만, 이 변경으로 n8n은 백엔드에서도 오류를 발생시키게 됩니다(이전에는 자동으로 무시되었습니다). 실패하는 워크플로에 대한 알림을 받으려면 워크플로 설정에서 "오류 워크플로"를 설정하는 것을 권장합니다.
필수 소유자 계정#
이 변경으로 사용자 관리가 필수가 되고 BasicAuth 및 외부 JWT와 같은 다른 인증 방법에 대한 지원이 제거됩니다. n8n.cloud 또는 사용자 지정 플랜에서 허용되는 사용자 수는 구독에 따라 여전히 다를 수 있습니다.
커스텀 노드 설치 디렉토리#
n8n은 더 이상 전역 node_modules 디렉토리에서 커스텀 노드를 로드하지 않습니다. 대신 ~/.n8n/custom(또는 N8N_CUSTOM_EXTENSIONS로 정의된 디렉토리)에 설치(또는 링크)해야 합니다. npm 패키지인 커스텀 노드는 ~/.n8n/nodes에 위치합니다.
전역 node_modules 디렉토리에 npm link를 사용하여 링크된 커스텀 노드가 있는 경우, ~/.n8n/nodes에 다시 링크해야 합니다.
WebSockets#
N8N_PUSH_BACKEND 환경 변수를 사용하여 사용자 인터페이스에 업데이트를 푸시하는 두 가지 가능한 방법 중 하나를 구성할 수 있습니다: sse 및 websocket. n8n 1.0부터 websocket이 기본 방법입니다.
날짜 변환 함수#
n8n은 날짜에 작동하는 다양한 변환 함수를 제공합니다. 이러한 함수는 JavaScript Date 또는 Luxon DateTime 객체 중 하나를 반환할 수 있습니다. 새로운 동작으로 반환 유형은 항상 입력과 일치합니다. Date에서 날짜 변환 함수를 호출하면 Date를 반환합니다. 마찬가지로 DateTime 객체에서 호출하면 DateTime 객체를 반환합니다.
이 변경에 영향을 받을 수 있는 워크플로 및 노드를 식별하려면 이 유틸리티 워크플로를 사용할 수 있습니다.
날짜 변환 함수에 대한 자세한 내용은 공식 문서를 참조하세요.
실행 데이터 보존#
n8n 1.0부터 성공, 실패, 수동 워크플로 실행이 기본적으로 모두 저장됩니다. 이러한 설정은 "워크플로 설정"에서 각 워크플로마다 수정하거나 각 환경 변수를 사용하여 전역적으로 수정할 수 있습니다. 또한 EXECUTIONS_DATA_PRUNE 설정이 기본적으로 활성화되며, EXECUTIONS_DATA_PRUNE_MAX_COUNT는 10,000으로 설정됩니다. 이러한 기본 설정은 SQLite 사용 시 성능 저하를 방지하기 위해 설계되었습니다. 개별 요구 사항 및 시스템 용량에 따라 구성해야 합니다.
N8N_USE_DEPRECATED_REQUEST_LIB 제거#
레거시 request 라이브러리는 오래전부터 더 이상 사용되지 않게 되었습니다. n8n 1.0부터 N8N_USE_DEPRECATED_REQUEST_LIB 환경 변수를 설정하여 HTTP Request node에서 이 라이브러리로 대체하는 기능이 완전히 제거되었습니다. HTTP Request node는 이제 항상 새로운 HttpRequest 인터페이스를 사용합니다.
커스텀 노드를 빌드하는 경우, 새 인터페이스로 마이그레이션하는 방법에 대한 자세한 내용은 HTTP request helpers를 참조하세요.
WEBHOOK_TUNNEL_URL 제거#
버전 0.227.0부터 n8n은 WEBHOOK_TUNNEL_URL 구성 옵션의 이름을 WEBHOOK_URL로 변경했습니다. n8n 1.0에서는 WEBHOOK_TUNNEL_URL이 제거되었습니다. 새 이름을 반영하도록 설정을 업데이트하세요. 이 구성 옵션에 대한 자세한 내용은 문서를 참조하세요.
Node 16 지원 제거#
n8n은 이제 Node 18.17.0 이상이 필요합니다.
n8n 1.0으로 업데이트#
- n8n의 전체 백업을 만드세요.
- n8n은 n8n 1.x로 업데이트하기 전에 최신 n8n 0.x 릴리스로 업데이트할 것을 권장합니다. 이렇게 하면 잠재적인 문제를 올바른 릴리스로 정확히 파악할 수 있습니다. n8n 0.x가 문제 없이 시작되는지 확인한 후 다음 단계로 진행하세요.
- 위의 더 이상 사용되지 않는 기능 및 주요 변경 사항 섹션을 주의 깊게 읽고 이것이 설정에 어떤 영향을 미칠 수 있는지 평가하세요.
- n8n 1.0으로 업데이트:
- 베타 기간 중 (2023년 7월 24일 이전): Docker를 사용하는 경우
nextDocker 이미지를 풀합니다. - 2023년 7월 24일 이후: Docker를 사용하는 경우
latestDocker 이미지를 풀합니다.
- 베타 기간 중 (2023년 7월 24일 이전): Docker를 사용하는 경우
- 문제가 발생하면 이전 n8n 버전을 재배포하고 백업을 복원하세요.
문제 보고#
n8n 1.0으로 업데이트하는 과정에서 문제가 발생하면 커뮤니티 포럼에서 도움을 구하세요.
감사의 말#
지속적인 지원과 피드백을 주신 모든 사용자분들께 감사의 말씀을 전하고자 합니다. 여러분의 기여는 n8n을 최고의 자동화 도구로 만드는 데 없어서는 안 될 소중한 것입니다. 버전 1.0의 출시와 그 이후를 향해 나아가면서 여러분과 함께 계속 작업하게 되어 기쁩니다. 저희 여정의 일부가 되어 주셔서 감사합니다!
