InfoGrab DocsInfoGrab Docs

n8n 1.0 마이그레이션 가이드

요약

이 문서는 n8n 1.0으로 업데이트하기 전에 꼭 알아두어야 할 내용을 정리한 것입니다. n8n 1.0의 출시는 까다로운 프로덕션 환경에서도 n8n을 쓸 수 있게 하겠다는 목표를 향한 여정의 이정표입니다. 기본 언어는 여전히 JavaScript이지만, 이제 Code node에서 Python을 선택할 수 있고 다양한 Python 모듈도 사용할 수 있습니다.

이 문서는 n8n 1.0으로 업데이트하기 전에 꼭 알아두어야 할 내용을 정리한 것입니다.

n8n 1.0의 출시는 까다로운 프로덕션 환경에서도 n8n을 쓸 수 있게 하겠다는 목표를 향한 여정의 이정표입니다. 지난 4년간 쏟은 노력이 담겨 있으며, n8n을 가장 쉽고 강력하며 다재다능한 자동화 도구로 만드는 결과물입니다. 이제 n8n 1.0은 프로덕션에서 사용할 수 있습니다.

새로운 기능#

Code node에서 Python 지원#

기본 언어는 여전히 JavaScript이지만, 이제 Code node에서 Python을 선택할 수 있고 다양한 Python 모듈도 사용할 수 있습니다. 다만 n8n 1.0 이전에 워크플로에 추가된 Code node에서는 Python을 쓸 수 없습니다.

PR #4295, PR #6209

실행 순서#

n8n 1.0부터 다중 분기 워크플로에 새로운 실행 순서가 적용됩니다.

다중 분기 워크플로에서는 각 분기의 노드를 어떤 순서로 실행할지 n8n이 결정해야 합니다. 이전에는 각 분기의 첫 번째 노드를 먼저 실행하고 두 번째 노드를 실행하는 식(너비 우선)이었습니다. 새 실행 순서는 각 분기를 처음부터 끝까지 실행한 뒤 다음 분기로 넘어갑니다(깊이 우선). 분기는 캔버스 위에서 위에서 아래 순서로 실행되며, 높이가 같으면 가장 왼쪽 분기부터 실행됩니다.

이전에는 다중 입력 노드가 첫 번째 입력으로 데이터를 받기만 하면 실행되었고, 두 번째 입력에 연결된 노드는 데이터를 받지 않아도 자동으로 실행되었습니다. n8n 1.0의 새 실행 순서는 이 동작을 단순화했습니다. 이제 노드는 데이터를 받을 때만 실행되며, 다중 입력 노드는 입력 중 하나 이상에서 데이터를 받아야 실행됩니다.

기존 워크플로는 기존 실행 순서를 유지하고, 새 워크플로는 n8n 1.0 순서로 실행됩니다. 실행 순서는 각 워크플로의 워크플로 설정에서 바꿀 수 있습니다.

PR #4238, PR #6246, PR #6507

더 이상 사용되지 않는 기능#

MySQL 및 MariaDB#

n8n은 저장소 백엔드로서의 MySQL과 MariaDB 지원을 더 이상 권장하지 않습니다(deprecated). 이 데이터베이스를 쓰는 사용자는 소수인데, 개발과 유지 관리에는 계속 공을 들여야 하기 때문입니다. 호환성과 장기 지원을 위해 PostgreSQL로 마이그레이션하는 것을 권장합니다.

PR #6189

EXECUTIONS_PROCESS와 own 모드#

이전에는 EXECUTIONS_PROCESS 환경 변수로 실행을 main 프로세스에서 실행할지 own 프로세스에서 실행할지 지정할 수 있었습니다. 이 옵션과 own 모드는 더 이상 권장되지 않으며 향후 n8n 버전에서 제거될 예정입니다. 코드 복잡도만 높이면서 실익은 크지 않았기 때문입니다. n8n 1.0부터는 main이 새 기본값입니다.

참고로 main 모드에서 실행이 시작되는 속도는 own 모드보다 훨씬 빠릅니다. 다만 워크플로가 사용 가능한 메모리보다 많이 쓰면 worker 스레드만 멈추는 것이 아니라 n8n 애플리케이션 전체가 멈출 수 있습니다. 이를 방지하려면 시스템 리소스를 충분히 할당하거나, 큐 모드를 설정해 여러 worker에 실행을 분산하세요.

PR #6196

호환성을 깨는 변경#

Docker#

권한 변경#

