모든 악의 근원의 근원

5 hours ago 1

“premature optimization is the root of all evil”은 Donald Knuth의 1974년 논문 전체를 대표하는 원칙이 아니라, 구조적 프로그래밍과 goto를 다룬 41쪽 논문의 짧은 효율성 절에서 나온 문구임 Knuth는 실행 시간 대부분이 소스 코드의 약 3%인 핵심 구간에 집중된다고 보고, 나머지 97%의 작은 효율은 잊되 측정으로 확인된 핵심 코드는 최적화해야 한다고 봤음 이 3%의 근거는 1970년 Stanford의 소규모 Fortran 프로그램 조사와 Les Earnest의 프로파일링 자료로 이어지지만, 실제 자료에는 3%가 실행 시간의 약 50% 를 차지한다고 기록돼 90%에 가까운 집중을 뒷받침하지 않음 문구의 배경에는 Dijkstra의 소프트웨어 위기와 단계적 프로그램 구성, Tony Hoare의 레코드 추상화, Ole-Johan Dahl의 Simula 작업을 결합한 구조적 프로그래밍 운동이 있었음 “goto statement considered harmful”과 “premature optimization is the root of all evil” 모두 복잡한 역사와 조건을 짧은 문구로 압축하면서 원래 맥락을 잃었으며, 실무에서는 문구 자체보다 원자료와 측정 결과를 살펴야 함 1974년 논문에서 살아남은 한 문장 1974년 ACM 정기간행물 한 호에는 Ivan Sutherland, Alfred Aho, Niklaus Wirth, Brian Kernighan 등 유명 인물들의 글이 함께 실렸지만, 오늘날 널리 기억되는 글은 Donald Knuth의 41쪽 논문 “Structured Programming with go to Statements”임 논문은 다양한 주제를 다뤘지만 반복적으로 인용되는 부분은 효율성 절의 “premature optimization is the root of all evil”이라는 짧은 문구임 이 문구는 성능을 소프트웨어 설계에서 미뤄도 된다는 뜻으로 자주 받아들여졌고, 성능을 처음부터 고려해야 한다고 설득할 때 장애물로 작용해 왔음 Google Ngram에서는 1974년 무렵부터 표현의 사용이 빠르게 늘어났지만, 프로그래밍 서적 출판량 자체의 증가가 그래프에 영향을 줬을 가능성이 있어 비율만으로 해석하기는 어려움 각자의 경험에 맞춰 해석하는 대신 처음 사용된 사례와 당시의 프로그래밍 환경을 추적해야 실제 의미를 이해할 수 있음 문구의 불...

Read Entire Article