n8n은 노코드로 자동화를 구축할 수 있는 툴로 페어소스 정책을 따르는 오픈소스 툴입니다. Make와 비슷하지만 셀프호스팅 등 개발자를 위한 운영이 가능하며 비용도 절약할 수 있다는 장점이 있습니다. n8n을 공부하는 김에 간단하게 만들어본 장보기 지원 AI Agent 개발 후기와 Product 관점에서의 후기를 남겨봅니다.
1. 개요
한 2년전부터 꾸준히 농수산물 공공데이터(kamis)를 실습 데이터로 사용하고 있습니다. api에 대한 기본기를 소개하기도 좋고, 일상 생활의 데이터라는 점에서 몰입도가 좋아서 선호합니다. 하지만 대시보드로서의 Product를 꾸준히 개발하진 못했는데, 저의 게으름이 한 몫했습니다. 이번에 n8n 이라는 도구를 알게 되면서 AI agent를 손쉽게 구축할 수 있다고 들어서 실습 겸 해보았습니다.
2. 개발기
2.1. 문제 정의: 신혼 주부의 콜드스타트 문제
결혼 후 처음 장보기를 시작했을 때의 일입니다. 마트에서 애호박 1개가 1,500원에 팔고 있었고, 저는 고민없이 구매했습니다. 그런데 몇 개월 후, 같은 애호박이 700원에 팔리는 것을 보고 깨달았습니다. 농산물 가격은 계절, 날씨, 공급량에 따라 크게 변동하는데, 초보 주부는 이런 시장 정보가 없다면 '비싼 타이밍'에 구매할 수밖에 없었던 것입니다. 정보 비대칭의 문제였습니다.
"관심있는 품목의 집계 정보만 있어도 좋을텐데.."라는 현실의 문제를 인지했습니다.
다시 생각해보니 "아게 바로 주부의 콜드스타트 문제구나!" 라고 생각 했고, 농수산식품유통공사(aT)가 운영하는 kamis API를 알게 된 것도 이때 였습니다. 하지만, 당시에는 서비스화 하기에는 코딩 지식도 부족했고, AI 도구도 지금처럼 발달하지 않아 막연한 아이디어로만 남겨두었습니다.
2.2. 해결방안: No-code n8n으로 AI Agent 구현
지난번 데이터 파이프라인을 위한 치트시트를 공유한 것 처럼, n8n은 이런 간단한 데이터 파이프라인을 구축할 수 있습니다. 특히, Chat Trigger와 AI Agent 노드의 조합으로 챗봇을 만들 수 도 있습니다. 저는 지난 숙원 사업을 어제 반나절 정도에 완성하여, 요즘 제철 과일, 채소, 육류 제품을 쉽게 조회하고 제철 품목을 제안하는 보고서를 생성하는 AI Agent "FarmData"를 만들었습니다.
🤖 AI Agent란?
AI Agent란 특정 목표를 달성하기 위해 스스로 의사결정을 하고 다양한 Tool을 이용하여 행동할 수 있는 인공지능 시스템을 뜻합니다. "뇌"에 해당하는 Large Language Model, "기억"에 해당하는 Memory(DB), "손과 발"에 해당하는 Tool(Google Sheest, 웹 검색) 3가지 구성 요소가 기본 뼈대입니다. 기존 LLM은 워크플로우가 선형적이고 예측 가능한 반면 (A-> B -> C) 반면 AI Agent는 목표를 달성하기 위한 비선형적 워크플로우를 구성(A -> B -> A -> C)하여 더 복잡하고 다양한 업무를 수행할 수 있습니다.
저는 이 개념을 손쉽게 n8n으로 No-code로 구현하였습니다. 채팅 인터페이스로 Interactive하게 사용할 수 있는 것은 물론, 실제로 노드들의 상호작용을 하거나 중간 Inout/output 내용을 확인 할 수 도 있어 과정을 이해하기도 쉬웠습니다. 또한 데이터 분석을 위해서 로깅 기능을 추가했습니다.
3. 운영기
3.1. 로그 분석
링크드인에 포스팅한 뒤로 약 한달이 지났습니다. 포스팅 노출은 18,112회이며 그 이후로 98개의 세션이 실행되었습니다.
첫 포스팅 8월 29일 이후로 지속적으로 세션이 감소하는 자연스러운 모습이 보입니다만, 일부 링크드인의 알고리즘 때문인지 튀는 값들이 조금 보이는 형태입니다. 반등을 한 건 9월 3일(배포 후 일주일), 9월 8일(일요일) 정도에 상승하는 모습을 보이나, 세션의 모수가 작아서 링크드인의 알고리즘 때문인지는 판단하기 어려운 부분이 있습니다.
시간대는 꽤 정직한 모습을 보이는데, 출근 시간인 7시-9시, 저녁시간인 21~22시에 높은 모습을 보입니다. 의외인 점은 퇴근 시간대 많이 세션이 잡히지 않았는데, 퇴근하고는 자기계발 위주의 SNS는 보기 싫은게 아닌가 🤣 라는 생각이 드네요
3.2. 운영의 문제점
- 데이터가 조회되지 않는 문제
기본 프로덕트는 엄청 간단하게 만들어서 헛점이 많았습니다. 먼저 사용자가 챗봇으로 요청할 때마다 농수산물 품목에 대한 조회가 재현성이 없다는걸 확인했습니다. 아무래도 직거래 시장에서 발생한 데이터를 조회하다 보니 제철이 아닌 과일인 경우 조회하지 못하는 문제가 발생했습니다. 사실 이걸 보완하기 위해서 프롬프트로 "만약 조회 결과가 없다면 이전의 결과를 조회해"라는 식으로 넣었지만 아무래도 조건문이 아닌 프롬프트로 만들다보니 재현성이 떨어졌습니다.
- API 안정성 문제
공공 API다 보니 이따금 HTTP 요청이 제대로 수립되지 않은 문제가 있었습니다. 게다가 위 질문에 대한 리포트를 만드는데 있어서 HTTP 요청이 여러번 실행되는 경우도 있었는데, 반복되는 요청에서 역시 실패하는 경우도 발생했습니다. 사실 이 문제는 사전에 기본적인 데이터를 Database에 저장해놓고 거기에 쿼리를 요청하는게 구조적으로 맞는 것 같습니다. 그 외에 필요한 결과가 있으면 그때 API를 요청하는게 맞는 방법이라는걸 깨달았습니다.
- 사전 테스트
사실 위 내용을 방지할 수 있는 방법은 사전 테스트를 실행해보는 것입니다. n8n에서는 Evaluations이라는 탭을 제공해주는데 이걸 한번 테스트해봤다면 이런 문제를 방지할 수 있었을 것 같습니다.
4. 나가며
AI Agent를 쉽게 만들 수 있다는 점에서는 입문으로 n8n만한게 없는 것 같습니다. PoC로 사용하면 매우 좋을 것 같고, 비개발자들도 쉽게 접근할 수 있다는 점에서 매력적인 툴인 것 같습니다. 보다 더 수준 높은 Agent 구축을 위해서는 Langchain/LangGraph 프레임워크를 사용하면 되겠다는 생각이 들었습니다. 반면, PoC를 만들긴 쉽지만 완성도 있는 프로덕트를 만드는 것은 역시 설계/평가 관점에서 고려할 점이 있다는 걸 깨달은 프로젝트 였습니다. 또, n8n을 만드는 과정에서 데이터 파이프라인을 위한 cheatsheets를 만들었는데 처음으로 github star를 30개 넘게 받아서 기분이 좋았네요. 앞으로는 지속적으로 유즈케이스를 만들어서 github를 채워볼 생각입니다.
5. 레퍼런스
'Data Science > Engineering' 카테고리의 다른 글
Claude Code를 이용한 바이브 코딩 짧은 후기 - 방통대 수업 트래커 만들기 (3) | 2025.09.05 |
---|---|
[월간 데이터 노트] n8n 으로 농수산물 데이터(kamis api) 수집하기 (5) | 2025.08.01 |
Cloud Run과 Streamlit으로 완성한 자동 채점 시스템: 개발부터 운영까지 (5) | 2025.06.23 |
클라우드별 서비스 무료 크레딧 정리, AWS GCP Azure NCP (0) | 2025.03.24 |
슬랙 봇으로 커뮤너티 활성화하기(with CRM 메시지, 마인크래프트) (1) | 2025.02.02 |