n8n v1.0 마이그레이션 가이드#
이 문서는 n8n의 1.0 버전으로 업데이트하기 전에 알아야 할 사항에 대한 요약을 제공합니다.
n8n 1.0의 출시 마일스톤은 n8n이 요구되는 생산 환경에서 사용 가능하도록 하기 위한 여정의 이정표입니다. 1.0 버전은 n8n을 가장 접근 가능하고, 강력하며, 다재다능한 자동화 도구로 만들기 위해 지난 4년 동안 투자된 노력의 결실을 나타냅니다. n8n 1.0은 이제 생산에서 사용될 준비가 되어 있습니다.
새로운 기능#
코드 노드에서의 Python 지원#
비록 JavaScript가 기본 언어로 남아있지만, 이제 Code node에서 Python을 옵션으로 선택할 수 있으며, 많은 Python 모듈도 사용할 수 있습니다. Python은 v1.0 이전에 워크플로에 추가된 코드 노드에서는 사용할 수 없다는 점에 유의하세요.
실행 순서#
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
이 새로운 기본값이 됩니다.
main
모드에서 실행이 own
모드보다 훨씬 빠르게 시작된다는 점에 유의하세요. 그러나 워크플로우가 사용 가능한 메모리보다 더 많은 메모리를 소비할 경우, 전체 n8n 애플리케이션이 중단될 수 있으며 이는 워커 스레드만 중단되는 것이 아닙니다. 이를 완화하기 위해 충분한 시스템 리소스를 할당하거나 queue mode로 구성하여 여러 워커 간에 실행을 분산시키는 것이 중요합니다.
주요 변경 사항#
Docker#
권한 변경#
Docker 기반 배포를 사용할 때 n8n 프로세스는 이제 root
가 아닌 node
사용자에 의해 실행됩니다. 이 변경 사항은 보안을 강화합니다.
n8n을 시작할 때 n8n 컨테이너 로그에서 권한 오류가 발생하면 Docker 호스트에서 다음 명령어를 실행하여 권한을 업데이트해야 할 수 있습니다:
1 |
|
이미지 제거#
Debian 및 RHEL 이미지를 제거했습니다. 이 이미지를 사용하고 있었다면 사용하는 이미지를 변경해야 합니다. 이는 이러한 이미지를 기반으로 맞춤 이미지를 만들지 않는 한 오류가 발생하지 않아야 합니다.
진입점 변경#
컨테이너의 진입점이 변경되었으며 이제 n8n 명령을 지정할 필요가 없습니다. 이전에 n8n worker --concurrency=5
를 실행하고 있었다면 이제는 worker --concurrency=5
입니다.
표현식 오류로 인한 워크플로우 실패#
워크플로우 실행은 구문 또는 런타임 오류로 인해 실패할 수 있습니다. 예를 들어 존재하지 않는 노드를 참조하는 경우가 있습니다. 표현식은 이미 프론트엔드에서 오류를 발생시키지만, 이 변경 사항은 n8n이 백엔드에서도 오류를 발생시켜 이전에 조용히 무시되었던 오류를 처리하도록 보장합니다. 실패하는 워크플로우에 대한 알림을 받으려면 n8n은 워크플로우 설정에서 "오류 워크플로우"를 설정할 것을 권장합니다.
필수 소유자 계정#
이 변경 사항은 User Management를 필수로 만들며 BasicAuth 및 External 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
이 기본 방법입니다.
Date transformation functions#
n8n은 날짜에 대해 작동하는 다양한 변환 함수를 제공합니다. 이러한 함수는 JavaScript의 Date
또는 Luxon의 DateTime
객체 중 하나를 반환할 수 있습니다. 새로운 동작으로 인해 반환 유형은 항상 입력과 일치합니다. Date
에서 날짜 변환 함수를 호출하면 Date
를 반환하고, DateTime
객체에서 호출하면 DateTime
객체를 반환합니다.
이 변경으로 인해 영향을 받을 수 있는 워크플로 및 노드를 식별하려면 이 유틸리티 워크플로를 사용할 수 있습니다.
날짜 변환 함수에 대한 자세한 내용은 공식 문서를 참조하세요.
Execution data retention#
n8n 1.0부터 모든 성공, 실패 및 수동 워크플로 실행은 기본적으로 저장됩니다. 이러한 설정은 "워크플로 설정"에서 각 워크플로에 대해 수정하거나, 해당 환경 변수를 사용하여 전역적으로 수정할 수 있습니다. 또한, EXECUTIONS_DATA_PRUNE
설정은 기본적으로 활성화되며, EXECUTIONS_DATA_PRUNE_MAX_COUNT
는 10,000으로 설정됩니다. 이러한 기본 설정은 SQLite 사용 시 성능 저하를 방지하기 위해 설계되었습니다. 개인의 요구 사항 및 시스템 용량에 따라 이를 구성해야 합니다.
Removed N8N_USE_DEPRECATED_REQUEST_LIB#
구식 request
라이브러리는 한동안 더 이상 사용되지 않았습니다. n8n 1.0부터 N8N_USE_DEPRECATED_REQUEST_LIB
환경 변수를 설정하여 HTTP 요청 노드에서 이를 사용할 수 있는 기능이 완전히 제거되었습니다. HTTP 요청 노드는 이제 항상 새로운 HttpRequest
인터페이스를 사용합니다.
사용자 정의 노드를 빌드하는 경우, HTTP request helpers를 참조하여 새로운 인터페이스로 마이그레이션하는 방법에 대한 자세한 정보를 확인하세요.
Removed 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 릴리스로 업데이트할 것을 권장합니다. 이를 통해 잠재적인 문제를 올바른 릴리스로 pinpoint할 수 있습니다. n8n 0.x가 문제 없이 시작되는 것을 확인한 후 다음 단계로 진행하세요.
- 귀하의 설정에 어떻게 영향을 미칠 수 있는지 평가하기 위해 위의 Deprecations 및 Breaking Changes 섹션을 주의 깊게 읽으세요.
- n8n 1.0으로 업데이트하기:
- 베타 기간(2023년 7월 24일 이전): Docker를 사용하는 경우
next
Docker 이미지를 가져옵니다. - 2023년 7월 24일 이후: Docker를 사용하는 경우
latest
Docker 이미지를 가져옵니다.
- 베타 기간(2023년 7월 24일 이전): Docker를 사용하는 경우
- 문제가 발생하면 이전 n8n 버전을 재배포하고 백업을 복원하세요.
문제 보고#
n8n 1.0으로 업데이트하는 과정에서 문제를 겪으신 경우, 커뮤니티 forum에서 도움을 요청하세요.
감사합니다#
모든 사용자분들의 지속적인 지원과 피드백에 감사의 뜻을 전하고자 합니다. 여러분의 기여는 n8n을 가능한 최고의 자동화 도구로 만드는 데 매우 중요합니다. 우리는 1.0 버전 출시 이후에도 여러분과 함께 일할 수 있기를 기대하고 있습니다. 우리의 여정에 함께 해주셔서 감사합니다!