딕셔너리 읽고쓰기 숏컷

이전 오토메이션 공용환경 소개애플 숏컷에서 딕셔너리 값을 바꾸면 원본을 수정하지 않는다를 통해 글로벌 변수에 숏컷마다 사용하는 여러 값을 네임스페이스 없이 구분하기 위해 글로벌 변수 값 하나에 JSON 모양으로 데이터를 밀어 넣어 글로벌 변수 하나가 네임스페이스와 비슷한 역할을 하도록 할 작정이라는 이야기를 했습니다. 그러려면 ‘Toolbox Pro for Shortcuts’ 앱에서 제공하는 글로벌 변수에 JSON 형식을 밀어넣고 또 읽어오는 기능이 필요해서 만들기로 했습니다.

사용방법

그래프

결과

설명

그래프

결과

설명

 

글로벌 변수 하나를 열어 보면 안에 JSON 형식으로 여러 값들이 들어 있습니다.

이들을 읽고 쓰는 기능을 숏컷으로 만들려고 합니다.

읽고 싶은 글로벌 변수 정보를 딕셔너리에 담아 글로벌 딕셔너리 읽기 (이름, 키) 숏컷에 전달합니다.

숏컷을 함수처럼 사용하는데 딕셔너리를 쓰지 않고 함수처럼 그냥 값을 나열해서 보낼 방법이 있을 것 같은데 아직 모르겠어서 딕셔너리를 사용했습니다.

실행하면 결과 값을 돌려줍니다.

 

비슷한 방법으로 쓰고 싶은 글로벌 변수 정보를 딕셔너리에 담아 글로벌 딕셔너리 편집 (이름, 키, 값) 숏컷에 전달합니다.

값을 수정하기만 하므로 결과를 돌려주지는 않습니다.

뒤에서 값을 읽어보면 잘 변경된 것을 볼 수 있음.

 

딕셔너리 읽고쓰기 숏컷

읽기

그래프

설명

그래프

설명

전달 받은 인자를 읽어와 딕셔너리 형태로 변환해 저장해 둡니다.

딕셔너리로부터 읽어 올 글로벌 변수 이름과 JSON 를 각각 읽어 저장해 둡니다.

이름으로 글로벌 변수를 읽어와 JSON을 파싱해 딕셔너리 타입으로 저장합니다.

딕셔너리에서 원하는 에 해당하는 값을 읽어 리턴합니다.

쓰기

그래프

설명

그래프

설명

전달 받은 인자를 읽어 딕셔너리 형태로 변환해 저장해 둡니다.

딕셔너리로부터 이름에 해당하는 글로벌 변수를 읽어 JSON을 파싱해 딕셔너리 타입으로 저장합니다.

딕셔너리를 수정할 을 저장합니다.

으로 딕셔너리를 수정한 다음 이를 다시 JSON 형태로 글로벌 변수에 기록합니다.

딕셔너리를 수정할 때 원본 변수를 수정하지 않으므로 수정을 통해 얻은 딕셔너리를 사용해야 합니다.

이렇게 한 이틀 정도 속도는 약간 느리지만 그럭저럭 행복하게 살았습니다. ‘Toolbox Pro for Shortcuts’ 앱의 글로벌 변수 제어기능에 JSON을 읽고 쓰는 기능이 처음부터 있었다는 사실을 알기 전까지는요.

그래프

결과

설명

그래프

결과

설명

Toolbox Pro for Shortcuts’ 앱의 JSON 읽고 쓰는 기능을 사용하면 읽기와 쓰기 모두 기존 노드 2개를 사용해야 하는데서 1개만 사용하면 되는 상황이 되었고 위에서 만든 JSON을 읽고 쓰는 별도 숏컷은 아예 호출할 필요가 없었습니다.

또한 따로 만든 숏컷에 비해 실행속도가 빨라 이 기능을 사용하지 않을 이유가 없었습니다.

다만 이 기능은 JSON 값에 포함된 개행문자를 처리하는데 문제가 좀 있는데 빠른 실행 속도를 생각하면 이 정도 문제는 알아서 우회해서 사용하는 편이 나았습니다.

오늘의 결론. 뭔가 당연한 기능이 없어 보일 때는 이걸 만들기로 결정하기 전에 한번만 더 찾아 볼 것.