개요
지피터스 게시판 멤버들에게 특정 조건을 달성하였을 때 뱃지를 부착해주는 제도가 있음
기존에는 멤버 한 명 한 명을 게시판에서 찾아서, 뱃지를 한 명 한 명에게 달아줬어야 했음
기존 써클 게시판에서도 bulk로 부착해주는 방법이 있었겠지만, 그 방법을 찾아보느니 일단 멤버들에게 하나씩 달아주는 게 빨라서 시도를 못하고 있었음
베터모드 게시판으로 이전하면서, 베터모드 <-> 재피어 자동화 기능이 있어서, 이를 활용해볼 겸 시도해보기로
사용한 툴
리툴 (retool.com) -> 데이터베이스 및 폼, 워크플로우 설계
재피어 -> 베터모드에서 멤버 뱃지 달아주기 기능 실행
접근 방법
리툴 DB에 뱃지 데이터를 저장 (뱃지명, 뱃지ID)
리툴에서 폼을 생성 (이메일은 줄바꿈 기준으로 받기, 뱃지는 1개를 선택하기)
폼을 제출하면 리툴 워크플로우가 실행됨 (웹훅 발송, 재피어로 넘기기 전 필요한 포맷에 맞게 데이터 가공)
재피어에서 이메일 리스트를 loop 돌면서, 멤버에게 뱃지를 차례로 부착
상세 방법
리툴 DB에 뱃지 데이터를 저장 (뱃지명, 뱃지ID)
뱃지 ID를 저장하는 이유 : 재피어에서는 뱃지를 선택할 때 ID 값 기준으로 해야함
뱃지 ID를 아는 방법 : 베터모드에서 제공을 안해줘서, 관리자 페이지에서 개발자모드 진입 -> Source 탭에서 뱃지 json 파일을 직접 열어서 확인
리툴에서 폼을 생성 (이메일은 줄바꿈 기준으로 받기, 뱃지는 1개를 선택하기)
폼을 만들 때, 리툴 DB를 선택하고 generate을 누르면, 자동으로 해당 필드에 맞게 폼이 생성됨
뱃지 옵션 리스트를 넣을 때, 데이터를 Dynamic 으로 선택하고, 리툴DB에 저장된 '베터모드뱃지' 테이블을 불러옴
이 때, '뱃지명'으로 불러와야 폼에서 뱃지명 리스트를 볼 수 있음. -> 그래서 뱃지ID를 별도로 찾는 로직이 필요함 (재피어는 뱃지ID만 알아들음 ㅜㅜ)
이메일은 우선 엔터로 구분해서 입력하게 했음 (추후 배열로 만들 계획)
폼을 제출하면 리툴 워크플로우가 실행됨 (웹훅 발송, 재피어로 넘기기 전 필요한 포맷에 맞게 데이터 가공)
1) 줄바꿈(\n)을 기준으로 이메일을 쪼개어 1개의 배열에 담기
기존 "[email protected] \n [email protected]" 변경 ["[email protected]", "[email protected]"]
2) 폼에서 제출된 뱃지명과 동일한 뱃지를 찾기 (뱃지ID를 조회하기 위함)
재피어에서 이메일 리스트를 loop 돌면서, 멤버에게 뱃지를 차례로 부착
1번 - 웹훅 받기
2번 - 반복할 리스트를 넣기 (웹훅 데이터의 이메일 리스트)
3번 - (반복) 현재의 이메일에 해당하는 베터모드 멤버 찾기
4번 - (반복) 현재의 멤버에게 웹훅데이터의 뱃지를 넣기
결과
재피어가 1번 실행되었을 때 이메일 리스트 갯수만큼 반복해서 돌았음
결과적으로 두 멤버에게 '테스트 뱃지'가 달린 것을 확인할 수 있었음
후기
로우코드 리툴, 비개발자도 쓸만한가?
데이터베이스 및 폼을 만들고, 워크플로우 짜는 것은 다른 노코드 툴(에어테이블, make, zapier 등)과 비교했을 때 비슷함.
그러나 데이터를 search 할 때는 무조건 sql 쿼리를 짜야하는 허들이 있음 (뱃지명이 일치하는 뱃지를 조회활 때 sql 구문을 썼음)
근데 송다혜도 sql 하나도 모름. 그냥 리툴 데이터베이스 구조(테이블명, 필드구조)만 주고, '리툴에서 이 DB를 갖고 조회하는 sql 쿼리를 짜줘' GPT에게 물어봐서 복붙해서 씀. -> 사실 허들이 아님
Input과 Output을 명확히 설계할 것
Input : 폼 형태로 이메일 리스트랑 뱃지만 선택하기
Output : 해당하는 멤버들에게 해당뱃지가 베터모드에서 잘 부착되기
이 로직을 고민한 송다혜 사고 프로세스
재피어의 베터모드 기능에 멤버를 선택하고 뱃지를 선택해서 부착해주는 게 있네?
(재피어에서 뱃지를 선택하는 필드를 보고) 어? 뱃지 ID값이 있네? 어디서 찾지?
(개발자에게 어디서 찾냐고 물어봄) 아 뱃지 페이지 개발자도구에서 Source 탭을 보면 있구나?
폼에서 이메일은 리스트로 받을 때 뭘로 구분하게 하지? 쉼표? 엔터? 엔터가 유저가 쓰기 편하겠지?
나중에 이메일을 배열로 받아서 처리하면 되겠다!
뱃지를 선택해야 하는데, 뱃지 목록을 관리할 곳이 필요하네? 리툴 DB에 뱃지 DB를 하나 만들어야겠네
필드는 뱃지명하고 뱃지ID가 필요하겠다!
폼에서는 뱃지명을 보고 선택하게 하고, 나중에 데이터 처리할 때 뱃지명으로 뱃지데이터를 찾아서 ID를 가져와야지!
리툴 워크플로우에서 이메일 배열 만드는 코드랑 뱃지 찾는 sql 구문은 지피티한테 짜달라고 해야지~
재피어에서는 이거 반복문 기능 분명 있을텐데?? 오 찾았다!!
리툴, 재피어 이런 툴 사용하는 것은 지피티와 함께라면 사실 어렵지 않음. 제일 중요한 건 "어떻게 접근하여 이 문제를 해결할 것인가"를 생각해내는 것.
끗