버블에서 리피팅그룹 각 셀마다 워크플로우를 실행하고 싶을 때 : 플러그인 오케스트라(orchestra)

안녕하세요! 오늘은 bubble.io에서 가장 활용도가 높은 플러그인 orchestra에 대한 기술블로그를 작성해보고자 합니다. 

이 포스트의 독자층은 보통 버블 입문자일 것 같은데요, 이번 포스팅을 잘 읽고 오케스트라의 사용방법을 자세히 익혀서 구현할 수 있는 기술 범위를 더 넓혀보시길 바랍니다!

버블에서는 데이터 더미를 반복적인 형식으로 프론트에 나타내주는 작업이 빈번하게 나타나는데요, 이 때 사용하는 요소가 Repeating group입니다. 리피팅 그룹 내부에 표시해 줄 데이터 리스트를 지정하고, 가장 첫번째 셀에 각각의 데이터를 나타내 줄 형식을 디자인하면 지정한 데이터 리스트 내부의 모든 데이터가 같은 형식으로 나타나게 됩니다. 

이 때에 이 리피팅그룹 내부의 데이터리스트에 동일한 워크플로우를 실행시키고 싶을 때! 오케스트라를 사용할 수 있습니다. 버블 자체 기능만으로는 리피팅 그룹의 내부 데이터에 각각의 워크플로우를 실행시킬 수 있는 방법이 존재하지 않기에 plugin orchestra가 아주 유용하게 사용될 수 있습니다.

예를 들어, 어떤 상품 리스트를 리피팅그룹으로 나타내주었고, 각 셀에서 해당 상품의 수량을 지정한 후, 리피팅그룹 하단의 저장 버튼을 누르면 각 셀의 상품의 수량 정보에 내가 지정한 수량이 들어가도록 하려는 상황을 가정해봅시다. 이 때에, 오케스트라의 ‘maestro’에게 어떤 ‘musician'에게 명령(지휘)을 내릴 것인지 지정하고, 해당  ‘musician'이 각 셀에서 어떤 워크플로우를 실행할 것인지를 지정해둔다면, 저장버튼을 눌렀을 때 이를 trigger 할 수 있습니다. trigger가 된 ‘maestro’는 지정된 ‘musician'에게 실행 명령을 내리고, 각 셀 내부의 ‘musician'은 셀 하나하나마다 워크플로우를 실행합니다.

결과적으로 리피팅그룹의 각 셀 내부에서 각각의 워크플로우가 실행되며  상품의 수량 정보에 내가 지정한 수량이 들어가도록 수정이 완료되는 것이죠.

이 작업은, 기존에 여러 개의 워크플로우를 만들어 각각을 실행시켜줘야하는 과정을 trigger 한 번에 간편하게 실행될 수 있도록 해준다는 아주 큰 장점이 있습니다. 예를 들어, 기존에 수량을 변경하고 싶은 상품 정보가 5개였다면 5개의 워크플로우(step)을 넣어주어야 하겠지만, 이 작업은 trigger이 걸리는 하나의 워크플로우에서 모든 작업이 끝나죠.

그럼 이제부터는, 이 강력한 플러그인을 어떻게 사용하는 것인지, 사용 방법에 대해 상세히 기술해보겠습니다! (같이 따라해보시면 도움이 많이 됩니다)

—-------------------------------------------------------------

1. 일단, 플러그인을 먼저 설치해봅시다.
버블 좌측의 탭에서 plugin탭을 클릭한 후, 우측 상단의 +add plugins 을 클릭합니다.
검색창에 orchestra를 입력하고, install해줍니다.

2. 기본 설정에 element id 설정
orchestra를 본격적으로 사용하기 전에, 기본 설정 변경이 필요합니다. 이 플러그인에서는 element id로 maestro가 지휘할 musician을 지정할 수 있는데요, element id는 버블 앱을 처음 만들었을 때 기본 설정값으로 들어가있지 않기 때문에 따로 설정을 해줘야합니다.

우측 탭의 settings를 클릭하고, 상단의 general탭을 선택한 후 가장 하단으로 스크롤하면, ‘Expose the option to add an ID attribute to HTML elements’라는 문구와 함께 체크박스가 있는데요, 체크해줍니다! 이 체크박스가 선택되면 프론트에 있는 html elements들의 아이디를 지정할 수 있게 됩니다.

이 체크박스를 선택하기 전에는 아래 사진과 같이 어떤 element의 appearance탭 맨 하단에 ID attribute란이 없지만, 체크박스 선택 후에는 그 다음 사진과 같이 탭 맨 하단에 ID attribute란이 생깁니다. 


이제 좌측의 디자인 탭을 클릭해 maestro와 musician을 배치해봅시다!

3. element 배치
먼저, 리피팅그룹을 생성하고, 리피팅그룹에 표시해 줄 데이터 리스트를 지정(app data에서 실제로 표시될 예시 데이터를 꼭 만들어줍시다!)해준 후 하단에 button을 배치해줍시다.

오케스트라를 설치하면 디자인탭의 visual element 탭에  musicians과 maestro가 생겨나는데요,

musicians는 워크플로우를 작동시킬 리피팅 그룹 첫번째 셀 내부에, maestro는 리피팅그룹 외부에 배치해줍니다. (두 개 element의 위치 주의!)



4. 워크플로우 3개 설명,
저는 리피팅그룹에 뜬 상품 데이터에 수량을 각각 입력해주고, 오케스트라가 돌면서 변경한 상품 수량이 각 셀의 상품 데이터에 저장되도록 로직을 설계하려고 하는데요, 이 때에 워크플로우를 어떻게 설정할 지 보겠습니다.

오케스트라 실행을 위해서는 총 3개의 워크플로우가 필요합니다.

- 어떤 액션이 일어났을 때 trigger musicians under maestro (* class to trigger 에 2번 musicians class 항목과 같은 값)
: 이 경우에, save라는 버튼을 눌렀을 때 musician을 trigger할 것이기 때문에 아래 사진과 같이 워크플로우를 설정해줍니다. 이 때 class to trigger에는 식별가능한 임의의 텍스트를 넣어주고(이후에 사용될 값이니 꼭 기억합시다) 워크플로우를 리피팅그룹의 모든 셀에 대해 실행할것이라면, trigger every cell에 yes라고 설정값을 반드시 바꿔줘야 합니다.

- musicians revealed-initialize musicians(*musicians class에 1번 class to trigger 항목과 같은 값 지정)
: musician이 제대로 실행되기 위해서는 initialize라는 과정을 거쳐야 하는데요, 아래 사진과 같이 워크플로우에서 musician revealed를 선택해주고, initialize musician을 선택해줍니다.
여기서 앞의 단계 ‘class to trigger’에 입력했던 save를 꼭 동일하게 입력해줘야 합니다!
그래야 리피팅 그룹 외부에 있는 maestro가 명령을 내릴 musician을 식별할 수 있습니다.

- musicians will run this workflow inside each cell - 리피팅 그룹의 각 셀에서 작동시키고 싶은 워크플로우 만들어주기 (**이 워크플로우에 너무 많은 작업을 넣으면 제대로 작동이 안되기도 함-디버그 모드에서 테스트하며 확인하기)
: 이제 마지막 단계입니다. 리피팅 그룹 내부에서 어떤 워크플로우를 작동시킬 것인지를 지정해줘야 합니다. ‘musician will run this workflow’ event 를 선택하고, 작동시킬 워크플로우를 지정해줍니다. 저같은 경우에는 해당 셀의 데이터에 수량 변화를 줄 것이기 때문에 ‘make change to [상품]’ 이라는 워크플로우를 넣고, [상품]의 <수량>은 리피팅 그룹 각 셀 내부에 있는 인풋창의 value 로 지정해줄 것입니다.



