이벤트 신호 발생 – IFTTT로 구글스프레드시트에 기록하기

기본 세팅 아이디어

IFTTT는 ‘~하면 ~하라’와 같은 업무 자동화를 여러 서비스를 연결하여 구현할 수 있도록 도와줍니다. 간단하게, IFTTT 앱이 제공하는 아이폰 위젯버튼 기능으로 이것을 구현할 수 있을 거 같습니다.

통증이 발생한다 → 아이폰 위젯이 나오도록 화면을 밀어넘김 → 미리 세팅한 버튼을 누른다 → 구글 스프레드시트에 해당 시간이 남는다 → 나중에 스프레드시트를 가공하여 통계를 내고 경향을 관찰한다.

구글스프레드시트 기록형식 주의할 점

그런데 IFTTT 가 타임스탬프를 구글스프레드시트로 보낼 때 사용하는 기록 형식이 나중에 엑셀이나 구글 스프레드시트에서 활용하기 좀 부적절한 형식입니다. August 11, 2017 at 10:39AM와 같이 되어 있는데, 이런 식이면 8월 10일부터 15일까지 몇 번이나 로그가 찍혔는지 통계내고 싶을 때 계산하기 곤란해지거든요.

문제 해결을 위해 두 가지 조치가 필요한데, 일단 “at” 문자 부분을 제거하여 활용해야 합니다. 날짜 at 시간과 같은 형태는 엑셀이나 기타 스프레드시트에서 잘 쓰는 표현이 아닙니다. 하지만 “August 11, 2017″은 널리 호환 가능하고 1월부터 12월까지 날짜순으로 정렬도 됩니다. “10:39AM”도 시간으로 인식되어 시간순 정렬하거나 24시간 형식으로 변환도 됩니다. 그러므로 이 at부분만 삭제하거나, 앞뒤로 잘라 활용해야 합니다.

구글링해보면 문자열 자르기부터 정규식을 활용하는 사람까지 여러 사람들이 이 문제를 해결하기 위해 조언하고 있는데…무엇이든 적용해서 잘 작동하면 그만입니다. 참고로 활용하기 편하게 열을 나누어 날짜와 시간을 따로 기록하도록 세팅하는 것도 좋습니다.

두 번째로 한글 사용자의 경우 구글스프레드시트 설정에서 데이터 언어 형식을 “미국”으로 바꿔줘야 합니다. 파일 > 스프레드시트 설정 > 일반 탭 > 언어 > 미국 으로 설정하면 됩니다. 표시 언어는 한국어 그대로 두어도 됩니다. 함수, 날짜를 인식하는 기본 언어를 영어로 해줘야 하는 것이죠. 이렇게 해야 ‘August’ 등으로 표현되어 들어오는 월/일/연도 표현을 올바르게 인식/파싱할 수 있습니다. IFTTT 에서는 한글 언어 형식으로 보내주는 옵션은 없거든요.

데이터가 들어오는 것을 보면 간단하게 열 전체를 선택하여 표시 형식을 날짜/시간 등으로 바꿔주시면 됩니다. 구글스프레드시트의 메뉴에서 서식 > 숫자에 보면 날짜와 시간을 표시하는 기본 형식이 있는데 마음에 드는 것을 선택하세요. 24시간 형식으로 표시하기 원하는 경우, 서식 > 숫자 > 추가 형식 > 날짜와 시간 형식 더 보기 메뉴에서 찾을 수 있습니다.

실습

위에서 언급한 주의사항을 생각하면서 아래와 같이 작업해보았습니다.

  1. IFTTT 사이트에서 New applet 생성 버튼을 누르고, 트리거 서비스로 This에 Button widget을 선택

  2. 트리거 액션으로 ‘버튼 누름(button press)’를 선택

  3. 이제 액션 서비스로 ‘that’에 Google Drive를 선택. 만약 서비스가 연결 필요하면 연결.

  4. 엑셀모양의 데이터를 차곡차곡 쌓는 게 목적이므로, 액션 옵션 중, ‘행을 추가(Add row to spreadsheet)’를 선택

  5. 구글스프레드시트 파일 이름을 써줌(spread sheet name)

  6. 그리고 Formatted row 는 아래와 같이 써보았습니다. {{OcurredAt}}은 IFTTT에서 보내는 날짜+시간값에 해당하며, “August 11, 2017 at 10:39AM” 과 같은 모양으로 구글스프레드시트에 도착합니다. 그러나 보낼 때부터 SUBSTITUTE 함수를 사용하여 at을 공백으로 대체하고, 이를 각각 날짜와 시간값으로 적절히 인식하여 표시하도록 datevalue 와 timevalue 함수를 사용하였습니다.

=DATEVALUE(SUBSTITUTE("{{OccurredAt}}"," at ", " ")) ||| =TIMEVALUE(SUBSTITUTE("{{OccurredAt}}"," at ", " "))

제대로 된다면, 구글스프레드시트에는 아래와 같이 날짜열과 시간열이 구분되어 예쁘게 들어와야 합니다.

스마트폰에서 위젯 만들기해서 위젯에 위 applet을 바로 구동할 수 있는 위젯버튼을 만들어 넣어줍니다. 아이폰 기준, 홈화면에 추가보다는 위젯을 추천합니다.

추후 활용

어느 정도 데이터가 쌓이면 1행에 제목행을 삽입해도 좋겠고, 간단한 엑셀 수식을 활용하여 특정 범위의 사건 발생을 추적할 수 있겠습니다.

가령 8월 14일 이후로 몇 번이나 통증이 발생했는지 알고 싶다면, =COUNTIF(A1:A1000,">=8/14/2017") 과 같이 쓸 수 있겠죠. A열에 날짜 데이터가 있을 때 8월 14일과 같거나 그보다 큰(14일 이후) 날짜 범위의 셀의 개수를 세는 거죠. 간단합니다. 조금 응용하면 월별 회수 계산, 월별 평균은 물론 가장 통증이 많이 발생하는 시간대를 살펴보기 위한 그래프 그리기 등도 가능하겠네요.

물론 이런 로그를 더욱 편리하게 계산해주는 앱도 찾으면 있겠지만, 좀 더 개인의 필요에 따라 조작할 수 있으면서 추후에 다른 프로그램에 넣어 활용가능한 스프레드시트 데이터를 얻을 수 있다는 점에서 다양한 목적으로 활용 가능하다고 생각합니다. 가령 담배필 때마다 아이폰에서 버튼 한 번씩 누르고, 1년 후에 총 흡연 빈도와 인터벌 등을 그래프로 표현 가능하죠.

 

참고 링크

아래 링크를 참고해주세요.

  1. 샘플스프레드시트
  2. IFTTT 통증기록 Applet 샘플(즉시 사용 가능)

 

(2017년 8월)

 

“이벤트 신호 발생 – IFTTT로 구글스프레드시트에 기록하기”에 대한 1개의 생각

댓글 남기기