5. 예약된 주문 계산하기
n8n v2.20워크플로의 이 단계에서는 n8n이 데이터를 구조화하는 방법과 Code 노드를 사용하여 계산을 수행하기 위한 커스텀 JavaScript 코드를 추가하는 방법을 배웁니다. Nathan의 워크플로에서 다음 단계는 booked 주문에서 두 가지 값을 계산하는 것입니다:
5. 예약된 주문 계산하기#
워크플로의 이 단계에서는 n8n이 데이터를 구조화하는 방법과 Code 노드를 사용하여 계산을 수행하기 위한 커스텀 JavaScript 코드를 추가하는 방법을 배웁니다. 이 단계 후 워크플로는 다음과 같이 보여야 합니다:
Nathan의 워크플로에서 다음 단계는 booked 주문에서 두 가지 값을 계산하는 것입니다:
- booked 주문의 총 개수
- 모든 booked 주문의 총 금액
데이터를 계산하고 워크플로에 더 많은 기능을 추가하려면 커스텀 JavaScript 코드를 작성할 수 있는 Code 노드를 사용할 수 있습니다.
Code 노드 소개#
Code 노드는 항목을 처리하는 방법에 따라 두 가지 작동 모드가 있습니다:
- Run Once for All Items를 사용하면 모든 입력 항목을 한 번에 그룹으로 처리하는 코드를 작성할 수 있습니다.
- Run Once for Each Item은 각 입력 항목에 대해 코드를 한 번씩 실행합니다.
Code 노드 사용 방법에 대해 자세히 알아보세요.
n8n에서 노드 간에 전달되는 데이터는 다음 JSON 구조를 가진 객체 배열입니다:
[
{
"json": { // (1)!
"apple": "beets",
"carrot": {
"dill": 1
}
},
"binary": { // (2)!
"apple-picture": { // (3)!
"data": "....", // (4)!
"mimeType": "image/png", // (5)!
"fileExtension": "png", // (6)!
"fileName": "example.png", // (7)!
}
}
},
...
]
- (필수) n8n은 실제 데이터를 중첩된
json키 안에 저장합니다. 이 속성은 필수이지만 빈 객체({})부터 배열 및 깊게 중첩된 데이터까지 무엇이든 될 수 있습니다. Code 노드는 데이터가 없는 경우 자동으로 데이터를json객체와 상위 배열([])로 감쌉니다. - (선택) 항목의 바이너리 데이터. n8n의 대부분의 항목은 바이너리 데이터를 포함하지 않습니다.
- (필수) 바이너리 데이터를 위한 임의의 키 이름.
- (필수) Base64로 인코딩된 바이너리 데이터.
- (선택) 가능하면 설정해야 합니다.
- (선택) 가능하면 설정해야 합니다.
- (선택) 가능하면 설정해야 합니다.
예상 형식에 대한 자세한 내용은 n8n 데이터 구조 페이지에서 확인할 수 있습니다.
Code 노드 구성하기#
이제 Code 노드를 사용하여 Nathan의 작업을 수행하는 방법을 알아봅시다.
워크플로에서 If 노드의 false 브랜치에 연결된 Code 노드를 추가합니다.
Code 노드 창이 열리면 다음 파라미터를 구성합니다:
- Mode: Run Once for All Items를 선택합니다.
- Language: JavaScript를 선택합니다.
아래에서는 JavaScript를 사용하지만 Code 노드에서 Python도 사용할 수 있습니다. 자세한 내용은 Code 노드 문서를 참조하세요.
-
아래 코드를 복사하여 Code 상자에 붙여넣어 기존 코드를 대체합니다:
let items = $input.all(); let totalBooked = items.length; let bookedSum = 0; for (let i=0; i < items.length; i++) { bookedSum = bookedSum + items[i].json.orderPrice; } return [{ json: {totalBooked, bookedSum} }];
계산 결과를 반환하는 형식에 주목하세요:
return [{ json: {totalBooked, bookedSum} }]
올바른 데이터 구조를 사용하지 않으면 다음과 같은 오류 메시지가 표시됩니다: Error: Always an Array of items has to be returned!
이제 Execute step을 선택하면 다음과 같은 결과가 표시되어야 합니다:

다음은?#
Nathan 🙋: 와, Code 노드가 정말 강력하네요! 기본적인 JavaScript 기술이 있다면 워크플로를 더욱 강력하게 만들 수 있다는 뜻이군요.
당신 👩🔧: 맞아요! 노코드에서 로우코드로 발전할 수 있습니다!
Nathan 🙋: 이제 booked 주문 계산 결과를 팀의 Discord 채널로 어떻게 보내나요?
당신 👩🔧: 그에 맞는 n8n 노드가 있습니다. 다음 단계에서 설정해 드리겠습니다.