이제 모든 작업이 끝났습니다. 프리뷰를 돌려 각 셀의 인풋창에 수량을 입력하고, save버튼을 누른 다음에, app data의 [상품]에 들어가 수량을 확인하면 입력한대로 변경되었음을 확인할 수 있습니다!

***주의사항 (예외상황, 오류가 나는 상황 등…)

여기서 주의!! 오케스트라 플러그인 이니셜라이즈 → 만약 뮤지션이 들어있는 리피팅그룹의 data source가 비어있거나, 실질 데이터가 empty 상태라면, 페이지를 프리뷰했을 때 로딩이 제대로 되지 않습니다 (상단에 로딩바가 계속 떠있는 문제 발생). 이는 오케스트라가 실제 데이터가 담겨져있는 리피팅그룹에서만 이니셜라이즈가 가능하기에 발생하는 문제인데요, 이 점을 고려해서 페이지 로드 당시에 리피팅 그룹에 들어갈 실제 데이터(임시)를 적어도 1개 이상 만들어줘야합니다. 

예를 들어, 이전에 진행했던 프로젝트에서 (인풋창에 입력하는 갯수만큼 데이터 생성, 생성한 데이터를 리피팅그룹에 띄우고, 해당 데이터의 특정 정보를 각 셀에서 수정한 다음, 하단의 완료버튼을 눌러서 변경된 정보가 저장되게 하는 로직)을 구현해야되는 상황이 있었는데요, 여기서 문제는, 리피팅 그룹 각 셀에서 워크플로우를 실행하려면 페이지가 로드되었을 때 리피팅그룹에 들어가있는 실제 데이터가 있어야만 이니셜라이즈가 되지만 (페이지가 정상적으로 로드되지만), 제가 구현하려고 했던 로직은 초기에 데이터가 없는 상태에서 유저가 입력하는 갯수대로 데이터가 생성되는 방식이었다는 것입니다. 어찌보면 두 작업은 함께 구현할 수 없다고 생각되긴 하지만, 아래의 방법으로 문제를 해결할 수 있었습니다.

페이지가 로드되었을 때, 임시 데이터를 하나 생성해서 리피팅그룹에 1개의 실제 데이터가 들어가있도록 하고, 사용자가 인풋창에 만들 데이터의 개수를 입력했을 때, 개수만큼 데이터를 생성하기 직전에 임시로 만들었던 데이터 1개를 삭제하는 것입니다. 다른 오류 없이 원하는대로 구현하기 위해선 약간의 컨디션을 조금 더 걸어주긴 해야겠지만, 이런 방식으로 두 상황을 절충할 수 있었습니다.

추가적으로, 마에스트로와 뮤지션을 invisible하게 설정하면 이니셜라이즈 자체가 되지 않는 경우도 있으니 엘리먼트 사이즈를 최대한 작게 조절하고 visible 상태를 유지하는 것이 좋습니다!

오늘은 bubble.io의 plugin orchestra에 대해 알아봤는데요, 실제 작업을 하다보면 거의 대부분의 프로젝트에 사용되는 플러그인인만큼, 이 포스팅을 통해 오케스트라를 알고 자유자재로 사용하신다면 훨씬 많은 작업을 더 간편하게 구현하실 수 있을겁니다!

궁금하신 점은 댓글로 남겨주시면 답변해드리겠습니다~!

작성자: 리트머스 정진서

다른 블로그 글
예비/초기창업패키지 천만원으로 서비스 개발 할 수 있을까?

정부지원사업 지원금으로 외주개발을 완벽하게 맡기는 방법

버블 bubble.io 독학, 강의 및 학습 코스 추천

버블(bubble.io)를 공부하려는 분들은 어떻게 시작해야 할지 막막해합니다. 리트머스에서 추천하는 버블 학습 코스를 소개합니다.

