본문 바로가기

관심꺼리.log/정신노동.dat

AutoScript / Paste Special 기능으로 파워빌더 스크립트 작성을 편하게

파워빌더로 개발을 진행하다가 보면 수많은 외부함수,윈도우 함수,글로벌변수,인스턴스변수,로컬변수등을 사용하게 된다. 프로그램이 커지다보면 여기저기에 있는 함수명, 변수명을 일일이 기억하기란 그리 쉬운일이 아니다. 간단하게 이런 함수명이나 변수명을 스크립트창에서 바로 찾아서 참고할수 있다면 참 편리할 것이다. 이전에 버젼 8을 사용할때도 AutoScript기능이 있었으나 솔직히 느린 반응 속도때문에 거의 사용을 하지 않았다. 오브젝트 브라우져를 통해 해당 오브젝트 열어서 일일이 함수명 변수명을 확인하고 스크립트를 작성하곤 하였다.
하지만 10버젼으로 업그레이드(9버젼은 사용해 본 경험이 없어서 논외로 하겠다)하면서 다시 이 기능을 사용해 보니 기존버젼에 비해 많이 성능이 향상되었음을 느끼게 되었다.


AutoScript 이용한 스트립트 작성

기본적으로 파워빌더는 자동으로 AutoScipt 팝업을 띄우는 기능이 비활성화 되어 있다. Edit > Activate AutoScript 메뉴를 이용하여 수동으로 AutoScirpt팝업을 실행시킬 수가 있다. 예를 들어 로컬 변수로 ll_count라는 변수가 선언되어 있다면, 이 변수를 사용할 위치에서 ll만 타이프하고 Edit > Activate AutoScript 메뉴를 선택하면 자동으로 ll_count라고 입력이 되는 것이다. Edit > Activate AutoScript 메뉴를 단축키를 등록(Tools > Keyboard Shortcuts... ; 필자는 F2를 단축키로 등록)하여 두면 사용하기 편하다.
ll로 시작하는 로컬 변수가 여러개 있다면 팝업이 떠서 개발자가 선택하도록 한다. 만약 ll로 시작하는 변수가 하나라면 자동으로 해당 변수가 입력되는 것이다.
로컬변수 뿐만이 아니라 Design > Options 창의 AutoScript화면에 설정된 것은 모두 Activate AutoScript 메뉴를 통해 팝업창으로 조회할수 가 있다.


Default로는 선택이 안되어 있는 Statement Templates항목을 활성하 시키면, if, for, do, choose, try등과 같은 제어문의 템플릿을 추가할 수도 있다. 예를 들어 if를 입력 후 Activate AutoScript 메뉴를 클릭하면 다음과 같은 if문의 템플릿을 선택할 수 있다.



두번째 if then else를 선택하면 다음과 같은 템플릿이 추가된다.
if /*condition*/ then
    /*action1*/
else
    /*action2*/
end if
템플릿 스크립트가 추가된 후 바로 /*condition*/부분이 선택되며, 조건을 바로 입력하여 간단하게 if문을 작성할수가 있다.
Activate AutoScript 메뉴를 선택할 필요없이 바로 관련된 팝업이 뜨도록 하고 싶다면 Automatic Popup옵션을 활성화하고 Delay(Milliseconds)항목에 팝업이 나타나는데 Delay될 시간을 설정해 준다. Defult로 1000이 설정되어 있는데 100정도로 줄여주면 빠르게 팝업을 띄울수가 있다.
Delay를 짧게 주고 Automatic Popup옵션을 활성화 시켜두면 스크립트를 작성할 때마다 AutoScript팝업이 떠서 불편하다고 느껴진다면, Delay시간을 약간 길게 조정하거나 dot이후에만 AutoScript팝업을 활성화시키는 Activate Only After a Dot 옵션을 활성화 시켜서 사용하면 된다.

그러나 아직 파워빌더의 AutoScript는 MS Visual Studio보다 많은 점이 부족하다. 특히 함수를 선택하면, Argument를 /**/와 같이 주석처리해서 스크립트에 박아버려서 개발시 참고하도록 하고 있다. 개발시 추가된 이주석을 지우고 변수명으로 대체하는 작업이 반복되다 보면 효율이 상당이 떨어진다. Visual Studio처럼 (입력하면 Argument List가 풍선도움말로 나타나는 기능이 있었으면 아주 편할텐데, 이점이 참 안타깝다.

Paste Special을 이용한 스크립트 작성

파워빌더로 스크립트 작성중에 툴바를 자세히 보면, 일반적으로 붙혀넣기로 사용되는 아이콘과 비슷한 아이콘들이 여러개 붙어 있는걸 볼수가 있다.
붙혀넣기(Paste)는 붙혀넣기인데, 파워빌더에만 있는 특별한 붙혀넣기. Paste Special을 이용하면 스크립트 작성시간을 많이 단축할수가 있다. Paste Special은 툴바의 단축아이콘뿐만 아니라 메뉴의 Edit > Paste Special를 통해서도 접근이 가능하다. 메뉴를 보면 서브메뉴로 툴바에 있는 9개에 추가로 From File...이라는 메뉴가 있다. 각각의 기능은 다음과 같다.

  • Function
    Built-in : 파워빌더의 내장함수
    User-defined : 사용자 정의 함수(ex. 윈도우 함수)
    External : External 함수(ex. win32 API 함수)
  • SQL : Cursor, SELECT문, DML문, Procedure관련된 스크립트를 작성한다. 이것을 이용하면, 스크립트 빌더툴을 실행하여 결과를 스크립트에 반영하는 방식으로 적용된다.
  • Statement : IF, FOR, DO, CHOOSE, TRY문의 템플릿을 스크립트에 추가한다.
  • Global : Global변수 리스트 팝업이 나타나고, Global변수를 선택하면 스크립트에 추가된다.
  • Shared : Shared변수 리스트 팝업이 나타나고, Shared변수를 선택하면 스크립트에 추가된다.
  • Instance : Instance변수 리스트 팝업이 나타나고, Instance변수를 선택하면 스크립트에 추가된다.
  • Window : Access가능한 윈도우 오브젝트 리스트 팝업이 나타나고, 윈도우 오브젝트를 선택하면 스크립트에 추가된다.
  • Object : Access가능한 오브젝트 리스트 팝업이 나타나고, 오브젝트를 선택하면 스크립트에 추가된다.
  • Argument : 이벤트나 함수의 Argument 리스트 팝업이 나타나고, Argument를 선택하면 스크립트에 추가된다.
  • From File... : 파일 선택 팝업이 나타나고, 선택한 파일의 내용이 스크립트에 추가된다.

이중 SQL, Window, From File 이외의 기능은 AutoScript로 추가가 가능한 메뉴라서 사용 비율이 현저히 떨어지는 것이다.
From File기능은 개발중 스크립트 해더 커맨트부분을 템플릿을 파일로 작성해 두고, 스크립트 작성전 해당 템플릿 파일을 불어와서 스크립트를 작성하도록 하면, 소스코드의 관리에 도움이 될 것이다.

파워빌더의 AutoScript기능은 기본적으로 비활성화 되어있기 때문에 개발자들이 잘 모르는 경우가 있다. 이기능을 기본으로 활성화 시켜두고, MS Visual Studio처럼 더욱 좋은 기능을 첨가하고, 보완한다면 파워빌더의 생산성 향상에 많은 도움이 될꺼라는 생각을 해본다.