자리비움 오토메이션에 자리비움 이유 추가 사례
지난번 '근태기록 오토메이션 사례'에서 자리비움 메시지를 보낼 때 단순히 자리를 비운다고만 말했는데 여기에 자리를 비유는 이유를 선택해 표시하게 할 생각이라고 소개했었습니다. 이번에는 자리비움 메시지를 보내기 전에 자리를 비우는 이유를 목록에서 선택해 이를 메시지에 표시하게 할 작정입니다.
지난번에는 다른 숏컷을 호출할 때 명시적인 리턴을 받을 수 없다고 생각했기 때문에 중간에 다른 숏컷을 호출해 이유를 물어본 다음 돌아와 실행을 계속하기 어렵겠다고 생각했었는데 '애플 숏컷에 명시적 리턴 있음'을 알게 되어 간단하게 만들 수 있었습니다.
애플 숏컷은 배포가 아주 어렵고 또 코드를 직접 보이며 설명하기 어려운 형태여서 ‘최근 반년 사이에 사용하는 오토메이션 사례'에서 숏컷 일부의 스크린샷을 첨부해 설명하면서도 '이게 제대로 전달이 될까?’ 하는 의문이 들었었습니다. 최근 팀 내에서 숏컷 스크린샷과 설명을 통해 숏컷 코드를 배포하는 실험을 해봤는데 예상 대로 숏컷을 그림으로 배포하기는 아주 어려웠고 그나마 숏컷 소스의 일부만 스크린샷으로 남겨서는 전혀 도움이 안 된다는 결론을 내렸습니다. 그래서 이번에는 숏컷 일부의 스크린샷이 아니라 전체 스크린샷을 첨부하고 각 부분을 나눠 설명하겠습니다. 이 스크린샷에는 이제 생략된 부분이 없습니다.
자리비움 시작 | 자리비움 이유 선택 | 설명 |
---|---|---|
| 근태기록 숏컷을 실행해 자리비움을 선택합니다. 혹시 이미 자리비움 상태인데 자리비움을 다시 실행할 때를 대비해 이미 자리비움 상태인지 확인한 다음 이미 자리비움 상태라면 아무것도 안 하고 실행을 중단합니다. | |
메뉴에서 ‘자리비움 시작’을 ㅅ선택하면 바로 이어 ‘자리비움 이유 선택’ 숏컷을 실행해 미리 만들어 둔 자리비움 이유 중 하나를 선택하게 합니다. 여기서는 점심식사, 저녁식사, 커피 마시러, 병원, 기타, 회식 정도로 구분해 이모지를 통해 표현하고 입력 받습니다. | ||
| 위에서 설정한 리스트를 ‘Choose from List’를 통해 불러오면 화면에 메뉴가 나타납니다. | |
| 메뉴에서 선택한 결과를 ‘Stop and output’을 통해 명시적으로 이 숏컷을 호출한 숏컷에 돌려줍니다. | |
| 슬랙에 보낼 텍스트를 URL인코딩합니다. 아마 메시지가 영문, 숫자, 특수문자로만 되어 있으면 필요 없는 절차인 것 같지만 우리는 메시지에 한글, 이모지가 포함되어 있어 URL인코딩을 해야 합니다. | |
| 글로벌 변수에 저장해 둔 슬랙 API 키를 가져옵니다. | |
| 글로벌 변수에 저장해 둔 메시지를 보낼 채널 이름을 가져옵니다. 슬랙에서 채널 이름을 복사하면 앞에 '#' 문자가 붙는데 이 문자를 뺀 값을 사용해야 합니다. | |
| 근태 메시지를 기록하는 규칙은 하루 동안의 메시지는 출근으로 시작하는 한 스레드에 기록하는 것입니다. 그래서 어느 메시지의 스레드에 기록해야 하는지를 기록해 뒀다가 가져옵니다. | |
| 만약 기록할 스레드가 없다면 출근하지 않은 상태로 자리비움 시작 메뉴를 선택한 것입니다. 그래서 더 이상 아무것도 하지 않고 종료합니다. | |
| 슬랙 채널에 메시지를 보냅니다. API 주소에 채널 이름, 메시지, 스레드 번호를 나열해서 보내면 원하는 채널의 원하는 스레드에 답글이 달립니다. 메시지를 ‘Get contents of…’ 명령어를 통해 보내게 되는데 이 명령어의 인자에 위에서 준비한 슬랙 API 키를 넣어 보내야 합니다. | |
| 슬랙이 돌려준 결과를 확인해 메시지가 성공적으로 전송되었는지 확인한 다음 글로벌 변수에서 외출 상태를 켜 줘 자리비움 시작 메시지를 중복해서 보내는 상황을 방지합니다. |
자리비움 이유를 묻는 부분을 ‘자리비움 시작’ 숏컷 안에 포함해 한 덩어리로 만들지 아니면 지금처럼 별도 숏컷으로 구분할지 고민했는데 ‘애플 숏컷 환경의 특징’에서 소개한 대로 2023년 초 기준으로 아이폰에서 숏컷을 편집할 때 숏컷이 조금만 길어져도 에디터가 비정상적으로 느려져 편집하기 어려웠기 때문입니다. 사실 한동안 아이폰으로 숏컷을 편집하며 어느 정도 익숙해졌지만 코드가 너무 길어지면 이러다 보살이 되겠다 싶어 코드를 나눌 수 있는 부분은 나누기로 했습니다.
다만 코드를 나눠 숏컷 한 덩어리가 너무 길어지는 상황은 피했지만 여전히 이렇게 호출하는 서브루틴을 잘 보관할 방법이 마땅찮아 앞으로 이런 서브루틴 숏컷이 늘어나면 이들을 어떻게 관리할 지 고민 중입니다. 지금까지는 숏컷 이름에 이 숏컷을 호출하는 서브루틴을 명시하고 또 서브루틴을 호출할 때, 서브루틴이 호출될 때 자신이 올바른 숏컷으로부터 호출되는지 확인하는 부분을 넣어야 할 것 같습니다.
그리고 지난 ‘최근 반년 사이에 사용하는 오토메이션 사례’에서는 숏컷의 일부만 스크린샷을 통해 소개했는데 이제부터는 숏컷을 소개할 때 이번처럼 숏컷 전체를 스크린샷 조각으로 잘라 소개하려고 합니다. 파일을 직접 배포하긴 어렵지만 스크린샷을 보며 처음부터 따라 만들 수 있게 하려고 하는데 웬만하면 그 사이에 애플이 뭔가 방법을 제시해 숏컷 자체나 코드를 쉽게 공유할 수 있었으면 좋겠습니다.