n8n If 노드 활용법 | contains·starts with·matches regex 예제 모음
n8n으로 자동화 워크플로우를 구축할 때 가장 중요한 것 중 하나가 바로 조건부 분기 처리입니다.
If 노드를 제대로 활용하면 복잡한 비즈니스 로직도 효율적으로 구현할 수 있습니다.
이 포스팅에서는 문자열 비교 조건들의 실무 활용법을 상세한 예제와 함께 알아보겠습니다.
n8n If 노드란 무엇인가요?
워크플로우에서의 역할
n8n If 노드는 워크플로우에서 조건부 분기를 담당하는 핵심 노드입니다.
입력된 데이터가 특정 조건을 만족하는지 검사하여 True 또는 False 경로로 데이터 흐름을 제어합니다.
예를 들어, 고객 문의 이메일을 자동으로 분류하거나, 특정 키워드가 포함된 메시지만 슬랙으로 전송하는 등의 작업에서 If 노드가 핵심적인 역할을 합니다.
분기 로직의 핵심
If 노드는 다음과 같은 구조로 동작합니다:
- 입력: 검사할 데이터
- 조건: 비교 연산자와 기준값
- 출력: True/False 두 개의 경로
이러한 분기 로직을 통해 복잡한 비즈니스 규칙을 워크플로우로 구현할 수 있습니다.
문자열 비교 조건의 종류
n8n If 노드에서 제공하는 주요 문자열 비교 조건들을 살펴보겠습니다.
is equal to / is not equal to
가장 기본적인 문자열 비교 조건입니다.
사용 예시:
조건: {{ $json.status }} is equal to "completed"
용도: 주문 상태가 "completed"인 경우만 처리
실무 활용:
- 사용자 권한 체크 (role이 "admin"인지 확인)
- 결제 상태 확인 (payment_status가 "paid"인지 검사)
- API 응답 상태 검증
contains / does not contain
특정 문자열이 포함되어 있는지 검사하는 조건입니다.
사용 예시:
조건: {{ $json.email }} contains "@gmail.com"
용도: Gmail 사용자만 특별 혜택 제공
활용 팁:
- 대소문자를 구분하므로 필요시 .toLowerCase() 함수 활용
- 부분 문자열 검색에 유용
- 키워드 필터링에 최적화
starts with / ends with
문자열의 시작이나 끝 부분을 검사하는 조건입니다.
사용 예시:
조건: {{ $json.message }} starts with "/help"
용도: 챗봇 명령어 처리
실무 활용:
- 파일 확장자 체크 (파일명이 ".pdf"로 끝나는지)
- URL 경로 분석 (특정 경로로 시작하는 요청 처리)
- 전화번호 국가코드 확인
matches regex / not match regex
정규표현식을 이용한 고급 패턴 매칭 조건입니다.
사용 예시:
조건: {{ $json.phone }} matches regex "^010-\d{4}-\d{4}$"
용도: 한국 휴대폰 번호 형식 검증
정규표현식 패턴 예시:
- 이메일: ^[^\s@]+@[^\s@]+\.[^\s@]+$
- 숫자만: ^\d+$
- URL: ^https?://[^\s]+$
실무 예제로 알아보는 문자열 조건 사용법
contains를 이용한 이메일 도메인 분기
고객 이메일 주소에 따라 다른 마케팅 전략을 적용하는 예제입니다.
워크플로우 구성:
- 고객 데이터 수신
- If 노드로 이메일 도메인 체크
- 도메인별 맞춤 메시지 발송
// 조건 설정
{{ $json.customer_email }} contains "@naver.com"
// True 경로: 네이버 사용자 전용 템플릿
// False 경로: 일반 템플릿
활용 효과:
- 도메인별 맞춤형 마케팅 가능
- 국내외 고객 구분 자동화
- 이메일 서비스별 최적화된 템플릿 적용
starts with로 명령어 체크
슬랙봇이나 텔레그램봇에서 명령어를 처리하는 예제입니다.
시나리오: 슬랙 메시지가 특정 명령어로 시작하는지 확인
// 조건 1: 도움말 명령어
{{ $json.text }} starts with "/help"
// 조건 2: 상태 확인 명령어
{{ $json.text }} starts with "/status"
// 조건 3: 설정 명령어
{{ $json.text }} starts with "/config"
구현 팁:
- 명령어 앞에 공백이 있을 수 있으므로 .trim() 함수 활용
- 대소문자 통일을 위해 .toLowerCase() 적용
- 여러 명령어는 OR 조건으로 연결
matches regex로 다중 조건 필터링
복잡한 데이터 검증이 필요한 경우의 정규표현식 활용 예제입니다.
시나리오: 사용자 입력 데이터 유효성 검사
// 한국 휴대폰 번호 검증
{{ $json.phone }} matches regex "^01[0-9]-\d{3,4}-\d{4}$"
// 사업자 등록번호 검증 (XXX-XX-XXXXX 형식)
{{ $json.business_number }} matches regex "^\d{3}-\d{2}-\d{5}$"
// 강력한 비밀번호 검증 (8자 이상, 대소문자, 숫자, 특수문자 포함)
{{ $json.password }} matches regex "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"
정규표현식 활용 장점:
- 복잡한 패턴 매칭을 한 번에 처리
- 데이터 품질 보장
- 예외 상황 사전 차단
If 노드의 조건 조합: AND / OR 활용 팁
다중 조건 설정 방법
복잡한 비즈니스 로직을 구현하려면 여러 조건을 조합해야 합니다.
AND 조건 예시:
// 조건 1: VIP 고객이면서
{{ $json.customer_grade }} is equal to "VIP"
// 조건 2: 구매 금액이 10만원 이상인 경우
{{ $json.order_amount }} > 100000
OR 조건 예시:
// 조건 1: Gmail 사용자이거나
{{ $json.email }} contains "@gmail.com"
// 조건 2: 네이버 메일 사용자인 경우
{{ $json.email }} contains "@naver.com"
UI 구조 설명
n8n If 노드의 조건 설정 UI는 직관적으로 구성되어 있습니다:
- Conditions: 조건 추가 버튼
- Property Name: 검사할 데이터 필드
- Operation: 비교 연산자 선택
- Value: 비교 기준값
- Combine: AND/OR 선택
설정 순서:
- 첫 번째 조건 설정
- "Add Condition" 클릭
- 추가 조건 입력
- Combine 방식 선택
- 테스트 실행
자주 묻는 질문 & 팁 정리
문자열 비교시 유의사항
대소문자 처리:
// 잘못된 예: 대소문자 구분으로 매칭 실패
{{ $json.status }} is equal to "completed" // 실제 값이 "Completed"인 경우
// 올바른 예: 대소문자 통일
{{ $json.status.toLowerCase() }} is equal to "completed"
공백 처리:
// 앞뒤 공백 제거
{{ $json.message.trim() }} starts with "/help"
특수문자 이스케이프: 정규표현식에서 특수문자는 백슬래시로 이스케이프해야 합니다.
// 점(.) 문자 매칭시
{{ $json.filename }} matches regex "\.pdf$"
regex 작성법 간단 요약
기본 메타문자:
- .: 임의의 한 문자
- *: 0개 이상 반복
- +: 1개 이상 반복
- ?: 0개 또는 1개
- ^: 문자열 시작
- $: 문자열 끝
문자 클래스:
- \d: 숫자 (0-9)
- \w: 단어 문자 (a-z, A-Z, 0-9, _)
- \s: 공백 문자
수량자:
- {n}: 정확히 n개
- {n,}: n개 이상
- {n,m}: n개 이상 m개 이하
실용 패턴 모음:
// 이메일 기본 검증
^[^\s@]+@[^\s@]+\.[^\s@]+$
// 한국 휴대폰 번호
^01[0-9]-\d{3,4}-\d{4}$
// 영문자+숫자 조합 (6-20자)
^[a-zA-Z0-9]{6,20}$
// URL 검증
^https?://[^\s/$.?#].[^\s]*$
마무리: 실무에서 자주 쓰는 템플릿 추천
n8n If 노드를 효과적으로 활용하기 위한 실무 템플릿을 정리했습니다:
1. 이메일 분류 템플릿
// 긴급 키워드 포함 여부
{{ $json.subject }} contains "긴급" || {{ $json.subject }} contains "urgent"
2. 사용자 권한 체크 템플릿
// 관리자 권한 확인
{{ $json.user_role }} is equal to "admin" || {{ $json.user_role }} is equal to "super_admin"
3. 파일 형식 검증 템플릿
// 이미지 파일 확인
{{ $json.filename }} matches regex "\.(jpg|jpeg|png|gif|webp)$"
4. 비즈니스 시간 체크 템플릿
// 평일 오전 9시-오후 6시 확인 (추가 Date 노드 필요)
{{ $json.day_of_week }} >= 1 && {{ $json.day_of_week }} <= 5 && {{ $json.hour }} >= 9 && {{ $json.hour }} < 18
이러한 조건문들을 조합하면 복잡한 자동화 워크플로우도 직관적으로 구현할 수 있습니다. If 노드는 n8n 워크플로우의 핵심 요소이므로, 다양한 조건들을 실제 프로젝트에 적용해보며 익숙해지시길 추천합니다.
추가 학습 자료:
- n8n 공식 문서의 If 노드 섹션
- 정규표현식 온라인 테스터 도구 활용
- 커뮤니티에서 공유되는 워크플로우 템플릿 참고
성공적인 자동화 구축을 위해서는 이론보다는 실제 프로젝트에 적용해보는 경험이 가장 중요합니다. 작은 워크플로우부터 시작해서 점진적으로 복잡한 로직을 구현해보세요!
'개발&프로그래밍' 카테고리의 다른 글
[N8N] n8n Merge 노드 사용법과 SQL Query 예제 | 워크플로우 자동화 가이드 (0) | 2025.06.24 |
---|---|
[N8N] n8n 노드 완벽 가이드: 워크플로우 자동화의 핵심 요소 (3) | 2025.06.23 |
[N8N] n8n에서 루핑(Looping) 제대로 활용하는 방법 (0) | 2025.06.19 |
[Kotlin] Kotlin mapNotNull 완전 정복 | 리스트 변환부터 실무 활용까지 (2) | 2025.06.18 |
[Kotlin] runCatching + 코루틴 완벽 활용법! 예외 처리까지 깔끔하게 (1) | 2025.06.17 |
댓글