Visual C++개발툴에서는 컴파일과 관련하여
디버그(debug)모드와 릴리스(release)모드를 선택할 수 있습니다. 개발중에는 디버그모드를
선택하여 디버깅정보를 포함하여 컴파일합니다. 그러나 완성되어 배포를 하는 경우 릴리스모드로 바꾸어
컴파일하게 됩니다.
VBA에서 개발하고 배포하는 과정에서도
조건부컴파일(conditional compilation)을 이용하여 디버그모드와 릴리스모드를 선택할 수
있습니다.
여러분은 개발하는 도중에
다음과 같이 변수값을 확인하거나 디버깅모드로 전환하기 위해
Debug개체나 MsgBox를 이용할 것입니다.
Debug.Assert
(X<100)
그러나 완성되어 배포하려면 이러한 코드는 더
이상
불필요합니다. 그래서 각 모듈을 돌아다니면서 일일이 주석처리하거나 지울
것입니다.
이번에는 조건부 컴파일을
사용하여 다음과 같이 작성해보면 어떨까요?
#Const DEBUG_ = True
...
...
...
#If DEBUG_ Then
Debug.Assert (X<100)
#End If |
‘#’으로
시작하는 코드가 낯선 분도 계실 텐데 조건부 컴파일을 의미한다고 보시면 됩니다.
#Const, #If~#End If는 일반적으로 사용한 상수선언, 조건문과 같는 의미입니다.
‘DEBUG_’
상수는 디버그모드인지 릴리스모드인지를 가리키는 상수입니다. 개발중에는
‘DEBUG_’
상수를
‘True’로
두어 디버그모드로 지정합니다. 그리고 #If ~ #End If 코드블럭
사이의 Debug.Assert (X<100)가 실행됩니다.
그러나 이제 배포하려는 경우
‘DEBUG_’
상수를
‘False’로
두어 릴리스모드로 바꾸면 더 이상 Debug.Assert (X<100)가
실행되지 않을 것입니다. 따라서 이를 지우거나 주석처리하는 수고가 필요없습니다. 상수값 하나만 바꾸면
되는 거죠. |