한국농수산물유통공사에서는 kamis라는 데이터 정보 공개 시스템이 있습니다. 이따금 실습용으로 데이터를 불러와서 과일, 채소 시세를 만들어보는 목적으로 데이터를 수집해보는 편입니다. 과거에는 직접 python 코드로 작성해서 데이터를 불러왔는데, 서버를 띄우지 않아서 파이프라인까지는 완성하지 못했습니다. 이번에는 n8n을 공부하면서 low code를 no code 툴로 바꿔서 수집해보고 그 차이에 대해서 한번 고찰해봅니다. 


1. 개요

1.1. 과거 데이터 분석 결과 

과거 월간 데이터 노트에서 수행했던 결과를 한장의 포스터로 저장했습니다.

클릭하면 이미지가 커집니다!

 

1.2. 왜 이 분석은 아직 성불하지 못했는가?

위 분석은 사실 n년전 사이드 프로젝트를 하면서 구현한 결과입니다. 장바구니 대시보드라는 이 주제는 사실 지속성있게 데이터를 수집해야만 의미를 가집니다. 하지만 당시 로컬에서 retrospective 그러니까 현재 기준 과거 날짜에 대한 데이터만 수집했습니다. 지속가능한 프로덕트를 위해서는 서버에 올려서 자동화 및 파이프라인을 구축해합니다. 그래야 대시보드의 본질을 찾을 수 있기 때문입니다.

하지만 당시 이리저리 우선 순위에 밀려 단적인 그래프를 그리고 마치게됩니다. 클라우드에 서버를 빌리고 수집하는 과정이 어려운 일은 아니지만 번거로웠기 때문입니다. 그렇게 시간이 지나 월간 데이터 노트라는 스터디에서 다시 한번 부활하게 되었습니다. n8n이라는 자동화 도구를 이용하면 좀 더 편하게 데이터를 수집할 수 있을까요? 

2. 결과:  workflow, 데이터

Google Sheet 에서 데이터를 주고 받으려면 n8n 클라우드에서는 노드만 추가하고 구글 로그인을 하면 됩니다. 하지만 셀프 호스팅의 경우 인증을 위한 사전 절차가 필요합니다. 다음 n8n 문서에 잘 나와있어서 따라하기만 하면 됩니다.

https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/#google-cloud-app-becoming-unauthorized

완성된 work flow
결과

3 . n8n 도입 후기

장점1:  간단한 세팅

기본적으로 n8n은 오픈소스여서 내 컴퓨터에 설치해서 실행할 수 있습니다. 하지만 이 과정이 조금 복잡하기 때문에 14일간의 무료 trial 기간을 제공합니다. 셀프호스팅을 하지 않고 진행할 수 있는 점이 장점입니다. 로컬에서 수집하려면 파이썬 설치, 가상환경 세팅 등이 번거롭습니다. 하지만 n8n 은 node로 이루어진 구성 요소를 선택하고 연결함으로써 쉽게 원하는 목적을 달성할 수 있습니다. 

장점2: 시각화, 쉬운 모듈화

이따금 복잡한 서비스를 만들다 보면 코드레벨에 있는 스키마를 보여주기 위하여 figjam과 같은 3rd party tool이용해서 그려야합니다. 하지만 n8n은 그 자체로 로직이 보이기 때문에 굳이 스키마를 만들기 위한 시간과 노력을 기울이지 않아도 됩니다. 또한 노드들 하나 하나의 input ouput이 명확하게 보여서 어떻게 작동하는지 파악하기 쉬웠습니다.

Input -> 개별 노드의 파라미터 -> Output

장점3: 좋은 레퍼런스들

입문자들에게는 n8n에서 제공해주는 혹은 강의나 블로그에서 제공해주는 .json형식의 workflow를 따라하는 것만으로도 도움이 됩니다. 공식 문서는 제가 근래 본 오픈 소스 중에 가장 이해하기 편했으며, 포럼도 잘 활성화 되어있습니다. 서비스 안에서는 사이드바에서 LLM assist를 받을 수 있습니다. 생각해보니 LLM assist는 클라우드에서만 제공되는 단점이 있네요.

(좌) Docs (우) Forum
workflow 화면 사이드에 chatbot이 존재

 

단점1: 어쨋든 알아하는 작동 방식

노코드 툴이 가지는 전체 문제점이기도 하나, 각 개별 노드가 작동하는 방식을 어렴풋히라도 인지 하지 않으면 설계 자체가 불가능합니다. HTTP 노드에서 수행하는 POST/GET 요청의 차이 받아 처리하는 JSON 자료형, API의 개요, 구글 시트를 연결하기 위한 인증 과정들에 대한 이해가 있거나 해결하려는 마음이 있어야 원하는 결과물을 얻을 수 있습니다. LLM에서 "해줘"라고 요청했을 때 바로 수행하는 그런 경험을 기대했다면 실망할 수 있습니다.

단점2: 셀프호스팅의 할 경우 올라가는 러닝커브

n8n을 최초 회원가입하면 14일간의 무료 Trial을 주지만 결국 끝나면 유료 결재를 하게 될 것입니다. 비용을 피하고 싶다면 셀프 호스팅을 해야하는데 docker등에 대한 도구를 사용하므로 자연스럽게 러닝커브가 올라갑니다. 개발에 익숙하면 어렵겠지만 결국 노코드의 장점을 일부 잃어버린다고 할 수 있겠습니다.

4. 짤막한 후기

로우 코드로 직접 구현하고 만드는 과정이 꽤나 귀찮았는데 n8n으로 하니 파이프라인도 쉽게 만들 수 있는 장점이 있는 것 같습니다. 비개발자를 위한 툴이기도 하지만 개발자들도 쉽게 만들 수 있는 툴인 것 같고 Make, Zaiper 등이 가지고 있는 자동화 라인에서 굳건히 자리를 지킬 것 같네요! 종종 쓰게 될 것 같습니다.

5. 출처

6. 기타 팁

  • 로컬 docker에서 구글 시트와의 정보를 주고 받으려면 인증 진행 필요
  • n8n 클라우드의 경우 인증 버튼이 바로 있지만 셀프호스팅은 그렇지 않기 때문에 Outh 인증을 진행

  • OAuth Redirect URL:  구글 인증 플랫폼 - 클라이언트 - 승인된 리디렉션 URL에 넣을 것,  로그인 요청시 받은 API 엔드포인트 경로인듯
  • Client ID / Secret: GCP 위 경로에서 웹 어플리케이션으로 생성하면 나오는 ID/PW

 

본 주제는 매달 한 번씩 호기심을 주제로 분석하는 모임 <월간 데이터 노트>의 결과입니다. 관심이 있으시면 다음 링크를 확인해 보세요!!

+ Recent posts