← 노드 한 장 전체#29 · Stop and Error
Stop and Error
이상한 데이터면 일부러 멈추기
이 글은 이런 분께데이터가 이상하면 저장하기 전에 일부러 멈추고 싶은 분

1분 영상은 @workflow.hanjang 에 순서대로 공개돼요
API가 이상한 값을 주면, 그대로 시트에 저장하실 건가요? 조용히 잘못 저장되면 아무도 몰라요.
Stop and Error 노드는 실행을 일부러 "실패"로 끝내요.
먼저 결과부터
Stop and Error는 데이터가 이상하면 일부러 실행을 멈춘다. 정상 환율(1,324.7원)은 통과, 일부러 만든 이상값(13.25원)은 저장 전에 멈춤.
우리가 실제로 돌린 기록 · 실행 #71659 · 2026-10-25
우리가 실제로 돌린 기록 · 실행 #71659 · 2026-10-25
- IF로 먼저 확인: 1달러가 500원보다 작거나, 3,000원보다 크거나, result가 success가 아니면
- 하나라도 맞으면 Stop and Error → 저장 노드까지 안 가요
- 설정은 메시지 한 칸. {{ }}로 실제 값을 넣어 두면 원인이 바로 보여요
- 정상 1,324.70원은 그대로 저장(#71658), 일부러 만든 이상값 13.25원은 1.9초 만에 멈춤(#71659)


따라 하기
아래 설정값은 이 영상에 나온 워크플로우 JSON에서 그대로 가져왔어요. n8n 캔버스에서 +를 눌러 노드를 순서대로 추가하고 같은 값을 넣으면 돼요. 빨간 제목이 이번 편의 주인공 노드예요. 표 왼쪽은 n8n 편집기에 보이는 칸 이름, 오른쪽은 실제로 넣은 값이에요. 직접 입력하기 번거로우면 JSON을 받아 ⋯ → Import from File로 가져오세요.
Step 1. Manual Trigger 노드 추가이름: Run manually
설정 없이 그대로 추가해요.
Step 2. HTTP Request 노드 추가이름: Get USD rates
| URL | https://open.er-api.com/v6/latest/USD |
Step 3. Code 노드 추가이름: Pick KRW rate
| JavaScript | // 테스트용: true로 바꾸면 일부러 만든 이상값(13.25원)으로 바꿔요
const FORCE_BAD = false;
const r = $input.first().json;
return [{ json: {
result: r.result,
usd_krw: FORCE_BAD ? 13.25 : r.rates.KRW,
updated: r.time_last_update_utc,
test_bad_value: FORCE_BAD
} }]; |
Step 4. If 노드 추가이름: Rate looks wrong?
| 조건 1 | {{ $json.usd_krw }} · is less than · 500 |
| 조건 2 | {{ $json.usd_krw }} · is greater than · 3000 |
| 조건 3 | {{ $json.result }} · is not equal to · success |
| 조건 묶기 (AND/OR) | OR |
Step 5. Stop and Error 노드 추가이름: Stop: bad rate
| Error Message | 환율이 이상해요: 1달러 = {{ $json.usd_krw }}원. 저장하지 않고 멈춥니다. |
Step 6. Edit Fields (Set) 노드 추가이름: OK: save rate
| 필드 1 | status · string · OK · 저장 진행 |
| 필드 2 | usd_krw · number · {{ $json.usd_krw }} |
가져와서 쓸 때 확인할 것
- YOUR_… 표시를 내 값으로 바꾸고, 계정이 필요한 서비스 노드만 자격 증명을 연결하세요. 그런 칸이나 노드가 없는 예제는 추가 계정 없이 실행할 수 있어요.
노드의 모든 옵션은 n8n 공식 문서에서 볼 수 있어요.