LLM의 물결과 함께 Youtube에서 빅 트렌트처럼 n8n 관련 컨텐츠가 밀려들어왔다. 첫눈에 이건 꽤 쓸만하다는 느낌을 받았다.
현재 회사에서 low code 솔루션으로 Nintex K2를 이미 사용중인데 low code 솔루션을 사용하면서 느낀점이 그렇게 긍정적이지만은 않았다.
코딩을 안해도 (또는 최소한만 해도) 된다는 것, 그래서 사용자가 원하는 어플리케이션을 빠르게 완성할 수 있다는 것이 가장 큰 도입의 이유였었다. 그런데 몇년을 사용해보면서 느낀점은 다음과 같다.
장점:
강력한 프레임웍처럼 이미 DB 액세스 방식이나 UI 제작방식이 정해져 있어서 정해진 방법대로 따라가기만 하면 된다. 소위 Plumbing이라는 불리는 밑단 작업을 할 필요가 없다.
Workflow 관리가 강점이다. 드래그 앤 드랍 방식으로 Workflow를 작성하고 단계별 필요시 Task를 생성해서 사용자에게 할당하고 추척관리가 가능하다.
최대의 장점은 사실 솔루션이 제공하는 기능이 제한적이기 때문에 복잡한 사용자 요구사항을 솔루션이 지원하는 않는다는 이유로 쳐낼수 있다는 점이다. UI도 화려하게 할 필요없이 표준 UI만으로 제작하기 때문에 단순함을 유지할 수 있다는 것이 최대 장점이다.
단점:
DB 액세스 속도가 느리다. 데이터 불러오는 속도는 특별히 느리지 않지만 약 2만건의 auto-complete 데이터 (예를 들면 상품 리스트) 를 불러오면 UI에 로딩되는 시간이 1분넘게 걸린다. 보통의 front-end 개발이었다면 이렇게 퍼포먼스가 나쁠리 없다.
Nintex K2 솔루션은 Smart Object라고 불리는 ORM 스타일의 데이터 Object를 통해서 DB를 액세스하는데 중간규모의 앱 데이터베이스를 연동한 경우 전체 Smart Object를 Refresh하면 UI에서 time-out이 걸릴 정도로 시간이 오래 걸린다. 이게 되는건지 안되는건지 알수도 없는데, 경험상 계속 놔두면 UI에 응답은 오지않지만 결국 Refresh는 되는것 같다.
드래그 앤 드랍방식의 UI Response가 느리다. 때때로 모듈을 드래그 하면 화면 좌측끝에서 우측끝까지 가는데 10초 이상 걸린다. 화딱지 나서 쓰고싶지 않을 정도다.
Workflow 단계별 디버깅이 어렵다. 단계별 입력값과 출력값을 확인하려면 console.log 하듯이 message component를 써서 값을 화면에다 찍어보든지 email component를 써서 값을 받아봐야 한다. Visual Studio 디버깅 환경을 사용하던 개발자 입장에서 이건 고문에 가깝다.
UI에서 발생하는 이벤트 처리가 주어진 방식안에서만 처리가 가능해서 Flexibility가 적다.
중형기업의 입장에서 비용적으로 저렴한편이 아니다.
그러던 차에 n8n을 써보니,
- Workflow 그리는 UI가 빠르고 안정적이다.
- Workflow 단계별 입출력 데이터가 모두 저장되어서 디버깅이나 Audit에 유리하다.
- Workflow가 JSON으로 저장되어 카피, 백업, 공유가 용이하다.
- 백앤드에서 필요한 꽤 많은 기능들이 모듈로 만들어져 제공되고 있다.
- 커스텀한 기능이 필요한때는 Code 모듈을 이용해서 Javascript로 필요한 기능을 구현하면 된다. 이것조차 요즘은 LLM이 도와줘서 더 수월하다.
- Community License로 On-Prem에 설치하면 숫자 제한없이 Workflow를 생성하고 실행할 수 있다.
그래서 요즘은 개인적으로나 회사에서도 뭔가 백앤드 업무가 발생하면 1차적으로 n8n으로 가능한 일인지부터 생각해본다. 회사에서는 이미 2여러가지 요구사항을 n8n으로 처리하고 있고, 예전같으면 Nintex K2로 했을법한 요구사항도 최근에는 n8n + vibe-coded simple web UI로 처리했다.
Nintex K2와 비교했을 때 n8n의 아쉬운점이라면 사용자를 위한 UI (web form)이 아주 최소한의 기능만 제공되고 있다는 점인데, vibe-coded simple web UI 를 만들어 workflow 업무들의 범용 web form으로 사용하는 방식으로 조만간 K2 전체를 교체하게 될 것 같다.
Microsoft기술을 기반으로 하는 팀의 특성상 n8n이 호환가능한 DB로서 MSSQL을 제공하지 않는 점은 아쉽지만 언젠가 이부분은 추가되지 않을까 싶다. 지금은 기본으로 제공되는 Sqlite를 사용하고 있는데 수개월이 지난 지금까지 별다른 문제점 없이 잘 사용하고 있다.
n8n 아직 사용하지 않고 있다면 꼭 써라, 두번 써라.