본문 바로가기
버블 개발/중급

83. API worflows (중급) : 백엔드 워크플로우 설정, 보안, 외부에서 사용하기 설정

by 스타트업 사업가 마르코 2023. 8. 16.
이 섹션에서는 API 워크플로와 이를 애플리케이션에서 설정하는 방법을 다룹니다.

 

API 워크플로는 애플리케이션에서 예약/트리거하거나 API 요청을 통해 외부 애플리케이션이나 시스템에서 트리거할 수 있게 노출할 수 있는 서버 측(백엔드) 워크플로입니다.

 

(1) API workflow 정의

1. API workflow의 특징

1) API 워크플로우는 페이지와 독립적으로 실행되므로 앱을 방문하는 사람 없이 실행할 수 있습니다.

  • 서버에 API 요청을 하면 데이터를 만들고, 사용자를 등록하고, 이메일을 보낼 수 있습니다.
  • 일반적인 workflow로 할 수 있는 모든 작업을 수행할 수 있습니다.

 

2) 외부 앱에서 이벤트가 발생하고 그 앱에서 당신의 앱으로 HTTP 요청을 보냅니다.

  • 이를 Webhook(웹훅) 요청을 보낸다고 합니다.
  • 이렇게 하면 환영 이메일을 보내거나 사용자를 뉴스레터 목록에 추가하는 등 애플리케이션에서 프로세스를 시작할 수 있습니다. 데이터 API와 마찬가지로 이러한 요청은 특정 리소스를 가리켜야 합니다.

 

3) Bubble은 노출하도록 선택한 각 API 워크플로에 대해 URL을 자동으로 생성합니다.

  • 이렇게 URL이 생선되면 이들도 API의 Incoming call이 됩니다.
  • 즉 이들로 다른 곳에서 앱으로 들어오는 Call과 같은 것으로 취급됩니다.

 

2. API workflow 활성화

API 워크플로는 백엔드 워크플로라는 버블 편집기 섹션에서 편집됩니다. 백엔드 워크플로우 편집기를 활성화하고 액세스 하려면 아래 단계와 같이 설정해야 합니다.

 

Settings > API > Public API endpoints > Enable Workflow API and Backend workflows 체크

workflow API 설정
workflow API 설정

 

 

33. Bubble API 소개 (중급) : 버블 Data API, 버블 Workflow API, 버블 Swagger 설정, FAQ

이 섹션에서는 Bubble이 API 엔드포인트를 설정하여 다른 애플리케이션이 데이터베이스를 읽고 편집하고 워크플로를 실행할 수 있도록 하는 다양한 방법을 다룹니다. 특히 마지막에는 RESTful API가

conversion-skill.tistory.com

 

(2) API 워크플로와 일반 워크플로 비교

API 워크플로와 일반 워크플로는 아래와 같이 몇 가지 중요한 차이점이 있습니다.

행동 API 워크플로우 일반 워크플로우
외부 애플리케이션에서 트리거 가능 아니요
페이지가 닫혀도 계속 실행됩니다. 아니요
루프 자체를 예약할 수 있습니다. 아니요
미래에 실행되도록 예약 가능 예, 페이지를 닫아도 실행됩니다. 예, 하지만 페이지는 열려 있어야 합니다.
개인 정보 보호 규칙을 재정의할 수 있음 아니요
100% 서버 측에서 실행됨 아니요

 

(3) 서버 측 워크플로 사용

서버 측에서 실행되는 워크플로를 설정하면 다음과 같은 상황들에서 유용합니다.

 

1. 보안

