살아가는 이야기

프로그래밍에서 가장 중요한 것 본문

컴퓨터, 풀어그림

프로그래밍에서 가장 중요한 것

우균 2008. 2. 22. 09:48
프로그래밍에서 가장 중요한 것은 '추상화(abstraction)'다. '추상화'라고 하면 너무 추상적으로 들릴지 모르지만, 간단하게 생각하면 '간단하게 하는 것'이다. 다시 말해서, '주어진 문제를 단순한 문제로 만드는 능력'인데, 이 능력이 프로그래밍에서는 가장 중요하다.

문제를 단순하게 만드는 비결을 하나 소개하려고 한다.

  1. 프로그래밍 문제에서 주어진 것들 중에서 변하는 것을 찾는다. 변하는 것을 전문용어로 '변수(variable)'라고 하는데, 프로그래밍 문제에서 찾을 수 있는 변수를 프로그래밍 문제의 '매개변수(parameter)'라고 한다.
  2. 변수를 찾은 다음에는 이 변수가 취할 수 있는 가장 간단한 값을 찾는다. 이것을 전문용어로 '경계 값(sentinel)'이라고 한다.
  3. 복잡한 상황을 생각하기 전에, 먼저 문제의 매개변수 값이 가장 간단한 경우에 대해 문제를 푼다. 말이 길어졌는데, 그냥 가장 간단한 입력 값을 생각해서 문제를 풀면 된다.
  4. 간단한 문제에 대한 해답을 이용하여 복잡한 문제를 풀 수 있는지 확인한다. 풀 수 있다면 훌륭히 프로그래밍 작업을 완수한 것이다. 그렇지 않다면 문제의 매개변수를 잘못 찾은 것이 아닌가 살펴보고, 단계 1부터 다시 확인한다.
이런 비결을 알고리즘 분야에서는 '나누어 해결(divide and conquer)'하는 방법이라고 부른다.

혹시 지금 골치아픈 문제 때문에 힘든가요?
그럼 그 문제를 아주 간단한 문제로 나누어 생각하세요.
그리고 아주 쉬운 부분부터 하나씩 처리하다보면 어느덧 고민은 사라져 있을 겁니다.
요점은 이겁니다.

 "할 수 있는 것부터 하자."



Comments