brunch

You can make anything
by writing

C.S.Lewis

by 남상수 Nov 04. 2019

스마트시트로 모임 신청 페이지 만들기

제3회 스마트시트 사용자 모임

2019년 스마트시트 유저 컨퍼런스인 ENGAGE'19를 다녀와서 한국 사용자 모임을 하기로 했다. 작년과 올봄에 한 번씩 사용자 모임을 했었는데, 국내에 숨어있는(?) 사용자들이 의외로 꽤 있었고 만나서 이야기 나누는 것이 즐거웠다. 그래서, 이번에도 사용자 모임을 하기로 했다. 컨퍼런스 다녀온 이야기도 나눌 겸.


그런데 모임 신청을 위해서 예전처럼 이벤터스로 신청 페이지를 만들까 하다가 문득 스마트시트 대시보드로 만들어보면 어떨까 싶은 생각이 들었다. 스마트시트 직원들이 대시보드 기능을 웹페이지처럼 사용하는 것을 여러 번 봤어서 신청 페이지라고 못 만들 것도 없겠다 싶었다.


신청 관리 시트 및 양식

일단 사용자 모임 신청 접수를 위한 양식과 데이터가 쌓이는 시트를 만들었다. 양식이야 워낙 많이 만들어봐서 눈감고도 만들 수 있다. 처음엔 스마트시트 사용자만 신청할 수 있게 로그인 후 신청하도록 할까 하다가 너무 야박한 거 같아서 로그인 없이 신청 가능하도록 했다.

간단 신청 양식


대시보드로 신청 페이지 구성하기

사람들이 들어와서 볼 수 있는 사이트를 만들기 위해 스마트시트에 대시보드를 하나 만들고 이 대시보드에 필요한 위젯들을 추가하기로 했다. 스마트시트 대시보드에는 다양한 형태의 위젯을 추가하여 페이지를 원하는 형태로 구성할 수 있다.

대시보드에는 다양한 위젯을 추가할 수 있다.


이 대시보드에 위에서 만든 신청 양식을 붙이고, 사용자 모임에 대한 아젠다 및 구글 맵 공유 링크도 가져와서 추가했다. 네이버 맵을 사용할까 했는데 네이버 맵은 정상적으로 추가가 안돼서 구글 맵을 적용 했다.

스마트시트 대시보드로 신청 페이지 만들기


대시보드의 상단에는 모임날짜, 시간, 장소, D-Day, 신청 가능 인원을 표시하기 위해서 Metric 위젯을 사용했다. 모임에 대한 소개를 위해서는 Rich Text 위젯을 사용했으며, 양식하고 구글 맵은 Web Content 위젯을 사용해서 구성했다.


Sheet Summary로 신청현황 구성하기

다른 부분들은 별로 어렵지 않았는데 상단에 있는 신청 정보 및 현황 정보를 어떻게 구성할지 고민이 됐다. Metric 위젯은 다른 시트의 특정 셀에 있는 데이터를 가져와서 보여주는 위젯이다. 그러다 보니 원본 데이터가 되는 곳을 지정해줘야 해서 이를 위한 별도의 시트를 생성하곤 한다. 하지만 스마트시트 라이선스에는 시트 수 제한이 있기 때문에 가급적 불필요한 시트는 만들지 않는 것이 좋다. 

그래서, 이번 ENGAGE'19에서 공개한 Sheet Summary for Metric Weget 기능을 사용하기로 했다.


Metric 위젯은 원래 시트 '안'에 있는 셀을 지정할 수 있었다. 그런데 ENGAGE’19에서 Sheet Summary의 값도 추가할 수 있는 기능을 발표했다.


Sheet Summary는 시트와 관련된 정보를 시트를 벗어나지 않고 생성할 수 있도록 올해 새롭게 추가된 기능이다. 그래서, 사용자 모임 신청 접수 시트의 Sheet Summary에 필요한 항목들을 추가한 후 이 데이터를 Metric 위젯으로 대시보드에 추가했다. 이렇게 하니 별도의 시트를 만들지 않고도 필요한 정보를 대시보드에 추가할 수 있어서 좋았다.


신청 가능 인원 함수 설정

다만 다른 정보들은 대부분 변하지 않는 정보였지만 '신청 가능 인원' 항목은 시트 안에 있는 데이터를 가져와서 가공해야 하기 때문에 함수를 적용했다. 처음엔 단순히 회차가 입력된 수를 가지고 카운트를 했다. 

=참석정원 - COUNTIFS(회차:회차, "3회")


그런데, 누군가 실수로 중복으로 신청을 했다. 참석 정원을 조정할까 하다가 또 중복 신청을 있을 수도 있어서 이름을 기준으로 중복이 들어와도 카운트되지 않도록 DISTINC 함수를 적용한 형태로 수정했다.

=참석정원 - COUNT(DISTINCT(COLLECT(이름:이름, 회차:회차, "3회")))


처음엔 신청자가 적어서 괜찮았는데 미국 스마트시트 본사에서 한국 사용자들에게 DM을 발송 후 신청자가 늘어나면서 신청자가 참석 정원보다 많아지면 0 이하로 숫자가 보일 것 같아서 MAX 함수를 사용해서 수정했다.

=MAX(0, 참석정원 - COUNT(DISTINCT(COLLECT(이름:이름, 회차:회차, "3회")))) 


물론 신청 가능 인원이 0이 되면 자동으로 신청 양식이 disable되도록 할 수가 없고, Sheet Summary 항목은 아직 알람 적용도 안돼서 아쉽긴 하지만, 그래도 스마트시트 자체적으로 신청 페이지의 대부분을 구성할 수 있어서 나름 의미가 있었다. 


대시보드 Publish

이렇게 완성된 신청 페이지를 누구나 볼 수 있도록 publish 하여 공유하고, 페이스북 사용자 그룹에도 올렸다.

대시보드 Publish

신청 페이지: http://bit.ly/2MMe7r2




이번에 모임 신청 페이지를 스마트시트 대시보드로 만들어보니 모바일에 적합하지 않다는 생각이 들었다. 신청서 로딩이 늦기도 했다. 이벤트 전문 서비스보다는 부족한 부분이 많지만 스마트시트로 이렇게까지 해봤다는 것에 의미를 두는 정도로 만족.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari