성급한 최적화의 법칙

Premature Optimization on WikiWikiWeb

성급한 최적화는 모든 악의 근원이다.

(도널드 커누스)

도널드 커누스의 논문 Goto문을 이용한 구조적 프로그래밍에 따르면, “프로그래머들은 프로그램에서 중요하지 않은 부분을 최적화하는 것을 생각하고 또 걱정함으로써 어마어마한 시간을 낭비하는데, 이런 시도는 디버깅이나 유지보수를 고려하면 오히려 효율성에 막대하게 부정적인 영향을 끼친다. 우리는 가령 97% 정도의 경우에, 작은 부분의 효율성에 관하여 생각하지 않아야 한다 : 성급한 최적화는 모든 악의 근원이다. 그러나 나머지 결정적인 3%의 경우에까지 기회를 저버리면 안 된다.”

성급한 최적화 란 (좁은 의미로) 그것이 꼭 필요한지 알기 전에 행해지는 최적화라고 할 수 있다.