해당 글은 백엔드 API 및 워크플로우를 알고 있다는 전제로 작성된 글입니다.
아래의 콘텐츠를 먼저 읽고 오는 걸 추천드립니다.
1. recurring event… 뭔가 아쉬운데…
버블에서는 워크플로우를 반복 실행시킬 수 있도록 [Set/cancel recurring event] 액션을 제공합니다. 백엔드 워크플로우에서 Recurring event를 등록하고, 이를 일정 주기마다 반복 실행하게 만들 수 있습니다. 예를 들어, 유저에게 주기적으로 리마인드 알림을 보내는 등이 가능합니다. 참고로 모든 반복 실행 액션은 백엔드 워크플로우에서 진행됩니다. 왜냐하면, 유저가 페이지에 접속했는지와 무관하게 실행되야 하기떄문입니다.
recurring event로 모든 반복 실행을 뚝.딱. 해치울 수 있을 것 같지만, 그건 아닙니다. recurring event의 근본적인 문제는 액션 실행 주기에 있습니다. 가장 짧은 주기가 일(day) 단위 밖에 되지 못합니다. 즉 시간(hour)이나 분(minute) 단위의 반복 실행을 해결하지 못합니다.
고마우면서도 부족한 recurring event
2. 분 단위로 자동 실행하기
분 단위로 워크플로우를 자동 실행시키려면, 크게 2가지 방법이 있습니다. 각 방법은 작동 원리가 다릅니다. 이 중에서 자신이 편한 방법을 사용하면 됩니다.
1.
액션이 분 단위로 이어서 실행되도록 스케줄링하기
2.
외부에서 분 단위로 API를 전송시키고, 이를 트리거 사용하기
a. 액션이 분 단위로 이어서 실행되도록 스케줄링하기
쉽게 요약하면, 백엔드 워크플로우의 꼬리에 꼬리를 물어 작동하는 방식이라 보면 됩니다.
우선 분 단위로 실행할 백엔드 워크플로우를 만듭니다.
그리고 액션의 마지막에 [Schedule API Workflow]를 추가하고, 실행한 백엔드 워크플로우로 현재 워크플로우를 선택합니다.
[Scheduled date]에는 [Current date/time]에 시간, 분, 초를 추가해 주기를 결정하면 됩니다.
예를 들어, 분 단위로 실행되야 한다면 아래처럼 입력하면 됩니다. 그러면 현재 워크플로우 실행이 끝난 후, 1분 후에 다시 워크플로우를 실행합니다.
다만, 이런 식으로 설정하면 반드시 [setting] > [API]에서 워크플로우 체인의 뎁스 설정을 체크하셔야 합니다. 그렇지 않으면, 백엔드 워크플로우가 순환하는 과정에서 중단될 수 있습니다. 체인 뎁스 설정은 24년 7월 1일부터 버블에서 추가한 설정입니다.
b. 외부 API를 트리거로 사용하기
외부에서 분 단위로 버블에 API를 전송하고, 버블은 이를 트리거로 백엔드 워크플로우를 작동시키는 방법입니다. 워크플로우는 (1) 트리거가 되는 이벤트와 (2) 실행되는 액션으로 구성됩니다. 백엔드 워크플로우의 경우, 이벤트는 API 호출이 됩니다. 즉, API URL을 호출하면, 해당 워크플로우가 실행됩니다.
API 호출 경로는 “https://{domain}/api/1.1/wf/{workflw name}”입니다.
Dev API : https://{domain}/api/1.1/wf/{workflw name}
Live API : https://{domain}/version-test/api/1.1/wf/{workflw name}
HTML
복사
만약 아래와 같은 백엔드 워크플로우라면, 호출 경로는 다음과 같습니다.
Dev API : https://bubblebox-test.bubbleapps.io/api/1.1/wf/minute_automatic
Live API : https://bubblebox-test.bubbleapps.io/version-test/api/1.1/wf/minute_automatic
HTML
복사
그 다음으로 보안을 위해 접근 토큰을 발행해야 합니다. 만약 보안 토큰이 없다면, 누구나 무지성으로 API를 실행할 수 있습니다. [설정] 탭의 [API]에서 API 토큰을 발행합니다. 여기에 적힌 Private Key 값이 인증 토큰으로 사용됩니다.
이제 외부 서비스에서 토큰을 활용해 보안을 인증 받고, API를 실행하면 됩니다. 외부 서비스 중에서 CronJob을 추천드립니다.CronJob은 특정 시간 또는 주기마다 API를 자동 전송하는 툴입니다. 참고로 해당 서비스는 무료입니다.
Cronjob에서 다음처럼 API를 생성하면 됩니다. [URL]에는 API 호출 경로를 입력합니다. [Execution schedule]에는 분 단위로 주기를 조절하거나, 매일 특정 시간에 전송할 수 있습니다. 참고로 Dev는 Live와 호출 경로가 다릅니다. Dev의 경우, “version-test” 패스가 있습니다. 따라서, 데브용과 라이브용을 각각 만들어줘야 합니다.
그리고 [Headers]에 보안 토큰을 입력합니다. [Key]에는 Authorization, [Value]에는 Bearer {token}을 입력합니다. [Request method]는 [POST]로 선택합니다. 이제 설정한 바에 맞춰 API가 자동 실행됩니다.
보다 자세한 설정 방법은 아래 유튜브 영상을 추천드립니다. 세팅부터 적용까지 세세하게 설명하고 있습니다.
버블을 주제로 책을 집필하고 있습니다. 버블의 기초 개념부터 실제 서비스를 만드는 방법까지 상세히 작성하고 있습니다. 버블을 더 자세히 배워보거나, 기본기를 다지고 싶다면 아래에서 출간 알림을 신청해주세요…!
버블박스가 버블을 주제로 책을 발행할 예정입니다. 출간 알림을 등록하면 추후에 안내 드릴게요!
+ 알림 신청자 중 일부에게 책을 무료로 드릴 예정입니다.
필요한 플러그인이 있다면, 버블박스에게 요청해주세요
햇갈리거나 잘 모르는 이론 및 개념이 있다면 아래에 남겨주세요.
버블 크레딧으로 더 저렴하게 시작하기
버블박스 l BubbleBox