더북(TheBook)

그에 비해 루비는 바로바로 반영되니까 참 편하더라. 생각한 대로 코드를 작성하고 확인하고, 또 코드를 수정하고 또 확인하고……. 컴퓨터가 내 생각의 흐름을 방해하지 않아서 좋다. 그래서 한번 개발의 리듬을 타면 그 속도가 엄청나게 빨라진다.

하지만 이런 동적 언어의 문제는 컴파일 과정이 없어서 간단한 문법 오류조차 실행했을 때만 나타난다는 것이다. 또한, 동적 언어는 타입이 정해져 있지 않아서 실행했을 때 기대했던 객체가 아닌 다른 객체가 전달될 수도 있고, 그로 인해 예상치 못한 결과가 나타나기도 한다.

물론 테스트 코드로 이를 보완할 수도 있다. 당연히 테스트 범위를 넓힐수록 코드의 오류가 테스트 단계에 드러나게 되고, 그 과정을 거쳐 프로그램이 탄탄해진다. 하지만 테스트 코드는 어디까지나 보완책일 뿐이고, 이 문제에서 완전히 자유로울 수는 없다.

결론적으로는 둘 다 아쉽다.

그림 1-9 정적 언어와 동적 언어
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.