Docker 기반 배포에서는 이제 n8n 프로세스가 root가 아닌 node 사용자로 실행됩니다. 이 변경은 보안을 강화하기 위한 것입니다.

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 이미지를 제거했습니다. 이 이미지를 쓰고 있었다면 사용 중인 이미지를 바꿔야 합니다. 해당 이미지를 기반으로 직접 만든 커스텀 이미지를 쓰는 게 아니라면 오류가 발생하지는 않을 것입니다.

진입점(entrypoint) 변경#

컨테이너의 진입점이 바뀌었고 더 이상 n8n 명령을 직접 지정할 필요가 없습니다. 이전에 n8n worker --concurrency=5로 실행했다면 이제는 worker --concurrency=5입니다.

PR #6365

표현식 오류로 인한 워크플로 실패#

표현식에 구문 오류나 런타임 오류(예: 존재하지 않는 노드를 참조)가 있으면 워크플로 실행이 실패할 수 있습니다. 표현식은 이미 프론트엔드에서 오류를 발생시켰지만, 이 변경으로 백엔드에서도 오류를 발생시킵니다. 이전에는 백엔드에서 조용히 무시됐습니다. 실패하는 워크플로의 알림을 받으려면 n8n은 워크플로 설정에서 "오류 워크플로(error workflow)"를 설정하는 것을 권장합니다.

PR #6352

소유자(owner) 계정 필수화#

이 변경으로 사용자 관리가 필수가 되고, BasicAuth나 External JWT 같은 다른 인증 방식은 지원이 종료됩니다. n8n.cloud나 커스텀 플랜에서 허용되는 사용자 수는 요금제에 따라 계속 달라집니다.

PR #6362

커스텀 노드 설치 디렉터리#

n8n은 이제 전역 node_modules 디렉터리에서 커스텀 노드를 로드하지 않습니다. 대신 ~/.n8n/custom(또는 N8N_CUSTOM_EXTENSIONS로 지정한 디렉터리)에 설치(또는 링크)해야 합니다. npm 패키지 형태의 커스텀 노드는 ~/.n8n/nodes에 위치합니다. npm link로 전역 node_modules에 연결해 둔 커스텀 노드가 있다면, ~/.n8n/nodes에 다시 연결해야 합니다.

PR #6396

WebSocket#

N8N_PUSH_BACKEND 환경 변수로 사용자 인터페이스에 업데이트를 푸시하는 두 가지 방법(sse와 websocket) 중 하나를 설정할 수 있습니다. n8n 1.0부터는 websocket이 기본입니다.

PR #6196

날짜 변환 함수#

n8n은 날짜를 다루는 다양한 변환 함수를 제공합니다. 이 함수들은 JavaScript Date나 Luxon DateTime 객체를 반환할 수 있습니다. 새 동작에서는 반환 타입이 항상 입력과 같습니다. Date에 변환 함수를 호출하면 Date를 반환하고, DateTime 객체에 호출하면 DateTime 객체를 반환합니다.

이 변경의 영향을 받을 수 있는 워크플로와 노드를 찾으려면 이 유틸리티 워크플로를 사용하세요.

날짜 변환 함수에 관한 자세한 내용은 공식 문서를 참조하세요.

PR #6435

실행 데이터 보관#

n8n 1.0부터는 성공·실패·수동 실행을 포함한 모든 워크플로 실행이 기본으로 저장됩니다. 이 설정은 각 워크플로의 "워크플로 설정"에서 바꿀 수 있고, 해당 환경 변수로 전역 설정할 수도 있습니다. 또한 EXECUTIONS_DATA_PRUNE이 기본으로 활성화되며 EXECUTIONS_DATA_PRUNE_MAX_COUNT는 10,000으로 설정됩니다. 이 기본값은 SQLite 사용 시 성능 저하를 막기 위한 것입니다. 자신의 요구사항과 시스템 용량에 맞게 설정하세요.

PR #6577

N8N_USE_DEPRECATED_REQUEST_LIB 제거#

레거시 request 라이브러리는 이미 한동안 권장되지 않았습니다. n8n 1.0부터 N8N_USE_DEPRECATED_REQUEST_LIB 환경 변수를 설정해 HTTP Request node에서 이 라이브러리로 폭백하는 기능이 완전히 제거됐습니다. HTTP Request node는 이제 항상 새 HttpRequest 인터페이스를 사용합니다.

커스텀 노드를 만드는 경우 새 인터페이스로 마이그레이션하는 방법은 HTTP request helpers를 참조하세요.

