메뉴 건너뛰기

[기술적 해법(Technical Insights) | Script 보호(Protect Your Scripts)]

원문 출처: https://www.arbutussoftware.com/en/technical-insights/protect-your-scripts

 

Script 보호(Protect Your Scripts)

 

BulletProof

(방탄 - 있을지 모를 문제나 손상에 보호되도록 디자인된) 

 

다른 사용자를 위해 script 를 작성하는 사람은 script 를 "bulletproof(방탄 - 있을지 모를 문제나 손상에 보호되도록 디자인된)"으로 만들려고 최선을 다했음에도 불구하고, 사용자와 script 를 공유한 후에 문제가 발생할 수 있다는 것을 알고 있습니다.

 

물론, Arbutus 에서는 우리가 script 를 작성하는 명령어(command language)가 감사 업계 표준(audit industry standard)이지만, 다운스트림(downstream) 이슈를 방지하는데 실제로 도움이 될 수 있는 script 의 견고성을 향상시키도록 설계된 많은 기능도 추가했습니다. 

재작성이 거의 또는 전혀 필요 없이, 기존 script 를 사용하여 이러한 기능을 추가할 수 있습니다.

 

대부분의 script 에서 가장 큰 단일 장애 지점(single failure point)은 실수로 Esc 키를 누르는 것입니다. 

이것이 Arbutus 가 SET ESC OFF 로 Esc 키를 끌 수 있도록 하는 이유입니다.

Script 가 실행 중일 때 Esc 키를 누르면 무시됩니다. 

 

마찬가지로 중요한 것은,

사용자 입력(user input)을 위한 dialog command(대화 상자 명령)가 있는 경우 'Cancel(취소)' 버튼도 비활성화(disabled)된다는 것입니다.

이러한 방법을 통해 사용자가 Script 를 중단할 수 없게 합니다.

 
2-1.png

 

Dialog Boxes (대화상자)

Dialog boxes(대화상자) 얘기가 나와서 말씀 드리자면, script error 의 주요 원인은 사용자가 입력(input)을 잘못해서 입니다. 

이것이 다양한 타입의 user input edit boxes(사용자 입력 편집상자)를 지원하도록 Dialog command(대화상자 명령)를 업그레이드한 이유입니다. 

 

완벽하게 검증하기 어려울 수 있는 character(문자) 입력뿐만 아니라 Date(날짜), Numeric(숫자) 및 Filename(파일이름) 타입도 제공합니다. 

 

Number(숫자) 편집은(당연히) number 만 허용하고, date(날짜)에는 user dialog(사용자 대화상자)에 내장된 날짜 선택기가 포함되며(return a date type-날짜 타입을 반환), 파일 이름에는 Windows 파일 브라우저도 포함되어 올바르게 파일을 선택할 가능성(및 용이성)을 향상시킵니다.

 
editbox.png

 

User Dialog.png

 

필요한 부분 중 하나가 누락되어 script 가 실패할 수도 있습니다. 대부분의 복잡한 프로세스에는 서로 호출하는 여러 script 가 포함됩니다. 
 
누락된 사람이 있으면, 누락된 부분을 호출하려고 할 때 script 가 실패합니다. 프로세스가 복잡할수록(또는 조각 수가 많을수록) 잃어버릴 가능성이 높아집니다. 
 
이것이 Arbutus 가 호출 가능한 하위 프로시저(sub-procedures)를 사용하여 single script(단일 스크립트)에 여러 프로시저(multiple procedures)를 포함하는 이유입니다. 
 
하위 프로시저(Sub-procedures)는 독립 script 와 같지만, 동일한 script 에 포함되어 있으므로 손실될 수 없습니다.
 
특히 복잡한 프로세스의 또 다른 문제는 main entry point 가 아닌 'helper(도우미)' script 를 실수로 실행하는 것입니다. 이로 인해 일반적으로 빠른 오류가 발생하지만 때로는 손상을 입히기 전에 발생하지 않으며 항상 사용자에게 혼란을 초래합니다. 
 
Script 가 하나뿐이고 잘못된 script 로 시작할 가능성이 없기 때문에 호출 가능한 하위 프로시저를 사용하면 이 위험도 제거됩니다.
 
Image 4.png

Script 자체와 관련하여 일부 다운스트림(downstream) 사용자들은 실행 중인 script 를 보거나 가끔씩 조정하기를 원할 것입니다. 

불행히도, 이것은 때때로 의도하지 않은 변경이나 script 에 부정적인 영향을 미치는 다른 문제로 이어질 수 있습니다.

 
이것이 Arbutus 에 script 를 '보호(Protect)'하는 기능이 포함된 이유입니다. 
일단 보호되면(protected) script 는 사용자(당신만 할 수 있는)가 보거나 편집할 수 없으므로, 당신이 작성한 내용이 실행되는 것을 확신할 수 있습니다.
 
Image 3.png

 

마지막으로, 최선의 노력에도 불구하고 우리 모두는 여전히 인간입니다. 
우리는 가끔 실수도 하고, 필요한 입력(input)을 사용할 수 없으며, 프로세스가 곁길로 갈 수 있는 여러 가지 방법이 존재합니다. 
이것이 Arbutus 가 치명적인 오류 프로세스 처리를 포함하는 이유입니다. 
 
최악의 상황이 발생하더라도 SET FATAL command 를 사용하여 다음에 일어날 일을 제어할 수 있습니다. 
치명적 오류(Fatal error) 처리는 치명적인 오류에 대응하고 계속 진행하거나 정상적으로 종료할 수 있는 광범위한 가능성을 제공합니다. 
자신에게 오류 리포트(error report)를 이메일(email)로 보낼 수도 있습니다.
 
Bulletproof(방탄 - 있을지 모를 문제나 손상에 보호되도록 디자인된) script 작성은 우리 모두가 열망하는 일이며, Arbutus 는 이를 현실화하는데 도움이 되는 다양한 도구를 제공합니다.