IT창업의 비용을 10분의 1로 줄이는법

IT프로젝트를 코드 / 노코드로 개발했을 때 각각을 소요되는 시간과 비용적 관점에서 비교해보겠습니다.

초기 단계의 스타트업에게 외주개발이 공기만큼 중요한 이유

실패하는 스타트업의 원인을 분석해보면 개발비를 잘못 선택하여 사업이 실패하는 경우가 많습니다.

노코드 개발방식의 이점

비용이 많이 들고 시간이 많이 걸리는 개발에 지쳤다면 노코드가 답입니다.

6가지 사례를 통해 살펴보는 아웃소싱이 필요한 경우

기업마다 처한 상황이 다르기 때문에 각 기업에 알맞은 아웃소싱 전략이 필요합니다. 오늘은 시나리오 사례를 통해 어떤 상황에서 아웃소싱이 필요한지 살펴보겠습니다.

아웃소싱: 차세대 비즈니스 성공의 열쇠

이 2,600억 달러 규모의 수면 산업은 미래의 비즈니스 성공, 탄력성 및 연속성의 열쇠를 쥐고 있을 수도 있습니다.

소프트웨어 외주개발: 어떤 점이 매력적인가?

이 글에서는 소프트웨어 개발 아웃소싱에 집중하여, 이것의 어떤 특성이 비즈니스에 매력적으로 다가올 수 있는 지에 대해 알아보도록 하겠습니다.

모든 스타트업이 배울 수 있는 6가지 IT 아웃소싱 사례 연구

대기업의 성공적인 아웃소싱 사례를 사용하여 공동 창업자가 따를 수 있는 몇 가지 교훈을 도출하고자 합니다.

B2B 산업의 미래는 아웃소싱이다

아웃소싱은 B2B 산업의 미래입니다. 대담한 주장처럼 들릴 수 있지만, 최근의 추세와 현실은 이 주장을 검증합니다.

외주 개발 : 스타트업을 위한 전략적 접근법

외주 개발은 소프트웨어 개발의 어려움을 극복할 수 있는 방법 중 하나이며 많은 기업들이 외주를 통해 개발을 진행하고 있습니다.

노코드 개발의 미래: 혁신과 포용을 뒷받침한다

앞으로의 노코드 개발의 미래는 다양한 산업과 기술 수준에 걸쳐 이어지는 이점의 다양성을 제공할 것으로 보입니다.

노코드 개발의 부상: 창의성과 혁신을 불러일으키다

노코드의 생태계에 대해서 알아보고, 해당 개념의 개념과 이점, 앞으로 남은 과제 및 전 세계 산업에 미친 깊은 영향에 대해 알아보도록 하겠습니다.

노코드 플랫폼 : 알아야 할 7가지 주요 사항

이 글에서는 노코드와 로우코드 플랫폼이 무엇인지, 그리고 이에 대해 알아야 할 7가지 핵심 사항을 살펴보겠습니다.

노코드로 프로토타이핑 구현하기

노코드 툴을 사용한다면 프로토타이핑 과정을 쉽고, 빠르게 제작할 수 있습니다!

노코드에서 시작되는 창의적인 혁명

인터넷, 인공지능과 노코드의 급속한 발전 덕분에 창의력의 혁명은 이미 시작되었습니다.

로우 코드와 노코드의 차이점

오늘은 노코드와 로우코드의 차이점을 알아보고 어떤 도구가 나에게 더 적합한지 알아보도록 하겠습니다.

no code란 무엇인가? 소프트웨어 개발을 위한 노코드의 장단점

이 글에서는 코드 개발 플랫폼이 없는 경우의 위험과 보상에 대해 알아보고, 이 개발 방법이 사용자에게 적합한지에 대해 더 나은 결정을 내려봅시다.

기업에서 노코드를 채택하는 진짜 이유

