이번 신년 맞이 기념으로 새로운 프로젝트를 해보려고 한다. 나는 주로 실생활에서 반복적이고 시간이 걸리는 작업을 프로그램으로 해결하는 것을 좋아한다. 물론 프로그램을 만드는데 시간이 소요되지만 반복 작업의 시간을 줄이는 과정 자체를 즐기는 것 같다.
물론 무조건 작업 프로세스를 혁명적으로 자동화하겠어!라는 마음은 아니고 최소한의 비용으로 최대한 편하게 작업을 바꾸려고 한다. 예를 들어 무조건 API 서버를 만드는 것이 아니라 기존 서비스를 최대한 이용하려고 한다. 구글 스프레드 시트가 내가 주로 선택하는 서비스이다. API를 사용하기 비교적 쉽고, 구글에서 관리하니 비교적 안정적이고, 데이터와 연계가 매우 편리하고, 공유하기 쉬워서인 것 같다.
나는 작년 한 해, 내가 다니는 교회에서 출석을 관리하는 역할을 맡았다. 한 주에 한 번 예배에 나오는 사람들을 체크하고 출석률을 공유하는 작업을 했다. 내가 맡기 전에는 일일이 출석표를 만들어 수기로 체크하는 식으로 관리 됐다고 한다. 내가 맡으면서 전체 교인(교회 구성원)정보를 구글 시트에 넣고 해당 데이터를 기반으로 매주 일요일마다 출석부를 만들도록 자동화 했다.
대략 아래와 같이 전체 명단 정보를 기록해두었다.
그리고 위의 명단을 기반으로 레퍼런스(함수)를 사용해 매주 출석부로 사용할 참조 템플릿
을 만들고, 이것으로부터 참조가 걸리지 않은 순수 데이터만을 복제한 출석부 템플릿
을 만들었다.
그리고 구글 시트의 Apps Scripts를 사용해 매주 출석부 템플릿
을 복제해 해당 날짜의 출석부를 만드는 스크립트를 실행하도록 설정했다.
대략 위에와 같이 보기 편한 형태의 출석부가 만들어진다. 그리고 이 출석부에 보이는 체크 박스를 선택해 출석을 체크하고 해당 날짜의 참석수와 명단을 보여준다.
이렇게 출석을 관리하니 매주 자동으로 출석부를 생성해주기 때문에 예배 당일에는 말그대로 ‘출석 체크’에만 집중할 수 있었고, 해당 날짜의 출석부를 PDF로 다운로드해 공유하기 편했다.
하지만, 이번 년도부터는 다른 사람(관리자)이 출석을 관리하게 되었고, 내가 했던 작업을 인수인계 해주어야했다. 다만 내 다음 사람은 개발자가 아니고 엑셀과 친숙하지 않아 새로운 서비스가 필요하다고 생각했다.
또한 엑셀 형태로 데이터를 관리했기 때문에 생기는 문제점도 있었는데, 우선 데이터 정합성이나 출석 기록을 개개인 별로 따로 보기가 어려웠다. 그리고 무엇보다 한 번 레퍼런스가 깨지면 시트 전체가 깨지기 때문에 구성원 정보에 변경이 생기면 출석부에 변경을 반영하기 어려웠다.
그래서 자체 데이터베이스를 사용해 데이터 정합성을 맞추고, 관리자가 사용하기 편한 출석부 서비스를 기획하게 되었다. 또한 이 서비스가 잘 작동한다면 좀 더 서비스 범위를 넓혀 다른 교회나 출석을 관리해야할 집단을 위한 서비스가 될 수 있을 것 같다는 생각에 제대로 서비스를 만들어보고자 했다.