프로그래밍에 대한 생각

2018. 12. 23. 16:54Insight

728x90

프로그래밍에 있어서 가장 중요한 것은 결과다.

결과적으로 목표를 충족하면서 현실적으로 실행 가능한 프로그램을 만드는 것이 언제나 최우선이 된다.

우선, 프로그램은 현실적으로 실행이 가능해야 존재 의의가 있다.
프로그램이 너무 복잡해서 처리 속도가 느리거나 메모리의 부하가 심할 경우,
이론적으로는 결과가 나와야 함에도 현실적으로는 불가능한 경우가 발생한다.

또한 실행이 된다고 하더라도, 프로그램 제작 목표는 만족함에 따라 점점 커져가기 마련이다.
때문에 프로그램은 이후의 발전을 위해 보수 및 개선 작업이 원활히 이루어질 수 있도록 구성되어야 한다.
예를 들어, C언어와 같은 절차 지향적 언어는 함수의 분할에 신경써야 한다.
함수는 최대한 간단히, 자주 반복되지만 반복문으로 대체될 수 없는, 의미상 원자성을 가진 패턴에 대해 정의하자.
C++, Java 같은 객체 지향적 언어는 다양한 디자인 패턴을 활용하여 적합한 상속 관계를 설정할 필요가 있다.
요구사항이 증가함에 따라 코드 수정이 잦다면, 분기 또는 값 변화가 발생하는 부분을 식별하여 구조적으로 개선하자.

물론 과정도 중요하다.

단순히 결과에만 매몰되어서도 안 된다. 겉으로 보이는 것만이 전부가 아니기 때문이다.
일례로 어떤 계산의 결과를 항상 '정확하다'고 맹신하는 태도는 좋지 못하다.
어떤 과정을 통해 결과가 도출되었는지 이해하고, 경우에 따라서는 부정확할 수 있음을 인지하고 있어야 한다.

프로그래밍은 기술이다.

습관적으로 상황에 따라 가장 효율적인 방법을 모색하고, 그것을 적절하게 활용할 수 있는 숙련도가 무엇보다 중요하다.
이것은 단순히 컴퓨터와 프로그래밍 언어에 대한 지식으로만 얻을 수 있는 것은 아니다.
끊임없이 도전하고, 실패하면 고치는 것을 반복하며 체득하는 기술이다.
728x90