노코드는 많은 장점을 갖고 있지만 오늘은 특히 기업과 IT 부서에서 노코드를 채택하는 이유에 대해서 살펴보겠습니다.

노코드툴을 활용해 사업을 시작하는 방법

오늘은 확장 가능한 회사를 설립하기 위한 no-code & low-code 사용의 tip을 공유하려 합니다.

기업가들이 노코드를 사용해야하는 이유 5가지

오늘은 기업가들이 노코드를 사용해야하는 이유 5가지에 대해 알아보겠습니다.

노코드를 회사에 성공적으로 도입하기 위해 수행해야 하는 8가지 사항

노코드 도입을 성공적으로 하기 위해서는 수행해야하는 몇 가지 핵심 포인트가 있습니다.

노코드를 이용한 앱 개발의 9가지 과정

'노코드'라는 강력하고 간편한 기능을 이용해 앱 아이디어를 시장에 출시하는 9가지 과정을 소개합니다.

노코드가 소프트웨어의 미래다 : 5가지의 성공요인

오늘은 노코드를 다루는 기업이 갖추어야 할 성공요인에는 어떤 것들이 있는지 알아보도록 하겠습니다

노코드로 web을 구축하기: Bubble.io의 잠재력

Bubble.io 과 같은 코드가 없는 웹 앱 개발 플랫폼이 등장함에 따라, 누구나 코딩 없이 기능적이고 시각적으로 매력적이며 사용자 친화적인 웹 애플리케이션을 만들 수 있게 되었습니다.

아웃소싱 외주 개발의 장점들

소프트웨어 개발을 아웃소싱하는 것은 시간과 비용을 절약하는 좋은 방법이 될 수 있지만 여러 가지 위험 요소도 수반됩니다.

개발 아웃소싱을 위한 심층 가이드

효율적인 프로그래밍 아웃소싱 가이드를 참고하시고 올바른 아웃소싱 공급업체와 컨택해보시기 바랍니다.

버블에서 리피팅그룹 각 셀마다 워크플로우를 실행하고 싶을 때 : 플러그인 오케스트라(orchestra)

버블에서 리피팅그룹 각 셀마다 워크플로우를 실행하고 싶을 때 사용하는 플러그인 : 오케스트라(orchestra)

Bubble: 혁신적인 노코드 플랫폼으로 10배 빠른 웹 앱 개발!

다양한 성공적인 스타트업과 기업이 Bubble을 사용하여 클라우드 기반 플랫폼을 구축, 테스트하고 확장하고 있습니다.

버블(bubble.io)로 할 수 있는 것과 할 수 없는 것

오늘은 버블로 구현 가능한 분야와 그렇지 못한 분야에 대해 살펴보겠습니다.

하루만에 예약 및 알림 기능 웹사이트 만들기 - 노코드 웹빌더 버블(bubble.io) 제작사례

다음 주 월요일에 런칭을 하고싶다는 클라이언트님. 충분히 가능합니다. 우리에게는 Bubble이 있으니까요!

버블(bubble.io)로 구글 회원가입/로그인 구현하기

오늘은 버블(bubble.io)에서 구글 회원가입/로그인 연동 기능을 구현해보겠습니다. 구글 회원가입/로그인은 버블에서 플러그인으로 제공을 하는데요

버블에 구글 애널리틱스(GA), 페이스북(메타) 픽셀, 구글태그매니저(GTM) 설치하기

페이스북(메타) 픽셀이나 구글애널리틱스(GA), 구글 태그매니저(GTM) 등을 설치하는 경우가 많은데요, 오늘은 그 방법에 대해서 알아보겠습니다.

버블(bubble.io)로 슬랙 알림 보내기

슬랙 알림 기능은 비교적 간단하며, 무료입니다. api connector을 이용하여 워크플로우 상에서 특정 채널에 내가 원하는 메세지를 보낼 수 있습니다

위로 스크롤 아이콘