📮 대망의 마지막 – 리포트까지 자동화하자!
드디어 마지막 이야기입니다. 이제 자동화는 잘~ 돌아가고, Illustrator도 말을 듣고, Gmail도 착착 메일을 보내줍니다. 하지만 뭔가 허전했죠.
“파일만 보내니까 너무 밋밋해…”
그래서 생각했습니다.
“메일에다가 무슨 데이터를 받아서 어떤 작업이 이뤄졌고, 얼마나 걸렸는지도 같이 정리해서 넣으면 더 멋지지 않을까?”
이제 등장해야죠, 우리의 생성형 AI 친구 – Gemini!
📊 작업 리포트는 LLM에게 맡기자
n8n 흐름 중간에 Gemini를 호출해서, 사용자 입력 + 처리 시간 등을 요약 리포트로 정리하게 만들었습니다.
그리고 이 결과를 메일 본문에 파일과 함께 넣는 게 목표였어요.
하지만 여기서부터 또 한참을 삽질하게 됩니다…
😵 n8n 초보의 삽질 다섯 가지
1. 중간 노드 접근하기까지 반나절
처음엔 "순차적으로만 흐른다"고 생각해서, LLM을 거친 뒤 파일을 다시 참조하는 방법을 몰랐습니다.
나중에야 깨달았죠 – n8n에서는 중간 노드도 직접 접근 가능하다는 걸요!
{{ $("파일생성노드이름").binary["data"] }}
…이걸 몰라서 얼마나 헤맸는지 😇
2. 바이너리 다루기… 미궁 속으로
n8n의 기본 데이터 흐름은 JSON이라 그런지, 바이너리 데이터를 노드에 넣는 방법을 몰랐습니다.
LLM에게 물어봤지만 버전이 안 맞았는지 뻔한 헛소리만 들었고, 결국 직접 Base64를 활용하여로 해결.
3. base64로 string 만들기 → 다시 바이너리? 실패의 연속
"그래, base64로 변환한 다음 string을 바이너리로 다시 만들면 되지 않을까?"
→ 그렇게 간단하지 않았습니다.
item이 여러 개인데 하나의 string만 처리해서는 안 됐고,
라인마다 따로 처리해야 했는데 그걸 몰라서 계속 실패… 또 시간 줄줄.
4. Google Sheet 업데이트 안 되는 문제
메일을 보낸 다음, Google Sheet에 ‘완료’로 태그 업데이트를 하려 했는데 첫 번째 줄만 반영됨.row_number
를 이용해서 각 행을 정확히 지정해주는 방식으로 해결!
5. 파일은 하나만 만들어야 하는데…
파일과 데이터는 1:N 관계인데 나중에 바이너리 파일로 변경하는 시점에
같은 파일이 각각 두 개씩 생기는 기이한 현상.
결국 Code
노드로 데이터를 강제로 하나의 item으로 묶어서 해결.
🧠 n8n을 다뤄 보면서 깨달은 세 가지
✅ 1. 노드 접근 방식은 자유롭다!(이걸 몰라서... 보낸 시간이...)
- 이전 노드 직접 접근
{{ $("파일노드").item.json.title }}
- 현재 item의 데이터
{{ $json['상태'] }}
🛠️ 2. Set
노드는 데이터를 정리하는 데 최적
- 필드 이름 변경
- key 정리
- 고정값 추가 등등
🔧 3. Code
노드는 만능 도구
- 복수 아이템 합치기
- JSON ↔ Binary 변환
- 복잡한 조건 처리
🎉 끝맺음
프로젝트 초반엔 그까짓 것 "자동화 좀 해보자~"였는데,
끝나고 보니 Illustrator부터 메일 전송, 요약 리포트 작성까지 모두 자동으로 돌아가는 작은 인하우스 플랫폼이 완성됐습니다.
물론 더 예쁘게, 더 잘 만들 수 있는 여지는 많겠지만,
이번 과제를 통해 진짜 많은 걸 배웠습니다.
무엇보다 n8n에 대해 아무것도 몰랐던 무지렁이에서 초보 수준까진 올라온 느낌이랄까요? 😎
다음에 또 삽질기가 있다면 돌아오겠습니다.
읽어주셔서 감사합니다!
'프로그램 > AI' 카테고리의 다른 글
꾸역 꾸역 일러스트레이터 자동화 삽질기 (2/3) (1) | 2025.06.03 |
---|---|
꾸역 꾸역 일러스트레이터 자동화 삽질기 (1/3) (1) | 2025.06.03 |
MCP를 활용한 챗봇 구축기 - MCP 서버 편 (6/6) (0) | 2025.05.11 |
MCP를 활용한 챗봇 구축기 - REST API 서버 편 (5/6) (0) | 2025.05.11 |
MCP를 활용한 챗봇 구축기 - 클라이언트 편 (4/6) (0) | 2025.05.11 |
MCP를 활용한 챗봇 구축기 - MCP 툴 기반으로 확장해보기 개요 (3/6) (0) | 2025.05.07 |
MCP를 활용한 챗봇 구축기 - RestAPI를 적용 (2/6) (0) | 2025.05.07 |
MCP를 활용한 챗봇 구축기 - 장대한 서막 (1/6) (2) | 2025.04.30 |