자리비움 오토메이션에 자리비움 이유 추가 사례

지난번 '근태기록 오토메이션 사례'에서 자리비움 메시지를 보낼 때 단순히 자리를 비운다고만 말했는데 여기에 자리를 비유는 이유를 선택해 표시하게 할 생각이라고 소개했었습니다. 이번에는 자리비움 메시지를 보내기 전에 자리를 비우는 이유를 목록에서 선택해 이를 메시지에 표시하게 할 작정입니다.

지난번에는 다른 숏컷을 호출할 때 명시적인 리턴을 받을 수 없다고 생각했기 때문에 중간에 다른 숏컷을 호출해 이유를 물어본 다음 돌아와 실행을 계속하기 어렵겠다고 생각했었는데 '애플 숏컷에 명시적 리턴 있음'을 알게 되어 간단하게 만들 수 있었습니다.

애플 숏컷은 배포가 아주 어렵고 또 코드를 직접 보이며 설명하기 어려운 형태여서 ‘최근 반년 사이에 사용하는 오토메이션 사례'에서 숏컷 일부의 스크린샷을 첨부해 설명하면서도 '이게 제대로 전달이 될까?’ 하는 의문이 들었었습니다. 최근 팀 내에서 숏컷 스크린샷과 설명을 통해 숏컷 코드를 배포하는 실험을 해봤는데 예상 대로 숏컷을 그림으로 배포하기는 아주 어려웠고 그나마 숏컷 소스의 일부만 스크린샷으로 남겨서는 전혀 도움이 안 된다는 결론을 내렸습니다. 그래서 이번에는 숏컷 일부의 스크린샷이 아니라 전체 스크린샷을 첨부하고 각 부분을 나눠 설명하겠습니다. 이 스크린샷에는 이제 생략된 부분이 없습니다.

자리비움 시작

자리비움 이유 선택

설명

자리비움 시작

자리비움 이유 선택

설명

 

근태기록 숏컷을 실행해 자리비움을 선택합니다. 혹시 이미 자리비움 상태인데 자리비움을 다시 실행할 때를 대비해 이미 자리비움 상태인지 확인한 다음 이미 자리비움 상태라면 아무것도 안 하고 실행을 중단합니다.

메뉴에서 ‘자리비움 시작’을 ㅅ선택하면 바로 이어 ‘자리비움 이유 선택’ 숏컷을 실행해 미리 만들어 둔 자리비움 이유 중 하나를 선택하게 합니다.

여기서는 점심식사, 저녁식사, 커피 마시러, 병원, 기타, 회식 정도로 구분해 이모지를 통해 표현하고 입력 받습니다.

 

위에서 설정한 리스트를 ‘Choose from List’를 통해 불러오면 화면에 메뉴가 나타납니다.

 

메뉴에서 선택한 결과를 ‘Stop and output’을 통해 명시적으로 이 숏컷을 호출한 숏컷에 돌려줍니다.

 

슬랙에 보낼 텍스트를 URL인코딩합니다. 아마 메시지가 영문, 숫자, 특수문자로만 되어 있으면 필요 없는 절차인 것 같지만 우리는 메시지에 한글, 이모지가 포함되어 있어 URL인코딩을 해야 합니다.

 

글로벌 변수에 저장해 둔 슬랙 API 키를 가져옵니다.

 

글로벌 변수에 저장해 둔 메시지를 보낼 채널 이름을 가져옵니다. 슬랙에서 채널 이름을 복사하면 앞에 '#' 문자가 붙는데 이 문자를 뺀 값을 사용해야 합니다.

 

근태 메시지를 기록하는 규칙은 하루 동안의 메시지는 출근으로 시작하는 한 스레드에 기록하는 것입니다. 그래서 어느 메시지의 스레드에 기록해야 하는지를 기록해 뒀다가 가져옵니다.

 

만약 기록할 스레드가 없다면 출근하지 않은 상태로 자리비움 시작 메뉴를 선택한 것입니다. 그래서 더 이상 아무것도 하지 않고 종료합니다.

 

슬랙 채널에 메시지를 보냅니다. API 주소에 채널 이름, 메시지, 스레드 번호를 나열해서 보내면 원하는 채널의 원하는 스레드에 답글이 달립니다. 메시지를 ‘Get contents of…’ 명령어를 통해 보내게 되는데 이 명령어의 인자에 위에서 준비한 슬랙 API 키를 넣어 보내야 합니다.

 

슬랙이 돌려준 결과를 확인해 메시지가 성공적으로 전송되었는지 확인한 다음 글로벌 변수에서 외출 상태를 켜 줘 자리비움 시작 메시지를 중복해서 보내는 상황을 방지합니다.

자리비움 이유를 묻는 부분을 ‘자리비움 시작’ 숏컷 안에 포함해 한 덩어리로 만들지 아니면 지금처럼 별도 숏컷으로 구분할지 고민했는데 ‘애플 숏컷 환경의 특징’에서 소개한 대로 2023년 초 기준으로 아이폰에서 숏컷을 편집할 때 숏컷이 조금만 길어져도 에디터가 비정상적으로 느려져 편집하기 어려웠기 때문입니다. 사실 한동안 아이폰으로 숏컷을 편집하며 어느 정도 익숙해졌지만 코드가 너무 길어지면 이러다 보살이 되겠다 싶어 코드를 나눌 수 있는 부분은 나누기로 했습니다.

다만 코드를 나눠 숏컷 한 덩어리가 너무 길어지는 상황은 피했지만 여전히 이렇게 호출하는 서브루틴을 잘 보관할 방법이 마땅찮아 앞으로 이런 서브루틴 숏컷이 늘어나면 이들을 어떻게 관리할 지 고민 중입니다. 지금까지는 숏컷 이름에 이 숏컷을 호출하는 서브루틴을 명시하고 또 서브루틴을 호출할 때, 서브루틴이 호출될 때 자신이 올바른 숏컷으로부터 호출되는지 확인하는 부분을 넣어야 할 것 같습니다.

그리고 지난 ‘최근 반년 사이에 사용하는 오토메이션 사례’에서는 숏컷의 일부만 스크린샷을 통해 소개했는데 이제부터는 숏컷을 소개할 때 이번처럼 숏컷 전체를 스크린샷 조각으로 잘라 소개하려고 합니다. 파일을 직접 배포하긴 어렵지만 스크린샷을 보며 처음부터 따라 만들 수 있게 하려고 하는데 웬만하면 그 사이에 애플이 뭔가 방법을 제시해 숏컷 자체나 코드를 쉽게 공유할 수 있었으면 좋겠습니다.