n8n에서 HTML·XML·바이너리·날짜 데이터를 다루는 법
n8n의 HTML/XML 파싱, 날짜·시간 연산, 바이너리 파일 변환 노드를 실무 시나리오로 정리한 가이드
2026-08-12 · 최초 발행 2025-06-11
한 워크플로우 안에 경쟁사 웹페이지에서 긁어온 HTML, 거래처 시스템이 보내는 XML 응답, 매월 말일마다 돌아가는 스케줄, 계약서 PDF가 동시에 섞여 있는 경우가 드물지 않다. n8n은 이 이질적인 데이터를 각각 전용 노드로 받아 표준 JSON 구조로 바꾼 뒤 같은 워크플로우 안에서 다루게 해준다.
마크업을 다루는 노드: HTML과 XML
HTML 노드는 CSS 셀렉터를 기준으로 웹페이지에서 원하는 요소만 뽑아낸다.
/* CSS 셀렉터 예시 */
.post .item-title a /* 블로그 포스트 제목 추출 */
#content .price /* 가격 정보 추출 */
.product-list li /* 제품 목록 추출 */
이 방식으로 실시간 웹사이트 정보를 수집하고 변경 사항을 모니터링하는 자동화가 가능하다. 다만 화면 크기와 레이아웃이 제각각인 사이트를 다루려면 셀렉터를 너무 좁게 잡지 않는 편이 안전하고, 사이트 구조가 바뀌면 셀렉터가 깨질 수 있으므로 대안 셀렉터나 예외 처리를 함께 구성해두는 게 좋다. JavaScript 렌더링이 필요한 SPA는 HTML 노드만으로 대응하기 어려운 경우도 있다.
XML 노드는 반대 방향, 즉 JSON과 XML을 양방향으로 변환한다. XML 기반 웹 서비스를 호출할 때는 JSON to XML로 페이로드를 만들고, 응답을 받을 때는 XML to JSON으로 n8n이 다룰 수 있는 형태로 되돌린다. 네임스페이스가 붙은 복잡한 XML 스키마도 구조적으로 파싱해낼 수 있다.
날짜와 시간, 그리고 스케줄
n8n은 여러 날짜 표기를 하나의 처리 체계 안에서 다룬다.
| 형식 타입 | 예시 | 활용 용도 |
|---|---|---|
| DATE | 2022-03-29, 29-03-2022 | 일반적인 날짜 처리 |
| TIME | 08:30:00, 20:30 | 시간 기반 트리거 |
| DATETIME | 2022/03/29 08:30:00 | 정확한 시점 기록 |
| TIMESTAMP | 1616108400 (Unix) | 시스템 간 호환성 |
| YEAR | 2022, 22 | 연도별 집계 분석 |
Date & Time 노드로 이 형식들 사이를 변환하고 날짜 연산을 수행한다. 상대적 날짜 계산(오늘 기준 N일 전/후), 휴일을 제외한 영업일 계산, 분기별 마감일 처리 같은 비즈니스 날짜 로직도 여기서 다룬다. 여러 시간대를 오가는 서비스라면 DST(일광절약시간) 전환까지 고려한 시간대 변환이 필요하다.
스케줄은 Schedule Trigger 노드가 맡는다. 크론 표현식으로 복잡한 주기를 정의할 수 있고, 특정 조건이 충족될 때만 실행되는 조건부 스케줄도 구성할 수 있다. 실패한 스케줄 작업을 자동으로 재시도하게 만들어두면 일시적인 오류로 전체 워크플로우가 멈추는 상황을 줄일 수 있다. Wait 노드는 워크플로우 실행 자체를 일정 시간 멈춰두고 싶을 때 쓴다.
파일이 바이너리로 바뀌는 지점
| 파일 타입 | 처리 노드 | 주요 기능 |
|---|---|---|
| Extract from File | 텍스트 추출, 메타데이터 분석 | |
| 이미지 | HTTP Request + Extract | OCR 처리, 이미지 분석 |
| Excel/CSV | Extract from File | 구조화된 데이터 추출 |
| Word 문서 | Extract from File | 문서 내용 및 서식 정보 추출 |
Convert to File 노드는 JSON 데이터를 바이너리 파일로 바꾸고, Extract from File 노드는 그 반대로 PDF·이미지 같은 바이너리를 JSON으로 끌어낸다. 로컬 파일 시스템을 직접 읽고 쓰는 Read/Write Files 노드와 웹 리소스를 내려받는 HTTP Request 노드가 여기에 더해진다.
다만 로컬 파일 시스템 접근은 자체 호스팅 환경에서만 지원된다. n8n 클라우드에서는 웹 기반 바이너리 처리로 제한되기 때문에 HTTP Request 중심으로 흐름을 짜야 하고, 자체 호스팅에서는 대용량 파일까지 직접 다룰 수 있는 대신 Docker 환경이라면 컨테이너 내부 경로와 볼륨 마운트를 신경 써야 한다. 파일을 다룰 때는 메모리 사용량을 고려한 크기 제한, 업로드 파일에 대한 보안 검증(바이러스 스캔), 대용량 파일을 청크 단위로 처리하는 스트리밍 방식도 함께 고려 대상이다.
실무에서 조합되는 방식
경쟁사 가격을 추적하는 모니터링 워크플로우는 HTML 노드로 카탈로그 변경을 감지하고 Schedule Trigger로 주기적으로 실행하는 조합이 기본형이다. 계약서 PDF에서 핵심 정보를 뽑아 CRM에 넣거나, Excel 보고서를 JSON으로 바꿔 BI 대시보드를 자동 갱신하거나, Word 템플릿으로 문서를 생성해 배포하는 흐름도 같은 노드들의 조합으로 만들어진다.
소셜미디어 API의 JSON과 XML 기반 ERP 시스템을 동기화하거나, 이메일 첨부파일을 자동으로 처리해 DB에 저장하거나, 날짜 형식이 제각각인 여러 시스템의 시간 정보를 일관되게 맞추는 것도 이 챕터에서 다룬 노드들이 맡는 역할이다. 월말 정산 보고서 자동 생성, 계약 만료일 기반 갱신 알림, 재고 확인을 위한 주기적 API 호출처럼 시간이 트리거가 되는 프로세스에서는 Schedule Trigger와 Date & Time 노드가 짝을 이룬다.