피드로 돌아가기
Dev.toBackend
원문 읽기
Declarative JSON 정의를 통한 n8n 기반 XLSX 생성 파이프라인 최적화
Generate Formatted Excel Spreadsheets in n8n
AI 요약
Context
n8n의 기본 노드들이 단순 읽기/쓰기에 치중하여 서식 지정 및 다중 시트 구성이 가능한 XLSX 생성 기능을 제공하지 않는 한계 발생. 기존의 ExcelJS 기반 Function 노드 구현이나 Google Sheets API를 경유하는 방식은 코드 의존성 증가와 복잡한 워크플로우 체인으로 인한 유지보수 비용 상승 초래.
Technical Solution
- Imperative 코딩 방식에서 Declarative JSON 정의 방식으로 전환하여 시트 구조와 서식을 선언적으로 설계
- API 기반의 Iteration Layer 도입을 통해 JSON 정의를 바이너리 XLSX 파일로 직접 렌더링하는 구조 구축
- Cell-level formatting(Currency, Percentage, Formula)을 JSON 스키마에 통합하여 렌더링 엔진에서 처리하도록 설계
- 데이터 추출(Postgres)부터 리포트 생성 및 발송까지의 과정을 4개 노드로 단순화하여 파이프라인 효율성 강화
- 동일한 데이터 정의를 기반으로 XLSX, CSV, Markdown 포맷을 선택적으로 출력하는 다형성 인터페이스 구현
Key Takeaway
복잡한 도메인 지식이 필요한 파일 생성 로직을 추상화된 선언적 인터페이스(Declarative Interface)로 분리함으로써 비즈니스 로직과 표현 계층의 결합도를 낮추는 설계 원칙 적용.
실천 포인트
- 복잡한 외부 API 연동 전, 선언적 정의만으로 해결 가능한 추상화 레이어가 존재하는지 검토 - 다중 포맷(XLSX, CSV 등) 출력이 필요한 경우, 내부 데이터 모델을 통합하고 출력 포맷만 파라미터화하는 구조 설계 - 워크플로우 노드 수가 급격히 증가하는 'Export Chain' 발생 시, 단일 API 호출로 처리 가능한 전용 모듈 도입 고려