n8n 한국어 교재 · Ch.12

IF · Switch 조건 분기

모든 워크플로는 결국 "조건 따라 다르게 처리" 가 필요합니다. n8n 의 분기는 두 종류 — 단순 양자택일(IF), 다중 분기(Switch).

6각형 분기 다이어그램

Ch.11 의 RSS 워크플로에서 "어제 이후 글만" 같은 조건이 등장했죠. 그게 IF 노드의 영역. 더 복잡한 케이스 — VIP/일반/신규 회원별로 다른 메시지 — 는 Switch 의 영역.

IF — 둘로 갈라지는 가장 단순한 분기

IF 노드 검색 결과
이전 노드 + → "if" 검색 → IF 노드 클릭. 조건 빌더 UI 가 열림.

IF 노드 출력은 항상 두 갈래 — truefalse. 각 갈래에 다른 후속 노드를 붙입니다.

IF 노드 Conditions (AND/OR 선택) Value 1: ={{ $json.amount }} Operation: larger Value 2: 10000

이 IF 노드는 "금액이 10,000 보다 크면 true" 분기. true 출력으로 VIP 처리, false 로 일반 처리.

흔히 쓰는 조건 8가지

Operation의미
equal정확히 같음status = "active"
contains문자열 포함email contains "@gmail"
starts with시작 글자phone starts with "010"
larger / smaller크다 / 작다amount > 10000
is empty빈 값email is empty
regex정규식 매칭id matches /^USR-\d+$/
before / after날짜 비교createdAt before $now.minus({days:7})
length larger배열·문자열 길이items.length > 5

여러 조건 묶기 — AND / OR

한 IF 노드에 조건 여러 개 추가 가능. 묶음 모드 선택:

AND — 모든 조건 만족 시 true (예: amount > 10000 AND country = "KR")
OR — 하나라도 만족 시 true (예: role = "admin" OR plan = "enterprise")

복잡해지면 IF 안에 또 IF 를 중첩하기보단 Switch 가 깔끔.

Switch — 다중 분기 (3가지 이상)

회원 등급 4개 (VIP/Pro/Free/Trial) 각각 다른 처리? IF 중첩은 지저분. Switch 한 노드로 깔끔.

Switch 노드 Mode: Rules Output 0 (VIP): $json.plan = "vip" Output 1 (Pro): $json.plan = "pro" Output 2 (Free): $json.plan = "free" Output 3 (Trial): $json.plan = "trial" Fallback Output: (어디에도 매칭 안 되면)

각 Output 에 다른 노드 연결. 예: VIP → 전담 매니저 Slack, Pro → 자동 메일, Free → 마케팅 메일, Trial → 14일 카운트다운.

실수 패턴 + 디버깅

가장 흔한 실수 1 — 타입 불일치
API 가 보낸 "10000"(문자열) 인데 IF 에서 larger 10000(숫자) 비교 → 항상 false. ={{ Number($json.amount) }} 로 강제 변환 또는 IF Operation 을 "equal" 로 변경.
흔한 실수 2 — Fallback 안 만듦
Switch 에 "어디에도 안 맞으면" Fallback 출력 미설정 → 그 item 은 그냥 사라짐. 워크플로 결과가 빠진 채 끝남. 항상 Fallback 출력 연결 권장 (실패 알림 등).

실전 — 다중 채널 알림 라우팅

실무에서 가장 자주 만나는 Switch 패턴 — 이벤트 타입별로 다른 채널에 알림. 결제 알림은 영업 Slack, 에러는 개발 Slack, 가입은 그로스 Slack 으로.

Switch 노드 Output 0: event = "payment" → 영업 Slack 채널 Output 1: event = "error" → 개발 Slack 채널 Output 2: event = "signup" → 그로스 Slack 채널 Fallback: → 기타 Slack 채널 (분류 안 된 것 모니터링)

이 패턴 하나로 한 워크플로 안에서 3-4 채널 운영. 워크플로를 4개 따로 만들 필요 없고, 새 이벤트 타입 추가 시 Switch 에 Output 하나 추가만 하면 됨. 확장이 쉬워서 운영 안정성 ↑.

또 IF/Switch 의 출력은 일반 데이터 그대로 통과 — 변환·가공이 일어나지 않습니다. 분기 후 각 갈래의 Set 노드에서 채널별 메시지를 다르게 조립하는 게 일반 패턴.

다음 Ch.13 — Code 노드. IF·Switch 로 부족한 복잡한 로직 (정규식 변환, 다단계 가공) 을 JavaScript 로 직접 작성하는 패턴.

n8n 한국어 교재 · Ch.12 완료

다음 편 → Ch.13 Code 노드 — JavaScript 직접 작성

전체 시리즈 보기

© 2026 주나이테크(주) @JUNAITECH