콘텐츠로 이동
📣 인포그랩에서 OpenAI 기술 기반으로 자체 개발한 자동화 번역 프로그램을 통해 n8n 공식 문서의 한글판을 국내 최초로 제공합니다.

노드 버전 관리#

n8n은 노드 버전 관리를 지원합니다. 새로운 버전을 도입하여 기존 동작을 방해하지 않고 기존 노드에 대한 변경을 할 수 있습니다.

n8n이 어떤 노드 버전을 로드할지 결정하는 방법을 인식하세요:

  • 사용자가 버전 1을 사용하여 워크플로를 생성하고 저장하면, n8n은 해당 워크플로에서 계속해서 버전 1을 사용하며, 노드의 버전 2를 생성하고 게시하더라도 마찬가지입니다.
  • 사용자가 새로운 워크플로를 생성하고 노드를 탐색할 때, n8n은 항상 최신 버전의 노드를 로드합니다.

노드 스타일에 의해 제한된 버전 관리 유형

선언적 스타일을 사용하여 노드를 구축하는 경우 전체 버전 관리를 사용할 수 없습니다.

경량 버전 관리#

모든 노드 유형에서 사용할 수 있습니다.

하나의 노드는 여러 버전을 포함할 수 있으며, 이를 통해 코드 중복 없이 소규모 버전 증가가 가능합니다. 이 기능을 사용하려면:

  1. version 매개변수를 배열로 변경하고, 기존 버전을 포함하여 버전 번호를 추가합니다.
  2. 그런 다음, displayOptions의 모든 객체에서 @version으로 버전 매개변수에 접근할 수 있습니다(어떤 버전으로 n8n이 객체를 표시할지 제어하기 위해). 또한, const nodeVersion = this.getNode().typeVersion;를 사용하여 함수에서 버전을 쿼리할 수 있습니다.

예를 들어, 선언적 노드 튜토리얼에서 NasaPics 노드에 버전 관리를 추가하려고 한다고 가정하면, n8n이 해당 리소스를 노드의 버전 2에서만 표시하도록 구성합니다. 기본 NasaPics.node.ts 파일에서:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
    displayName: 'NASA Pics',
    name: 'NasaPics',
    icon: 'file:nasapics.svg',
    // 사용 가능한 버전을 나열합니다
    version: [1,2,3],
    // 이곳에 더 많은 기본 매개변수를 추가합니다
    properties: [
        // 버전 2에서만 표시되는 리소스를 추가합니다
        {
            displayName: '리소스 이름',
            // 더 많은 리소스 매개변수
            displayOptions: {
                show: {
                    '@version': 2,
                },
            },
        },
    ],
}

전체 버전 관리#

선언적 스타일 노드에서는 사용할 수 없습니다.

예제로, Mattermost 노드를 참조하세요.

전체 버전 관리 요약:

  • 기본 노드 파일은 INodeType 대신 NodeVersionedType을 확장해야 합니다.
  • 기본 노드 파일은 defaultVersion(보통 최신)을 포함하여 기본 노드 메타데이터 및 버전 목록을 담고 있어야 하며, 노드 기능은 포함하지 않아야 합니다.
  • n8n은 버전 폴더 이름으로 v1, v2 등을 사용하는 것을 권장합니다.
인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!