데이터 모킹 및 피닝
워크플로를 개발할 때 외부 시스템을 반복적으로 호출하거나 실제 데이터로 작업하지 않고 로직을 테스트하고 싶을 수 있습니다. 두 방법 모두 개발 중 시간과 리소스를 절약하고, 일관된 데이터셋으로 작업할 수 있도록 하며, 반복적인 테스트 호출로부터 실제 시스템을 보호합니다.
워크플로를 개발할 때 외부 시스템을 반복적으로 호출하거나 실제 데이터로 작업하지 않고 로직을 테스트하고 싶을 수 있습니다. n8n은 이를 위한 두 가지 관련 기능을 제공합니다:
- 데이터 모킹: 실제 데이터 소스에 연결하지 않고 테스트 데이터를 생성하거나 시뮬레이션
- 데이터 피닝: 테스트 데이터(모킹 또는 실제 데이터)를 저장하고 새로운 데이터를 가져오는 대신 향후 워크플로 실행에서 재사용
두 방법 모두 개발 중 시간과 리소스를 절약하고, 일관된 데이터셋으로 작업할 수 있도록 하며, 반복적인 테스트 호출로부터 실제 시스템을 보호합니다.
데이터 피닝 및 모킹은 개발 중 워크플로 테스트를 돕기 위한 기능입니다. 데이터 피닝은 프로덕션 워크플로 실행에서는 사용할 수 없습니다.
데이터 모킹 방법#
개발 중 사용할 테스트 데이터를 생성합니다. 여러 가지 방법으로 모킹 데이터를 만들 수 있습니다:
Code 또는 Edit Fields 노드를 사용하여 커스텀 데이터 생성#
Code 노드 또는 Edit Fields (Set) 노드를 사용하여 워크플로에서 커스텀 데이터셋을 만들 수 있습니다.
Code 노드에서는 원하는 어떤 데이터셋도 만들어 노드 출력으로 반환할 수 있습니다. Edit Fields 노드에서는 Add fields를 선택하여 커스텀 데이터를 추가합니다.
Edit Fields 노드는 소규모 테스트에 적합합니다. 더 복잡한 데이터셋을 만들려면 Code 노드를 사용하세요.
이 방법을 사용할 때: 테스트 데이터 구조와 값을 완전히 제어해야 하거나, 특정 데이터 패턴으로 엣지 케이스를 테스트하고 싶을 때.
Customer Datastore 노드에서 샘플 데이터셋 출력#
Customer Datastore 노드는 작업할 수 있는 가짜 데이터셋을 제공합니다. 노드를 추가하고 실행하여 데이터를 탐색하세요.
이 방법을 사용할 때: n8n을 탐색할 때 테스트 데이터가 필요하지만 실제 사용 사례가 없을 때.
테스트 데이터를 생성하거나 얻은 후 여러 워크플로 실행에서 재사용하려면 데이터 피닝을 사용하여 저장하세요.
데이터 피닝#
워크플로 개발 중 데이터를 '피닝'할 수 있습니다. 데이터 피닝은 노드의 출력 데이터를 저장하고 향후 워크플로 실행에서 새로운 데이터를 가져오는 대신 저장된 데이터를 사용하는 것을 의미합니다.
외부 소스의 데이터를 사용할 때 외부 시스템에 반복적으로 요청하지 않아도 되므로 이 기능을 활용할 수 있습니다. 시간과 리소스를 절약할 수 있습니다:
- 워크플로가 웹훅 호출과 같은 외부 시스템에 의해 트리거되는 경우, 데이터를 피닝하면 워크플로를 테스트할 때마다 외부 시스템을 사용할 필요가 없습니다.
- 외부 리소스에 데이터 또는 사용량 제한이 있는 경우, 테스트 중 데이터를 피닝하면 리소스 제한을 소비하지 않습니다.
- 테스트하고 싶은 데이터를 가져와 피닝하면 모든 워크플로 테스트에서 데이터가 일관되게 유지됩니다.
- 테스트 데이터를 모킹한 후(위의 방법 사용) 실행 전반에 걸쳐 재사용하기 위해 피닝할 수 있습니다.
단일 메인 출력이 있는 노드에만 데이터를 피닝할 수 있습니다("error" 출력은 이 목적에 해당되지 않습니다).
데이터 피닝#
노드에서 데이터를 고정하려면:
- 노드를 실행하여 데이터를 로드합니다.
- OUTPUT 뷰에서 Pin data
를 선택합니다. 데이터 고정이 활성화되면 버튼이 비활성화되고 OUTPUT 뷰에 "This data is pinned" 배너가 표시됩니다.
출력 데이터에 바이너리 데이터가 포함된 경우 데이터를 고정할 수 없습니다.
데이터 피닝 해제#
데이터 피닝이 활성화되면 n8n이 데이터를 피닝했다는 배너가 노드 출력 패널 상단에 표시됩니다. 데이터 피닝을 해제하고 다음 실행 시 새로운 데이터를 가져오려면 배너의 Unpin 링크를 선택하세요.
피닝된 데이터 편집#
n8n에서는 피닝된 데이터를 편집할 수 있습니다. 이를 통해 각 시나리오를 설정하고 외부 시스템에서 관련 데이터를 전송하지 않고도 다양한 시나리오를 확인할 수 있습니다. 엣지 케이스를 더 쉽게 테스트할 수 있습니다.
데이터 편집은 프로덕션 워크플로 실행에서는 사용할 수 없습니다. 개발 중 워크플로 테스트를 돕기 위한 기능입니다.
출력 데이터 편집#
출력 데이터를 편집하려면:
- 노드를 실행하여 데이터를 로드합니다.
- OUTPUT 뷰에서 JSON을 선택하여 JSON 뷰로 전환합니다.
- Edit
을 선택합니다. - 데이터를 편집합니다.
- Save를 선택합니다. n8n이 데이터 변경 사항을 저장하고 데이터를 피닝합니다.
이전 실행의 데이터 사용#
이전 워크플로 실행의 노드에서 데이터를 복사할 수 있습니다:
- 왼쪽 메뉴를 엽니다.
- Executions를 선택합니다.
- 워크플로 실행 목록에서 복사하려는 데이터가 있는 실행을 찾아봅니다.
- Open Past Execution
을 선택합니다. - 데이터를 복사하려는 노드를 더블 클릭합니다.
- 테이블 레이아웃인 경우 JSON을 선택하여 JSON 뷰로 전환합니다.
- JSON을 복사하는 두 가지 방법이 있습니다:
- 텍스트를 선택하듯이 원하는 JSON을 하이라이트하여 선택합니다. 그런 다음
ctrl+c를 사용하여 복사합니다. - 파라미터를 클릭하여 복사할 JSON을 선택합니다. 그런 다음:
1. JSON 위로 마우스를 이동합니다. n8n이 Copy
버튼을 표시합니다.
2. Copy
를 선택합니다.
3. 복사할 항목을 선택할 수 있습니다:
- Copy Item Path 및 Copy Parameter Path는 JSON의 일부에 접근하는 표현식을 제공합니다.
- Copy Value: 선택된 전체 JSON을 복사합니다.
- 작업 중인 워크플로로 돌아갑니다:
- 왼쪽 메뉴를 엽니다.
- Workflows를 선택합니다.
- Open을 선택합니다.
- 열려는 워크플로를 선택합니다.
- 복사된 데이터를 사용하려는 노드를 엽니다.
- 데이터가 없는 경우 노드를 실행하여 데이터를 로드합니다.
- OUTPUT 뷰에서 JSON을 선택하여 JSON 뷰로 전환합니다.
- Edit
을 선택합니다. - 이전 실행의 데이터를 붙여넣습니다.
- Save를 선택합니다. n8n이 데이터 변경 사항을 저장하고 데이터를 피닝합니다.
모킹과 피닝 결합#
가장 현실적인 테스트 경험을 위해 모킹과 피닝 방법을 결합할 수 있습니다:
- 모킹 방법 중 하나(Code 노드, Edit Fields 노드, 또는 Customer Datastore)를 사용하여 테스트 데이터 생성
- 테스트 데이터를 편집하여 특정 테스트 시나리오 또는 엣지 케이스 생성
- 편집된 데이터를 여러 워크플로 실행에서 재사용하기 위해 피닝
- 이 편집된 피닝 데이터셋으로 개발 계속하기
이 방법을 사용하면 여러 실행에서 일관된 테스트를 보장하면서 테스트 데이터를 완전히 제어할 수 있습니다.
