*이 섹션에서는 작업을 수행하는 앱의 엔진인 workflow(워크플로)를 다룹니다.
(1) 워크플로 (Workflow) 정의
:워크플로는 페이지에서 항목을 숨기거나 표시, 애니메이션을 적용하는 것부터 변경에 이르기까지 모든 작업을 수행할 수 있는 action(액션)을 사용합니다.
- 워크플로는 버튼 클릭과 같은 사용자의 Action에 응답하도록 Bubble에 지시하는 방법입니다.
- Action(액션)을 사용하여 데이터베이스에서 외부 API 호출을 수행하기도 합니다.
Workflow(워크 플로)는 Action(액션)과 그 액션을 트리거하는 Event(이벤트)의 조합입니다.
(2) 이벤트 (Event)
*이벤트는 다음과 같이 워크플로우를 실행하도록 지시하는 모든 것입니다.
- 클릭되는 버튼
- 변경되는 입력 값
- 참인 조건
- 사용자 로그인 또는 로그아웃
- 데이터베이스의 변경 사항
*이벤트는 페이지에서 실행되거나 서버 측에서 트리거 될 수 있음(사용자가 페이지를 열어 접속을 안 해도 트리거 가능)
(3) 액션 (Action)
*Action(액션)은 이벤트에 의해 워크플로가 트리거될 때 발생하는 작업입니다. 하나의 워크플로 내에 필요한 만큼 Action(액션)을 배치할 수 있습니다.
Action은 다음과 같은 작업을 수행할 수 있습니다.
- 데이터베이스에서 항목 생성, 업데이트 및 삭제
- 페이지에서 요소 숨기기, 표시 및 애니메이션
- 사용자 계정 생성 및 사용자 로그인/로그아웃
- 이메일 보내기
- 다른 페이지로 이동
- 데이터 로드 중
- 결제 등 플러그인 사용
*워크플로에서의 Action(액션)은 사용자의 작업이나 조건 변경에 응답하도록 만드는 방법입니다.
(4) 워크플로 구성
워크플로 편집기의 워크플로는 더 쉽게 탐색할 수 있도록 폴더를 만들고 워크플로에 색상을 추가하는 두 가지 방법으로 분류할 수 있습니다.
- 워크플로를 가장 잘 구성하는 방법에 대한 규칙이나 모범 사례는 없지만 색상을 폴더와 결합하여 워크플로가 많은 페이지를 효율적으로 탐색하는 방법에 대해 생각해 보는 것이 좋습니다.
1. 이벤트 색상(Event color) : 이벤트 색상 지정
- 추가하는 각 워크플로에는 임의로 다음 색상 중 하나를 지정할 수 있습니다.
- 이 옵션은 개발자가 이벤트의 특성분류가 쉽도록 임의로 색상을 지정하는 분류 방법으로 사용됩니다.
- 회색(기본값)
- 파란색
- 빨간색
- 녹색
- 주황색
- 보라
- 시안
- 갈색
2.Workflow folder (워크플로우 폴더) : 폴더로 분류
- 워크플로 편집기의 왼쪽에 있는 워크플로 폴더 탐색기를 확장하여 워크플로를 구성할 수 있습니다.
- 기본적으로 폴더는 없으며 필요한 만큼 만들 수 있습니다.
- 각 워크플로는 하나의 폴더에 속할 수 있으며 폴더에 없는 워크플로는 all workflow(모든 워크플로) 보기 또는 no folder assigned(할당된 폴더 없음) 보기에 표시됩니다.
3.Workflow tree(워크플로 트리) : 워크플로우 탐색기
- 폴더 탐색기 아래에는 Workflow tree(워크플로 트리)가 있습니다. 이것은 복잡한 페이지에서 워크플로를 탐색하기 위해 선택한 폴더를 반영하여 탐색을 쉽게 도와주는 도구입니다.
- 우측에서 선택한 이벤트가 Workflow tree에 파란색으로 표시되고 +를 클릭하면 하위의 액션(Action)을 볼 수 있습니다.
(5) 워크플로의 오류
워크플로우는 다양한 시나리오에서 오류를 발생시킬 수 있습니다.
(예시)
- 사용자가 잘못된 자격증명을 사용하여 로그인을 시도합니다.
- 사용자가 데이터베이스에 이미 존재하는 이메일을 사용하여 가입을 시도합니다.
- 카드가 거부되어 신용 카드 결제에 실패했습니다.
- 워크플로에 오류가 발생하면 오류가 발생한 작업에서 실행이 중지됩니다. 이전 작업은 되돌릴 수 없습니다.
*이 섹션에서 논의하는 오류는 시스템 오류와 관련이 있으며 Bubble의 issue tracker(이슈 추적기)에 의해 플래그가 지정되는 오류가 아닙니다.
1. 오류 처리
- 대부분의 오류를 전달하는 Bubble의 기본방법은 브라우저의 표준메시지 팝업을 뛰워서 오류를 표시하는 것입니다.
- 오류가 발생하는 이벤트에 대해 예측되는 오류가 발생 시 다른 이벤트를 사용하여 페이지에서 오류를 처리하도록 Bubble에 지시할 수 있습니다.
- 다음의 이벤트들을 Workflow에 추가하여 해당 이벤트가 발생시 액션으로 Alert 메시지를 보여주게 설정하고 다른 액션으로 에러를 처리하게 할 수 있습니다.
2. Element(요소)에 워크플로를 실행하는 동안 오류 발생
- 추가 위치: Elements > An element has an error running a workflow
- 이 이벤트는 특정 element(요소)와 관련하여 발생하는 오류를 포착합니다.
- 예를 들어 사용자 로그인 작업이 포함된 워크플로에 연결된 로그인 버튼이 오류를 생성하는 경우 오류는 해당 버튼에 연결됩니다.
3. 처리되지 않은 오류가 발생
- 추가 위치: General > An unhandled error occurs
- 이 이벤트는 보다 광범위하게 오류를 포착합니다.
- 페이지의 모든 오류는 다른 오류 이벤트에 의해 포착되지 않는 한 오류를 trigger(트리거)합니다.
(5) Workflow timeout(워크플로 시간 초과)
- 드문 경우지만 워크플로가 실행 중에 시간 초과될 수 있습니다.
- 현재 워크플로가 실행 중이고 5분 이내에 완료되지 않으면 중지됩니다.
- 그전에 한 번 완료된 작업은 되돌리지 않습니다.
워크플로 시간 초과는 일반적으로 비정상적으로 복잡하거나 매우 많은 양의 데이터를 처리하려는 워크플로에서만 발생합니다.
1. 한 번에 많은 데이터 목록 변경
- 예를 들어 데이터 목록 변경(Make changes to a list of things)과 같은 작업은 짧은 목록에 적합하지만 너무 많은 항목을 포함하면 시간이 초과될 수 있습니다. 100개가 넘는 항목에 대한 항목 목록을 변경하는 것과 관련된 작업은 사용하지 않는 것이 좋습니다.
- 더 긴 항목 목록을 처리해야 하는 경우 고급기능으로 재귀(recursive) 워크플로를 사용할 수 있습니다.
2. 한 번에 너무 많은 워크플로 실행
- 한 번에 너무 많은 워크플로를 실행하면 사용자 장치의 사용 가능한 용량이 부족하여 일부 또는 전체가 시간 초과될 수 있습니다.
- 더 많은 사용자와 함께 앱이 확장됨에 따라 트리거 되는 워크플로의 수도 그에 따라 확장된다는 점을 염두에 두어야 합니다.
- 예를 들어 데이터베이스를 변경하는 페이지 로드에 워크플로우를 추가할 때 주의하십시오. 많은 사용자가 동시에 페이지를 로드하면 시스템에 과부하가 걸릴 수 있습니다.
- 이 문제를 완화하려면 가능한 한 워크플로 트리거에 간격을 두거나 용량을 늘리기 위한 옵션을 확인하십시오.