🌐 소프트웨어·사고

크누스의 시기상조 최적화

"시기상조의 최적화는 모든 악의 근원이다"
📅 1974 👤 도널드 크누스 📖 早

유래

1974년 도널드 크누스의 ACM 「Structured Programming with go to Statements」 논문. 전체 인용 — "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." 자주 "premature optimization is the root of all evil"만 잘려 인용되지만, 핵심은 97% — 측정 전 최적화는 시간 낭비를 넘어 해롭다.

의미

엔지니어의 본능 — "이 부분이 느릴 것 같으니 먼저 빠르게 만들자." 크누스의 발견 — 우리의 직관은 거의 항상 틀린다. 진짜 느린 코드는 측정해야만 보인다. 90%의 시간을 차지하는 10%의 코드가 있고, 그것은 측정해야 안다. 측정 없이 한 최적화는 코드만 복잡하게 만든다.

교훈 — 동양 고전과 만나다

「논어」 자로편: "欲速則不達" — 빠르게 하려 하면 이르지 못한다. 공자가 가르친 速의 함정. 크누스는 그 함정이 코드 안에서 작동하는 방식을 보였다 — 빠르게 하려는 욕망이 코드를 더 느리게 만든다.

한자로 보는 본질

"早(조)"는 해(日) + 열 십(十) → 본래 해가 떠올라 열 시 같은 모양 → 이르다, 빠르다. 「논어」: "君子貞而不諒, 小人諒而不貞" — 군자는 곧되 작은 신의에 매이지 않는다. 早한 최적화에 매인 자는 諒(작은 신의)에 매여 貞(큰 곧음)을 놓친다.

📌 현대 적용: 소프트웨어 성능 튜닝·코드 가독성·창업 초기 결정·교육 커리큘럼·인생 선택.
⚠️ 주의·한계: "최적화하지 마라" 아님 — 측정 후 hot path에 대한 최적화는 정당. 측정 없는 추측이 문제.