근태기록 오토메이션 사례

앞서 소개한 '업무보고 오토메이션 사례'를 퇴근할 때 부른다고 설명했습니다. 이번에는 업무보고 숏컷을 호출하는 출퇴근 및 외출 메시지를 입력하는 오토메이션을 살펴보겠습니다. 이전에 소개한 다른 숏컷이나 오토메이션과 점은 UI를 사용해 출근, 외출, 퇴근을 선택하며 각 상황에 맞는 동작을 하는 점입니다.

휴가 메시지 오토메이션 사례’에 소개한 것과 비슷한 의사결정에 따라 정해진 슬랙 채널에 출퇴근과 외출, 간략한 업무보고를 기입하기로 했습니다. 이미 지라를 통해 정보시스템을 구축하고 있었으므로 그걸 그대로 가져다가 업무보고를 하는데 사용할 수는 있었지만 출퇴근과 외출 자체를 자동화하기는 쉽지 않을 것 같았습니다. 출퇴근은 지오펜스로 어떻게 할 수 있을 것 같았지만 외출과 복귀는 이를 출퇴근과 구분하기 어렵습니다. 이전에 비슷한 시도를 했었는데 점심 먹으러 나간 상황을 퇴근으로 판단하거나 주말에 회사 근처를 지나가기만 해도 출근 처리되거나 밤에 일이 있어 저녁 먹으러 나갔다 돌아오면 다음 날 출근이 되는 등 예외를 포함해 자동화 하기 쉽지 않았습니다. 그래서 이번에는 아예 이 모든 상황을 수동으로 처리하기로 합니다.

아이폰의 바탕화면 위젯에 이 숏컷을 넣고 스마트 스택으로 설정하면 대강 이 메뉴가 필요할 때 대부분은 이 숏컷이 나타납니다. 숏컷을 실행하면 출근, 외출, 퇴근 메뉴가 나타나고 디버그 메시지를 볼 수도 있습니다. 이 메뉴에서 뭐든 선택하면 슬랙에 메시지를 보내는데 규칙에 따라 출근은 새로운 메시지로, 나머지 메시지는 출근 메시지에 답글로 표시합니다.

각 메뉴는 중복 실행을 감지해 잘못된 메뉴를 선택하면 아무 일도 일어나지 않습니다. 자리비움 하지 않은 상태에서 자리비움을 끝내거나 그 반대롤 시도하거나 출근을 여러번 해도 오동작 하지 않습니다. 자리비움 상태에서 퇴근을 시도하면 자리비움을 종료한 다음 퇴근하고요. 출근 메시지는 출근일과 재택일을 감안해 현재 위치를 파악해 서울이면 회사 출근으로 판단하고 서울이 아니면 재택 메시지를 보내도록 했습니다. 핵심은 메시지를 보낼 때 완전히 아무것도 신경 쓰지 않도록 하는 것입니다.

이전에 보내던 슬랙 메시지와 다른 점은 출근을 제외한 나머지 메시지는 한 스레드로 나타내는 겁니다. 이전 글에 답글을 달려면 이전에 슬랙에 메시지를 보낼 때 그 메시지 아이디를 보관해야 했습니다. 그래서 이전에 사용하던 'Send to Slack'을 재사용하지 않고 슬랙에 메시지 보내는 부분을 숏컷 안에 직접 만들었습니다. 이 부분을 개선해 공용 슬랙 메시지 숏컷을 통하더라도 답글을 달 위치를 알 수 있도록 수정할 생각입니다. 마지막으로 퇴근할 때는 '업무보고' 숏컷을 실행해 오늘 한 일 목록을 만든 다음 퇴근 메시지에 이를 포함합니다.

전체적으로 복잡하지도 않고 딱히 오동작 할 것도 없을 구성이지만 앞서 소개한 에디터 가독성 문제로 현재 상태에 맞는 동작을 하는지 판단하기 쉽지 않아 디버그 정보를 표시하게 했습니다. 수동이기 때문에 출퇴근을 빠뜨릴 가능성에 대비해 출근, 퇴근에 한해 오토메이션의 지오펜스 조건에 묶어 실수로 바뜨리더라도 노티피케이션을 통해 기록해야 함을 안내 받아 노티피케이션을 터치하면 바로 기록되도록 했고요. 다만 자리비움 한 이유를 간단히 적곳 싶은 요구사항에 대응하지 못했는데 이건 프리셋 중 하나를 선택하도록 할 작정입니다. ('자리비움 이유 넣기' 참고.)