워크플로우는 페이지와 사용자로부터 떨어져서 실행되기 때문에 더 안전합니다.

 

  • 웹 개발의 주요 원칙 중 하나는 페이지에서 수행되는 모든 종류의 프로세스를 개발자와 같은 전문가 수준의 사용자가 기술적으로 데이터를 가로챌 수 있는 반면 서버에서 발생하는 작업은 염탐하는 눈으로부터 안전하게 숨길 수 있다는 것입니다.
  • 이것은 페이지에서 트리거 된 모든 워크플로가 안전하지 않다는 말이 아니라 장치 사용자가 진행 상황을 볼 수 있다는 것입니다. 대부분의 경우 이것은 문제가 되지 않지만 일부 특수한 경우에는 민감한 프로세스가 발생할 때는 주의해야 합니다.
  • 예를 들어 추가 인증 수단으로 사용자에게 보낼 임의의 텍스트 문자열을 생성한다고 가정해 보겠습니다. 사용자가 보고 있는 페이지의 워크플로에서 해당 코드를 생성하면 사용자가 생성된 문자열을 보고 보안 조치를 우회할 수 있습니다. 이 문자열은 백엔드 워크플로에서 생성되고 이메일로 전송되어야 합니다. 왜냐하면 사용자는 서버에서 진행되는 작업을 볼 수 없기 때문입니다.

 

2. 성능

API 워크플로는 기술적으로 일반 워크플로와 동일한 양의 서버 용량을 사용하지만 여전히 이를 활용하여 사용자에게 앱의 성능이 더 좋아 보이도록 할 수 있습니다. 서버에서 수행되는 모든 작업은 사용자 페이지에서 성능 저하를 일으키지 않으므로 복잡한 워크플로를 서버로 이동하여 페이지를 가볍게 유지하고 해당 코드 베이스를 최소화할 수 있습니다.

 

: 성능을 계획할 때 다음 사항에 유의하십시오.

  • API 워크플로는 한 명의 특정 사용자에 대해 눈에 띄는 속도 저하를 일으키지 않지만 여전히 앱의 총용량을 소비합니다. (최대 용량이 초과되면 잠재적으로 모든 사용자의 속도 저하가 발생할 수 있음)
  • API 워크플로 예약 자체는 완료하는 데 몇 분 정도 걸릴 수 있는 프로세스입니다. 더 간단한 워크플로의 경우 페이지 워크플로에서 작업을 완료하는 것이 더 빠른 경우가 많습니다.
  • 페이지에 추가하는 모든 것(element, 워크플로우 및 조건)은 브라우저가 다운로드해야 하는 페이지의 전체 크기에 추가됩니다. 일부를 백엔드로 이동하면 페이지를 최대한 가볍게 유지할 수 있습니다. API 워크플로도 앱의 용량을 사용하므로 워크플로를 백엔드로 이동하면 페이지의 로드 시간과 크기에만 영향을 미칩니다.

 

3. 대량 작업

API 워크플로는 대량의 데이터를 변경해야 하는 더 무거운 워크로드를 설정할 수 있는 곳이기도 합니다.

 

: 다음과 같이 프로세스를 프런트에서 백엔드로 옮기는 것이 타당한 몇 가지 경우가 있습니다.

  • 백엔드에서 실행 중인 프로세스는 완료될 때까지 계속 실행되는 반면, 온페이지 워크플로는 사용자가 브라우저를 닫으면 실행이 중지됩니다.
  • 백엔드 워크플로는 자체적으로 일정을 잡을 수 있으므로 반복할 수 있습니다. 이것은 데이터베이스 목록을 처리해야 할 때 유용합니다.
  • 복잡한 워크플로는 앱의 프런트엔드 속도를 저하시킬 수 있지만 백엔드에서 실행하면 사용자가 알아차리지 못합니다.
  • 백엔드 워크플로가 페이지와 독립적으로 실행되고 눈에 띄게 속도 저하를 일으키지 않더라도 복잡한 프로세스를 실행할 때는 여전히 앱의 용량을 최대화할 수 있으므로 주의해야 합니다. 대량 작업을 실행할 때 logs의 용량 차트를 주시하십시오

 

(4) 내부적으로 API 워크플로 사용

내부적으로 API 워크플로를 사용하는 것은 다음 두 단계로 이루어집니다. 먼저 API 워크플로를 생성한 다음 API 워크플로 예약 작업을 사용하거나 트리거해야 합니다.

 

