Page 13 -
P. 13
측하기 어려워진다. 예컨대 2000년 파이썬 python 2.0에서 ‘Hello, World’
를 나타내려면 다음과 같이 작성해야 했다.
print "Hello, World!"
하지만 이 코드를 파이썬 3에서 실행하면 문법 오류가 발생한다. 파이썬
3에서는 다음과 같이 입력해야 한다.
print("Hello, World!")
2000년에는 예측할 수 없었던 일이다. 예측할 수 있었다 하더라도 그에
대해 할 수 있는 조치가 없다. 문법에 변화가 생겨도 쉽게 업데이트할 수
있도록 시스템을 최대한 단순하게 유지하는 게 최선이다. 목표를 ‘유연하
게’ 혹은 ‘포괄적으로’처럼 추상적으로 잡지 말고 ‘쉽게 이해하고 수정할 수
있게’처럼 구체적으로 잡아야 한다.
현실에서는 이 규칙을 다음과 같이 논리적으로 확장할 수 있다.
1. 예측 대상인 시스템과 그 시스템 환경에 변화가 많을수록 미래 예측
이 어려워진다. (단, 해당 시스템과 환경 간 논리적 연관성이 적을수
록 환경의 영향은 줄어든다. 가령 엔진의 변화는 자동차 관련 시스템
에 영향을 미치지만, 사과나무의 변화는 영향을 미치지 않는다.)
2. 시스템이 복잡할수록 더 많은 변화를 거쳐야 한다.
3. 그러므로 예측하고자 하는 시스템이 복잡할수록 예측은 더 어려워
진다.
단, 내가 이러한 규칙을 알려주었다고 해서 미래에 관한 예측을 근거로
하여 설계에 관한 결정을 내리라는 뜻으로 오해하는 사람은 없기를 바란다.
10장 미래 예측의 정확성 043
심플소프트웨어_06.indd 43 2019-10-18 오전 10:33:59