컴파일 과정이 정상적으로 수행되고 결과도 우리가 원하는 대로 3단을 제외하고 출력되었습니다. 그러나 위 코드는 심각한 결함이 있습니다. 무엇일까요?
주어진 미션을 해결하기 위한 코딩 방법은 사람마다 다릅니다. 결과는 같아도 다양한 방법으로 코딩할 수 있다는 의미입니다. 따라서 두 사람이 각각 코딩하여 같은 결과가 나왔다고 해서 두 사람의 코딩이 같다고 할 수 없습니다.
예를 들어 핸드폰에서 문자를 전달하는 프로그램을 두 사람이 각각 코딩해서 만들었고, 둘 다 정상적으로 문자가 전달된다고 가정하겠습니다. 그러나 한 사람의 프로그램은 실행 결과 10초 후에 상대방에게 문자가 도달하고, 다른 한 사람의 프로그램은 1초 안에 상대방에게 문자가 도달한다고 가정합시다. 이때 두 프로그램은 ‘문자를 정상적으로 보낸다’는 결과는 동일하지만, 전혀 다른 코딩이라고 할 수 있습니다.
또한, 동일한 일을 하고 동일한 시간 안에 수행하는 프로그래밍이라 하더라도 어떤 사람은 100줄 분량의 코드를 작성하고 다른 한 사람은 1000줄 분량의 코드를 작성했다고 가정합시다. 코드 저장을 위한 메모리 소비가 상대적으로 적고 많기 때문에 이 또한 실행 결과가 같더라도 동일한 코드라고 할 수 없습니다.
마찬가지로 처리 속도와 코드 양이 같다 하더라도 float a;라고 선언하여 4바이트를 사용하는 것과 double a;라고 선언하여 8바이트를 사용하는 코드는 메모리 사용 측면에서 같은 코드라고 할 수 없습니다.
즉, 프로그래밍에는 ‘코딩의 질(Quility of Coding)’이 존재합니다. 수행 시간과 메모리를 최소화한 프로그래밍이 질적으로 우수한 코딩이라고 할 수 있습니다.