PR #6413

WEBHOOK_TUNNEL_URL 제거#

n8n 0.227.0부터 WEBHOOK_TUNNEL_URL 설정 항목의 이름이 WEBHOOK_URL로 바뀌었습니다. n8n 1.0에서는 WEBHOOK_TUNNEL_URL이 제거됐습니다. 설정을 새 이름에 맞게 바꾸세요. 이 설정에 관한 자세한 내용은 문서를 참조하세요.

PR #1408

Node 16 지원 종료#

이제 n8n에는 Node 18.17.0 이상이 필요합니다.

n8n 1.0으로 업데이트하기#

  1. n8n을 전체 백업하세요.
  2. n8n은 n8n 1.x로 업데이트하기 전에 가장 최신의 n8n 0.x 릴리즈로 먼저 업데이트하는 것을 권장합니다. 그래야 잠재적인 문제를 올바른 릴리즈에 귀속시킬 수 있습니다. n8n 0.x가 문제 없이 시작되는 것을 확인한 후 다음 단계로 넘어가세요.
  3. 위의 더 이상 사용되지 않는 기능과 호환성을 깨는 변경 섹션을 주의 깊게 읽고 자신의 환경에 미칠 영향을 평가하세요.
  4. n8n 1.0으로 업데이트하세요:
    • 베타 기간 동안(2023년 7월 24일 이전): Docker를 사용하는 경우 next Docker 이미지를 받으세요.
    • 2023년 7월 24일 이후: Docker를 사용하는 경우 latest Docker 이미지를 받으세요.
  5. 문제가 발생하면 이전 n8n 버전을 다시 배포하고 백업을 복원하세요.

문제 보고#

n8n 1.0으로 업데이트하는 과정에서 문제가 발생하면 커뮤니티 포럼에서 도움을 요청하세요.

감사합니다#

지속적인 지원과 피드백을 본내 주신 모든 사용자에게 감사드립니다. 여러분의 기여는 n8n을 가능한 한 좋은 자동화 도구로 만드는 데 값을 잴 수 없습니다. n8n 1.0 출시와 그 이후에도 함께하게 되어 기쁩니다. 함께해 주셔서 감사합니다!

n8n 1.0 마이그레이션 가이드

n8n v2.39
원문 보기

요약

이 문서는 n8n 1.0으로 업데이트하기 전에 꼭 알아두어야 할 내용을 정리한 것입니다. n8n 1.0의 출시는 까다로운 프로덕션 환경에서도 n8n을 쓸 수 있게 하겠다는 목표를 향한 여정의 이정표입니다. 기본 언어는 여전히 JavaScript이지만, 이제 Code node에서 Python을 선택할 수 있고 다양한 Python 모듈도 사용할 수 있습니다.

이 문서는 n8n 1.0으로 업데이트하기 전에 꼭 알아두어야 할 내용을 정리한 것입니다.

n8n 1.0의 출시는 까다로운 프로덕션 환경에서도 n8n을 쓸 수 있게 하겠다는 목표를 향한 여정의 이정표입니다. 지난 4년간 쏟은 노력이 담겨 있으며, n8n을 가장 쉽고 강력하며 다재다능한 자동화 도구로 만드는 결과물입니다. 이제 n8n 1.0은 프로덕션에서 사용할 수 있습니다.

새로운 기능#

Code node에서 Python 지원#

기본 언어는 여전히 JavaScript이지만, 이제 Code node에서 Python을 선택할 수 있고 다양한 Python 모듈도 사용할 수 있습니다. 다만 n8n 1.0 이전에 워크플로에 추가된 Code node에서는 Python을 쓸 수 없습니다.

PR #4295, PR #6209

실행 순서#

n8n 1.0부터 다중 분기 워크플로에 새로운 실행 순서가 적용됩니다.

다중 분기 워크플로에서는 각 분기의 노드를 어떤 순서로 실행할지 n8n이 결정해야 합니다. 이전에는 각 분기의 첫 번째 노드를 먼저 실행하고 두 번째 노드를 실행하는 식(너비 우선)이었습니다. 새 실행 순서는 각 분기를 처음부터 끝까지 실행한 뒤 다음 분기로 넘어갑니다(깊이 우선). 분기는 캔버스 위에서 위에서 아래 순서로 실행되며, 높이가 같으면 가장 왼쪽 분기부터 실행됩니다.