: 아래 두 문서는 프로세스의 두 부분을 모두 설명합니다.

 

1. 트리거/예약할 API 워크플로 생성

  • API 워크플로우 생성하기
 

84. API workflow 생성하기 (중급) : 활성화, endpoint 정의, parameter 정의, 자동 감지 설정

이 섹션에서는 API 워크플로를 만들고 설정하는 방법을 다룹니다. (1) API 워크플로 시작 API 워크플로의 생성은 html페이지에서의 일반 워크플로 생성과 동일한 방식으로 이루어집니다. *활성화 설

conversion-skill.tistory.com

 

2.  API 워크플로 예약 작업을 사용하여 현재 또는 미래의 워크플로를 예약

  • API 워크플로 예약하기

 

 

85. Scheduling API Workflows (중급) : 워크플로우 예약 사례, 예약 설정, list 예약 설정, 취소

이 번 섹션은 Scheduling API Workflows 의 사례와 예약방법과 취소방법에 대해 배웁니다. Scheduling API 워크플로는 앱에서 내부적으로 트리거되거나 예약될 수 있습니다. *Workflow API는 외부 애플리케이션

conversion-skill.tistory.com

 

3. Recusive API workflow

워크플로의 순차적 루프를 실행하거나 지정된 간격으로 실행되도록 예약하려는 경우 재귀 워크플로 사용을 고려할 수도 있습니다.

 

  • 재귀 API 워크플로생성하기
 

86. Recursive API Workflows(중급) : 재귀적 워크플로우 정의, 설정

이 섹션에서는 재귀적(Recursive) 워크플로의 정의와 설정 방법에 대해 설명합니다. API 워크플로는 재귀적으로 설정할 수 있습니다. 즉, 워크플로는 워크플로 자체를 반복시킬 수 있습니다. 이것은

conversion-skill.tistory.com

 

(5) 외부 사용을 위해 API 워크플로 노출

API 워크플로가 생성되고 공개 API 워크플로로 노출되도록 설정되면 API 요청을 사용하여 외부 애플리케이션에서 트리거할 수 있습니다.

 

: 아래 문서에서는 API 워크플로를 만드는 방법과 Bubble API로 인증하는 방법을 설명합니다.

 

1. API 워크플로우 생성

  • 먼저 트리거할 API 워크플로를 생성해야 합니다.
 

84. API workflow 생성하기 (중급) : 활성화, endpoint 정의, parameter 정의, 자동 감지 설정

이 섹션에서는 API 워크플로를 만들고 설정하는 방법을 다룹니다. (1) API 워크플로 시작 API 워크플로의 생성은 html페이지에서의 일반 워크플로 생성과 동일한 방식으로 이루어집니다. *활성화 설

conversion-skill.tistory.com

 

2. 인증(Authentication)

  • 외부 시스템에서 워크플로에 액세스 하려면 먼저 구현할 인증 유형을 결정해야 합니다.
 

87. Authentication (중급) : API 인증 bearer token, 인증없이 접속, 사용자 인증, 관리자 인증

이 섹션에서는 Bubble 애플리케이션에 대한 연결을 시작하는 클라이언트를 인증(Authentication)하는 방법에 대해 설명합니다. 인증(Authentication)은 애플리케이션에 접속할 수 있는 리소스를 확인하기

conversion-skill.tistory.com

 

3. API endpoint

  • 마지막으로 외부 앱을 올바른 API 워크플로 엔드포인트로 안내하여 애플리케이션에 요청을 보낼 수 있습니다.
 

84. API workflow 생성하기 (중급) : 활성화, endpoint 정의, parameter 정의, 자동 감지 설정

이 섹션에서는 API 워크플로를 만들고 설정하는 방법을 다룹니다. (1) API 워크플로 시작 API 워크플로의 생성은 html페이지에서의 일반 워크플로 생성과 동일한 방식으로 이루어집니다. *활성화 설

conversion-skill.tistory.com