더북(TheBook)

1.1 프로그래밍의 함정

프로그램이 일련의 처리를 수행하는 과정을 묘사하는 기법이라고 생각하는 경우가 많다. 이런 묘사에는 문제를 해결하기 위해 프로그램이 사용하는 모델(model)에서 상태를 변경하는 동작과 모델의 상태 변이 결과에 대한 의사 결정이 포함된다. 상태 변이와 의사 결정은 프로그래머가 아닌 일반인들도 이해하고 수행할 수 있는 사고방식이다.

더 복잡한 과업을 완수해야 한다면 그 과업을 여러 단계로 나눈다. 그 후, 첫 단계를 실행하고 결과를 검사한다. 검사 결과에 따라 다음에 수행할 단계를 정할 수 있다. 예를 들어 두 양수 a와 b를 추가하는 프로그램을 다음과 같은 의사 코드(pseudocode)로 표현할 수 있다.

만약 b = 0이면, a를 반환하라.

그렇지 않으면, a를 1만큼 증가시키고 b를 1만큼 감소시켜라.

이렇게 변경한 a와 b를 가지고 전체 과정을 다시 수행하라.

 

이 의사 코드에서 대부분 언어에 존재하는 전통적인 명령을 알아챌 수 있을 것이다. 조건 검사, 변숫값 변경, 무조건 분기, 값 반환 등이 그런 명령이다. 이 코드를 흐름도로 표현하면 그림 1-1과 같다.

▲ 그림 1-1 프로그램을 시간에 따라 발생하는 처리 과정으로 표현하는 흐름도로, 원하는 결과를 얻을 때까지 여러 대상을 변환하고 상태를 변경한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.