이전에는 다중 입력 노드가 첫 번째 입력으로 데이터를 받기만 하면 실행되었고, 두 번째 입력에 연결된 노드는 데이터를 받지 않아도 자동으로 실행되었습니다. n8n 1.0의 새 실행 순서는 이 동작을 단순화했습니다. 이제 노드는 데이터를 받을 때만 실행되며, 다중 입력 노드는 입력 중 하나 이상에서 데이터를 받아야 실행됩니다.

기존 워크플로는 기존 실행 순서를 유지하고, 새 워크플로는 n8n 1.0 순서로 실행됩니다. 실행 순서는 각 워크플로의 워크플로 설정에서 바꿀 수 있습니다.

PR #4238, PR #6246, PR #6507

더 이상 사용되지 않는 기능#

MySQL 및 MariaDB#

n8n은 저장소 백엔드로서의 MySQL과 MariaDB 지원을 더 이상 권장하지 않습니다(deprecated). 이 데이터베이스를 쓰는 사용자는 소수인데, 개발과 유지 관리에는 계속 공을 들여야 하기 때문입니다. 호환성과 장기 지원을 위해 PostgreSQL로 마이그레이션하는 것을 권장합니다.

PR #6189

EXECUTIONS_PROCESS와 own 모드#

이전에는 EXECUTIONS_PROCESS 환경 변수로 실행을 main 프로세스에서 실행할지 own 프로세스에서 실행할지 지정할 수 있었습니다. 이 옵션과 own 모드는 더 이상 권장되지 않으며 향후 n8n 버전에서 제거될 예정입니다. 코드 복잡도만 높이면서 실익은 크지 않았기 때문입니다. n8n 1.0부터는 main이 새 기본값입니다.

참고로 main 모드에서 실행이 시작되는 속도는 own 모드보다 훨씬 빠릅니다. 다만 워크플로가 사용 가능한 메모리보다 많이 쓰면 worker 스레드만 멈추는 것이 아니라 n8n 애플리케이션 전체가 멈출 수 있습니다. 이를 방지하려면 시스템 리소스를 충분히 할당하거나, 큐 모드를 설정해 여러 worker에 실행을 분산하세요.

PR #6196

호환성을 깨는 변경#

Docker#

권한 변경#

Docker 기반 배포에서는 이제 n8n 프로세스가 root가 아닌 node 사용자로 실행됩니다. 이 변경은 보안을 강화하기 위한 것입니다.

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 이미지를 제거했습니다. 이 이미지를 쓰고 있었다면 사용 중인 이미지를 바꿔야 합니다. 해당 이미지를 기반으로 직접 만든 커스텀 이미지를 쓰는 게 아니라면 오류가 발생하지는 않을 것입니다.

진입점(entrypoint) 변경#

컨테이너의 진입점이 바뀌었고 더 이상 n8n 명령을 직접 지정할 필요가 없습니다. 이전에 n8n worker --concurrency=5로 실행했다면 이제는 worker --concurrency=5입니다.

PR #6365

표현식 오류로 인한 워크플로 실패#

표현식에 구문 오류나 런타임 오류(예: 존재하지 않는 노드를 참조)가 있으면 워크플로 실행이 실패할 수 있습니다. 표현식은 이미 프론트엔드에서 오류를 발생시켰지만, 이 변경으로 백엔드에서도 오류를 발생시킵니다. 이전에는 백엔드에서 조용히 무시됐습니다. 실패하는 워크플로의 알림을 받으려면 n8n은 워크플로 설정에서 "오류 워크플로(error workflow)"를 설정하는 것을 권장합니다.

PR #6352

소유자(owner) 계정 필수화#

이 변경으로 사용자 관리가 필수가 되고, BasicAuth나 External JWT 같은 다른 인증 방식은 지원이 종료됩니다. n8n.cloud나 커스텀 플랜에서 허용되는 사용자 수는 요금제에 따라 계속 달라집니다.

PR #6362

커스텀 노드 설치 디렉터리#

n8n은 이제 전역 node_modules 디렉터리에서 커스텀 노드를 로드하지 않습니다. 대신 ~/.n8n/custom(또는 N8N_CUSTOM_EXTENSIONS로 지정한 디렉터리)에 설치(또는 링크)해야 합니다. npm 패키지 형태의 커스텀 노드는 ~/.n8n/nodes에 위치합니다. npm link로 전역 node_modules에 연결해 둔 커스텀 노드가 있다면, ~/.n8n/nodes에 다시 연결해야 합니다.

