워크플로 자동화 도구를 왜 사용할까?
우리는 회사에서, 혹은 집에서 다양한 목적을 위해 “여러 작업”의 조합으로 “하나의 워크플로”를 진행할 것이다.
•
새로운 구성원이 추가되었을 때, JIRA / Confluence / Slack 등을 가입 + 지메일 사용 등등…
•
회의를 진행 후, 회의 내용을 텍스트로 작성하여 매 회의마다 회의록 기록
•
새로운 Raw 데이터를 업로드하면 파일 변환 후 저장, 관련 정보 슬랙에 전송
•
…
각자 많은 위치에서, 적지 않은 “워크플로”를 수동으로 처리하는 경우가 많을 것이다.
하지만, 이러한 워크플로는 자동화하기에는 어려움이 있다.
1.
매 워크플로마다 개발자에게 자동화를 요청하기 어렵다.
2.
만들 수 있는 워크플로 경우의 수가 무한대에 가깝기 때문에, 자동화 개발 시 확장성이 반드시 필요하다.
3.
1-2 내용이 비개발자가 진행하기 어렵다.
4.
개발자도 자동화 도구 및 서버에 많은 서드파티를 연결하기 위한 모듈이나 Config등을 관리하기 복잡해진다.
워크플로 자동화 도구는 이러한 문제를 많이 해결할 수 있다.
1.
워크플로를 시각화하여 원하는 서드파티를 편하게 연결/해제할 수 있다.
2.
비개발자도 유지보수 및 신규 워크플로의 추가가 가능하다.
3.
…
워크플로 자동화 종류
다양한 도구들이 있고, 각각 특징이 있다. 우선 Zapier, Make, n8n(네이테이션)을 소개한다.
아래표에 작성된 내용은 대략적인 특징을 나타내기 위한 내용으로, 절대적인 척도는 아니다.
도구명 | Zapier | Make | n8n(네이테이션) |
난이도 | 하 | 중(복잡한 일부 작업도 처리 가능) | 중상(개발자 등 기술 사용자에게 적합하며, 높은 확장성 및 유연성 제공) |
동작 방식 | 드래그 앤 드롭 X | 드래그 앤 드롭 O | 드래그 앤 드롭 O |
확정성 | 복잡한 작업은 처리가 어려울 수 있음 | 어느정도 복잡한 워크플로도 가능 | NPM을 사용한 커뮤니티 노드 및 JS/Python등을 사용한 노드 등으로 높은 확장성을 가짐 |
학습 곡선 | 하 | 중 | 상 |
오픈소스 여부 | X | X | O
(자체 호스팅 가능, 오픈소스[]) |
클라우드 지원 여부 | O | O | O |
개인적으로 n8n을 사용하기 때문에, 간단하게 어떤 것인지 소개하려고 한다.
n8n 이란?
n8n(네이테이션)으로 불리며, 자체 호스팅이 가능하며 높은 확장성을 가진 자동화 도구이다.
개인적으로도 사용하는 이유가, 자체 호스팅 및 docker-compose 등을 사용한 로컬 실행이 가능하기 때문이었다.
추가적으로, 워크플로를 구성하는 각 작업(노드) 종류 중 원하는 노드가 없는 경우 Python 코드를 자체적으로 동작시키는 등 높은 확장성을 가진 것이 마음에 들었다.
개발자로 살아왔기 때문에, 오히려 UI를 사용한 자동화가 어색했다
(+ 추가적으로 NGROK은 Static Domain을 무료로 1개를 제공해준다. 이를 이용해 고정적인 URL을 사용할 수 있다.)
다른 워크플로 자동화 도구처럼 다양한 AI / Infra / Cloud / Office / Mail등 작업과 관련된 수백개의 작업(노드)가 존재한다.
이 외 다양한 데이터 파서, 워크플로 트리거, Chain(AI + Memory + Tool), 자체 호스팅 환경에서는 로컬 커맨드 실행 및 파일 참조를 통해 확정성을 키울 수 있다.
사용 예시
공식 페이지에도 많은 사용 예시가 있지만, 개인적으로 사용한 예시를 소개하고 싶다.
나는 유튜브를 평소에 즐겨보는데, 수많은 영상에서 주식 / 코인 / IT / 정치 등 다양한 정보를 유튜브로 제공하는 추세이다.
물론, 게임 유튜버의 게임 플레이 영상 등 오락성을 위한 영상도 많다.
하지만, 위와 같은 정보를 전달하기 위한 채널은 종류가 굉장히 다양하여 다루는 주제나 편집 스타일에 따라 영상 길이는 천차만별이다.
모든 영상이 딱 1분인 컨셉을 가진 유튜버
경제 / 정치 등 다양한 주제를 제공하는 유튜버
짧은 영상의 경우, 빠르게 볼 수 있지만 긴 영상의 경우 관심을 가지는 채널임에도 매번 다 챙겨보고 정보를 머리속에 저장하기에는 쉽지 않다.
현재 구글 익스텐션으로 영상을 요약해주는게 있지만, 보통은 영상의 자막을 사용해 요약을 한다.
유튜브를 보는 사람은 알겠지만, 유튜버가 수기로 등록하는 자막은 정확하지만 자동 생성 자막은 그리 정확하지 않다.
추가적으로 각 영상으로 접속하여 요약을 동작하기 때문에, 결국엔 사용자가 직접 접속해야한다.
나는 이 부분을 개선하고 자동화해보기 위해 아래 워크플로우를 로컬 환경의 n8n에서 만들어보았다.
1.
유튜브 영상 오디오 추출
2.
오디오 → Text 변환
3.
변환된 Text 요약
4.
요약된 Text Slack 전송
n8n UI 사진
요약된 내용을 Slack으로 전송
이와 같이, 상상력 / 기획력에 따라 원하는 자동화의 MVP를 빠르게 만들 수 있다.
만약 추후 실제 코드로 구현해야한다면, 미리 간단하게 기획을 위해 만들어 비개발자에게도 개발적인 내용에 대해 커뮤니케이션 할 때 도움이 될 것이다.
n8n에 대한 자세한 사용법은 추후 별도의 페이지에 기록하도록 하겠다.