Page 12 -
P. 12

변수나 클래스를 미리 선언해서 사용하는 것은 이런 ‘실수를 방지한다’는 측면에서도 의미
                    가 있다. 예를 들어 다음 프로그램을 보자. 버그를 바로 찾을 수 있겠는가?

                     using System;


                     class Program
                     {
                         static void Main(string[] args)
                         {
                             int excellentChange = 1;
                             exceIIentChange += 2;
                             Console.WriteLine(excellentChange);
                         }
                     }

                    혹시 버그를 바로 찾았다 해도 만약 이 프로그램이 메서드 100개 중에 하나라면 쉽게 찾을

                    수 없었을 것이다.

                    반드시 변수를 선언하지 않아도 되는 프로그래밍 언어라면 이 프로그램에 사용되는 변수는
                    두 개라고 인식할 것이다.

                       ●   excellentChange(소문자 엘(l)이 두 개)
                       ●   exceIIentChange(대문자 아이(I)가 두 개)


                    하지만, 반드시 선언을 해야 하는 언어에서는 excellentChange(소문자 엘이 두 개) 변수만
                    인식하며, exceIIentChange(대문자 아이가 두 개) 변수는 컴파일 단계에서 오류로 판명된
                    다. 만약 비주얼 스튜디오(Visual Studio)를 사용한다면 입력과 동시에 구문 오류가 발생한
                    다. 몇 분 또는 몇 시간 이상 걸려야 할 디버그 시간이 거의 0이 되는 것이다.

                    물론 프로그램에 선언을 작성하는 시간은 단순한 변수라면 몇 초도 걸리지 않는다. 몇 초만

                    수고하면 몇 시간을 절약할 수 있다는 점이 바로 선언의 장점이다.
                    작은 테스트 프로그램에서는 이런 장점이 크게 다가오지 않을 것이다. 코드가 짧은 경우에

                    는 보면 바로 알 수 있기 때문이다. 하지만 프로그램 규모가 커지면 얘기가 달라진다. 작은
                    프로그램만 작성해보고 아는 체하는 사람은 선언이 없는 기술을 더 좋아할 수 있다. 디버그
                    에 들이는 시간이 길지 않기 때문이다. 하지만, 문제가 어디에 있는지 찾기 어려운 대규모



                                                                        1장  기본에 숨겨진 함정 019
   7   8   9   10   11   12   13   14   15   16   17