PR #6396

WebSocket#

N8N_PUSH_BACKEND 환경 변수로 사용자 인터페이스에 업데이트를 푸시하는 두 가지 방법(sse와 websocket) 중 하나를 설정할 수 있습니다. n8n 1.0부터는 websocket이 기본입니다.

PR #6196

날짜 변환 함수#

n8n은 날짜를 다루는 다양한 변환 함수를 제공합니다. 이 함수들은 JavaScript Date나 Luxon DateTime 객체를 반환할 수 있습니다. 새 동작에서는 반환 타입이 항상 입력과 같습니다. Date에 변환 함수를 호출하면 Date를 반환하고, DateTime 객체에 호출하면 DateTime 객체를 반환합니다.

이 변경의 영향을 받을 수 있는 워크플로와 노드를 찾으려면 이 유틸리티 워크플로를 사용하세요.

날짜 변환 함수에 관한 자세한 내용은 공식 문서를 참조하세요.

PR #6435

실행 데이터 보관#

n8n 1.0부터는 성공·실패·수동 실행을 포함한 모든 워크플로 실행이 기본으로 저장됩니다. 이 설정은 각 워크플로의 "워크플로 설정"에서 바꿀 수 있고, 해당 환경 변수로 전역 설정할 수도 있습니다. 또한 EXECUTIONS_DATA_PRUNE이 기본으로 활성화되며 EXECUTIONS_DATA_PRUNE_MAX_COUNT는 10,000으로 설정됩니다. 이 기본값은 SQLite 사용 시 성능 저하를 막기 위한 것입니다. 자신의 요구사항과 시스템 용량에 맞게 설정하세요.

PR #6577

N8N_USE_DEPRECATED_REQUEST_LIB 제거#

레거시 request 라이브러리는 이미 한동안 권장되지 않았습니다. n8n 1.0부터 N8N_USE_DEPRECATED_REQUEST_LIB 환경 변수를 설정해 HTTP Request node에서 이 라이브러리로 폭백하는 기능이 완전히 제거됐습니다. HTTP Request node는 이제 항상 새 HttpRequest 인터페이스를 사용합니다.

커스텀 노드를 만드는 경우 새 인터페이스로 마이그레이션하는 방법은 HTTP request helpers를 참조하세요.

PR #6413

WEBHOOK_TUNNEL_URL 제거#

n8n 0.227.0부터 WEBHOOK_TUNNEL_URL 설정 항목의 이름이 WEBHOOK_URL로 바뀌었습니다. n8n 1.0에서는 WEBHOOK_TUNNEL_URL이 제거됐습니다. 설정을 새 이름에 맞게 바꾸세요. 이 설정에 관한 자세한 내용은 문서를 참조하세요.

PR #1408

Node 16 지원 종료#

이제 n8n에는 Node 18.17.0 이상이 필요합니다.

n8n 1.0으로 업데이트하기#

  1. n8n을 전체 백업하세요.
  2. n8n은 n8n 1.x로 업데이트하기 전에 가장 최신의 n8n 0.x 릴리즈로 먼저 업데이트하는 것을 권장합니다. 그래야 잠재적인 문제를 올바른 릴리즈에 귀속시킬 수 있습니다. n8n 0.x가 문제 없이 시작되는 것을 확인한 후 다음 단계로 넘어가세요.
  3. 위의 더 이상 사용되지 않는 기능과 호환성을 깨는 변경 섹션을 주의 깊게 읽고 자신의 환경에 미칠 영향을 평가하세요.
  4. n8n 1.0으로 업데이트하세요:
    • 베타 기간 동안(2023년 7월 24일 이전): Docker를 사용하는 경우 next Docker 이미지를 받으세요.
    • 2023년 7월 24일 이후: Docker를 사용하는 경우 latest Docker 이미지를 받으세요.
  5. 문제가 발생하면 이전 n8n 버전을 다시 배포하고 백업을 복원하세요.

문제 보고#

n8n 1.0으로 업데이트하는 과정에서 문제가 발생하면 커뮤니티 포럼에서 도움을 요청하세요.

감사합니다#

지속적인 지원과 피드백을 본내 주신 모든 사용자에게 감사드립니다. 여러분의 기여는 n8n을 가능한 한 좋은 자동화 도구로 만드는 데 값을 잴 수 없습니다. n8n 1.0 출시와 그 이후에도 함께하게 되어 기쁩니다. 함께해 주셔서 감사합니다!