본문 바로가기
[피터] 창업가_IT

Bubble.io 노코드 툴 - 38일차 - (ministones)

by Rulemakers 2022. 12. 6.

현재 수정하고 있는 문제점.

11월 30일에 처음 가입한 사용자가 있다면, 이 사용자의 화면은 아래와 같을 것이다.

해당 유저가 12월 1일에 접속하면 12월 1일의 카드만 생성되어야 한다.

그러나 현재는 11월 29일, 28일, 등등 오늘부터 최대 7일 이전까지의 카드들이 모두 생성되는 문제가 있다.

만약 마지막으로 생성된 카드(11/30)에 2일 더한 날짜(12/2)가, 오늘 날짜(12/1)보다 더 크다면 terminate 되도록 설정함으로써, 서비스 가입 이전 날짜에 대한 카드 생성이 되지 않도록 하려고 의도했다.

 

그러나 내가 짠 워크플로우를 다시 확인해보면, page load 이후 오늘 날짜의 카드를 생성하고 위 로직이 적용되기 때문에, 마지막 생성한 카드가 11월30일이 아닌, 오늘 날짜의 카드(12/1)가 된다. 이렇다보니 위 terminate 로직이 동작하지 않고 모든 카드가 생성되는 것.

해결방법 1번) 위와 동일하게 page load 시 오늘 날짜 카드가 생성되도록 한다. 이후 카드마다의 index를 부여해서, 마지막 카드가 아니라 마지막에서 2번째 카드를 terminate 로직에 추가하면 된다.

해결방법 2번) 사용자의 가입일을 기준으로 그 이전의 카드는 생성되지 않도록 하면 된다. (iteration을 통해, 오늘 날짜와 사용자 가입일 사이에 존재하지 않는 모든 카드를 생성할 수도 있겠다)

 

해결방법 2번을 약간 변형하여 다음과 같이 카드의 빈 곳을 채우는 workflow를 작성하고자 한다.

{오늘 날짜}와 {가장 마지막 List의 날짜}의 차이를 계산하여, 그 숫자가 3이라면 3개의 List를 신규로 생성하는 방법이다.

따라서 두 날짜의 차이를 iterator 시작값으로 설정하고, iterator가 0이 될 때까지 {가장 마지막 List 날짜} + 1을 해나가면 된다.

 

이 과정에서 한 가지 문제점을 맞닥뜨렸다.

{오늘 날짜}와 {가장 마지막 List의 날짜} 차이를 계산하는 방법을 제대로 모르고 있다는 것이다.

여러 검색과 시행착오 끝에 rounded down to day 와 formatted as days 를 사용하여 문제를 해결했다.

 

현재 날짜 값을 내림(rounded down to day) 하는 방법

ㄴ 이렇게 되면 12월 6일 10:14 PM 값이 >>> 12월 6일 12:00 AM으로 내림된다.

 

가장 마지막에 생성된 List의 Title_date을 rounded down to day 하여서, 별도 custom state으로 저장하였다.

ㄴ 이렇게 되면 11월 30일 8:16 PM 값이 >>> 11월 30일 12:00 AM 으로 내림된다.

마지막으로 두 날짜의 차이를 계산하고 format as days 형태로 custom state에 저장했다.

 

이제 다음단게로 이렇게 구한 {오늘날짜}-{마지막 List의 날짜} 차이를 Iterator에 추가하고, Iterator값이 0이 될 때까지 List 생성하도록 해야한다.

댓글