Microsoft® Visual Basic® Scripting Edition
VBScript 코딩 규칙
 VBScript 자습서
 이전 페이지다음 페이지

 

코딩 규칙이란?
Microsoft Visual Basic Scripting Edition을 사용하여 코드를 작성하는 데 도움을 주는 제안 사항들입니다. 여기에는 아래 규칙을 포함하고 있습니다. 일관성있는 코딩 규칙 집합을 사용하는 주된 이유는 스크립트의 구조와 코딩 양식을 표준화하여 모든 사람들이 코드를 쉽게 읽고 이해할 수 있게 하는 것입니다. 코딩 규칙을 사용하면 정확하고 읽기 쉬우며 애매하지 않은, 즉 다른 언어 규칙과 조화를 이루면서 되도록이면 직관적인 원본 코드를 작성할 수 있습니다.
상수 명명 규칙
VBScript의 초기 버전에는 사용자 정의 상수를 만들 수 있는 메커니즘이 없습니다. 그래서 상수를 사용할 경우에는 상수를 변수로 구현하고 모두 대문자만 사용하여 다른 변수와 구별했습니다. 또 밑줄(_)을 사용하여 여러 개의 구성 단어들을 구분했습니다. 사용 예는 아래와 같습니다.
 USER_LIST_MAX
 NEW_LINE
지금도 이 방법을 사용하여 상수를 식별할 수 있지만, 이제는 Const문을 사용하여 진정한 상수를 만들 수 있으므로 명명 규칙을 택일하여 사용할 수 있습니다. 이 규칙에서는 상수 이름 앞에 "con"이라는 접두사를 붙여서 대소문자 혼합 형식을 사용합니다. 사용 예는 아래와 같습니다.
 conYourOwnConstant
변수 명명 규칙
읽기 쉽고 일관성있는 변수를 만들려면 VBScript 코드의 설명적인 변수 이름 앞에 아래와 같은 접두사를 사용합니다.

하위 형식 접두사 용례
Boolean bln blnFound
Byte byt bytRasterData
Date(Time) dtm dtmStart
Double dbl dblTolerance
Error err errOrderNum
Integer int intQuantity
Long lng lngDistance
Object obj objCurrent
Single sng sngAverage
String str strFirstName

변수 범위
변수는 언제나 유효한 가장 작은 범위로 정의해야 합니다. VBScript 변수의 범위는 아래와 같습니다.

범위 변수 선언 위치 가시성
프로시저 수준 Event, Function 또는 Sub 프로시저 변수를 선언한 프로시저 안에서만 볼 수 있습니다.
스크립트 수준 프로시저 밖에 있는 HTML 페이지의 HEAD 구역 스크립트의 모든 프로시저에서 볼 수 있습니다.

변수 범위 접두사
스크립트의 크기가 커지면 변수의 범위를 빨리 구별할 수 있는 값도 커집니다. 형식 접두사 앞에 단일 문자 범위 접두사를 붙이면 변수 이름을 부당하게 늘리지 않고도 이 효과를 얻을 수 있습니다.

범위 접두사 용례
프로시저 수준 없음 dblVelocity
스크립트 수준 s sblnCalcInProgress

설명적인 변수와 프로시저 이름
변수 이름이나 프로시저 이름의 본체는 대소문자를 섞어서 사용하며, 그 목적을 설명하는 데 필요한 만큼 완전해야 합니다. 또한 프로시저 이름은 InitNameArray 또는 CloseDialogIn처럼 동사로 시작해야 합니다.

자주 사용하거나 긴 용어는 표준 약어를 사용하여 적당한 길이의 이름을 유지하는 것이 좋습니다. 대개 변수 이름이 32자를 넘으면 읽기가 어렵습니다. 약어를 사용할 경우 전체 스크립트에 걸쳐서 그 일관성을 유지해야 합니다. 예를 들어, 스크립트 안이나 Cnt와 Count를 무작정 사용하면 혼란을 초래할 수 있습니다.

개체 명명 규칙
아래 표는 VBScript를 프로그램하는 동안 만날 수 있는 개체에 대해 권장되는 규칙을 보여줍니다.

개체 형식 접두사 용례
3D 패널 pnl pnlGroup
애니메이션 단추 ani aniMailBox
확인란 chk chkReadOnly
콤보 상자, 드롭다운 목록 상자 cbo cboEnglish
명령 단추 cmd cmdExit
일반 대화 상자 dlg dlgFileOpen
프레임 fra fraLanguage
가로 스크롤 막대 hsb hsbVolume
이미지 img imgIcon
레이블 lbl lblHelpMessage
lin linVertical
목록 상자 lst lstPolicyCodes
스핀 spn spnPages
텍스트 상자 txt txtLastName
세로 스크롤 막대 vsb vsbRate
슬라이더 sld sldScale

코드 주석 작성 규칙
모든 프로시저는 수행 작업을 간략히 설명하는 주석으로 시작합니다. 이 설명은 시간이 경과하면서 그 내용이 자주 바뀌어 불필요한 주석 관리 작업이나 더 바람직하지 않은 잘못된 주석을 가져오기 때문에 작업 방법인 구현 관련 세부 사항을 서술하지 않습니다. 코드 자체와 필요한 인라인 주석만으로 그 구현을 설명합니다.

목적이 분명하지 않고 프로시저에서 특정 범위에 놓이는 인수를 요구하면 프로시저에 전달되는 인수를 설명해야 합니다. 특히 참조 인수를 사용하여 프로시저에 의해 바뀐 함수나 변수의 결과 값도 각 프로시저의 시작 부분에서 설명해야 합니다.

프로시저 머리말 주석에는 아래와 같이 구역별 머리글이 필요합니다. 뒤에 나오는 "코드 서식화" 부분을 참조하십시오.

구역 머리글 주석 내용
목적 프로시저 수행 작업(수행 방법이 아님)
가정 그 상태가 해당 프로시저에 영향을 주는 외부 변수, 컨트롤 또는 기타 요소의 목록
결과 외부 변수, 컨트롤 또는 기타 요소에서의 프로시저 결과의 목록
입력 명확하지 않은 개별 인수에 관한 설명. 각 인수는 인라인 주석과 함께 별도의 줄에 있어야 합니다.
결과 값 반환되는 값에 관한 설명

중요 사항:

코드 서식화
코드 서식화에서 논리 구조와 중첩을 끊임없이 반영할 수 있도록 되도록이면 화면 공간을 많이 확보해야 합니다. 여기에는 아래와 같이 몇 가지 지침이 있습니다.
 '*********************************************************
 ' 목적:  UserList 배열에서 지정된 사용자가
 '           맨 처음 나타나는 곳을 찾습니다.
 ' 입력:  strUserList():   검색되는 사용자 목록입니다.
 '           strTargetUser:   검색할 사용자 이름입니다.
 ' 결과:  strUserList 배열에서
 '           처음 나타난 strTargetUser에 대한 색인입니다. 
 '           대상 사용자가 없으면 -1을 반환합니다.
 '*********************************************************

 Function intFindUser (strUserList(), strTargetUser)
     Dim i                     ' 루프 카운터입니다.
     Dim blnFound	       ' 플래그를 찾는 대상입니다.
     intFindUser = -1
     i = 0                     ' 루프 카운터를 초기화합니다.
     Do While i <= Ubound(strUserList) and Not blnFound
         If strUserList(i) = strTargetUser Then 
             blnFound = True   ' 플래그를 True로 지정합니다.
             intFindUser = i   ' 결과 값을 루프 횟수로 지정합니다.
         End If
         i = i + 1             ' 루프 카운터를 증가시킵니다.
     Loop
 End Function