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

노드 파일 구조#

노드 구조에서 모범 사례와 표준을 따르면 노드를 유지 관리하기 쉬워집니다. 다른 사람들이 코드 작업을 할 때 유용합니다.

노드의 파일 및 디렉터리 구조는 다음에 따라 달라집니다:

  • 노드의 복잡성.
  • 노드 버전 사용 여부.
  • npm 패키지에 포함된 노드 수.

필수 파일 및 디렉터리#

노드에는 다음이 포함되어야 합니다:

  • 프로젝트의 루트에 package.json 파일. 이는 모든 npm 모듈에 필요합니다.
  • 노드의 코드를 포함하는 nodes 디렉터리:
    • 이 디렉터리는 형식이 <node-name>.node.ts기본 파일을 포함해야 합니다. 예: MyNode.node.ts.
    • n8n은 노드의 메타데이터를 포함하는 코덱스 파일을 포함할 것을 권장합니다. 코덱스 파일 이름은 노드 기본 파일 이름과 일치해야 합니다. 예를 들어, 이름이 MyNode.node.ts인 노드 기본 파일이 주어지면, 코덱스 이름은 MyNode.node.json입니다.
    • nodes 디렉터리는 버전을 위한 디렉터리를 포함하여 다른 파일 및 하위 디렉터리를 포함할 수 있으며, 모듈식 구조를 만들기 위해 둘 이상의 파일로 분할된 노드 코드를 포함할 수 있습니다.
  • 자격 증명 코드를 포함하는 credentials 디렉터리. 이 코드는 단일 자격 증명 파일에 있습니다. 파일 이름 형식은 <node-name>.credentials.ts입니다. 예: MyNode.credentials.ts.

모듈식 구조#

노드의 모든 기능을 하나의 파일에 배치할지, 기본 파일과 다른 모듈로 분리할지를 선택할 수 있습니다. 기본 파일은 이후에 이를 가져옵니다. 노드가 매우 간단하지 않은 경우에는 분리하는 것이 모범 사례입니다.

기본 패턴은 작업을 분리하는 것입니다. HttpBin 시작 노드를 예로 참조하세요.

더 복잡한 노드의 경우 n8n은 디렉터리 구조를 권장합니다. Airtable 노드 또는 Microsoft Outlook 노드를 예로 참조하세요.

  • actions: 리소스를 나타내는 하위 디렉터리를 포함하는 디렉터리.
    • 각 하위 디렉터리는 두 유형의 파일을 포함해야 합니다:
    • 리소스 설명이 있는 인덱스 파일 (<resourceName>.resource.ts 혹은 index.ts 이름)
    • 작업 파일 <operationName>.operation.ts. 이 파일에는 작업의 descriptionexecute 함수라는 두 개의 내보내기가 있어야 합니다.
  • methods: 동적 매개변수 기능을 위한 선택적 디렉터리.
  • transport: 통신 구현을 포함하는 디렉터리.

버전 관리#

노드에 두 개 이상의 버전이 있고 전체 버전 관리를 사용하는 경우 파일 구조가 더 복잡해집니다. 각 버전에 대한 디렉터리와 기본 버전을 설정하는 기본 파일이 필요합니다. 버전과 관련된 작업에 대한 자세한 정보는 노드 버전 관리를 참조하세요.

패키지에 포함할 노드 수 결정#

노드를 빌드할 때 두 가지 가능한 설정이 있습니다:

  • 하나의 npm 패키지에 하나의 노드.
  • 하나의 npm 패키지에 여러 개의 노드.

n8n은 두 가지 접근 방식을 모두 지원합니다. 노드를 여러 개 포함하는 경우, 각 노드는 nodes 디렉토리에 고유한 디렉토리를 가져야 합니다.

프로그래밍 노드에 대한 모범 사례 예시#

n8n의 내장 Airtable 노드는 모듈 구조와 버전 관리를 구현하며, 권장 패턴을 따릅니다.

인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!