핵심 요약
- 로우레벨 캐시 최적화와 벤치마크 순위에만 과도하게 집착하는 개발자들의 태도를 베테랑 개발자가 꼬집었습니다.
- 고수준 언어로 짠 코드가 이론상 비효율적이어도 실제로는 수 밀리초 만에 실행되며 코딩의 재미가 생산성과 문제 이해도를 높여줍니다.
- 특정 분야의 극단적인 아키텍처 장인이 아니라면 현미경 수준의 성능 최적화보다 개발의 즐거움을 좇는 편이 낫다고 조언합니다.
요약 1980년대부터 비디오 게임을 만들어온 베테랑 개발자 제임스 헤이그(James Hague)가 전하는 소프트웨어 개발 철학에 대한 글입니다.
그는 최근 개발 생태계에서 로우레벨 성능 최적화와 시스템 제어에 지나치게 집착하는 흐름을 지적합니다. 링크드 리스트의 캐시 비효율을 비웃고, 벤치마크 상위권에 들지 못하는 프로그래밍 언어를 깎아내리며, 가비지 컬렉션(GC)의 비효율성을 격렬하게 비판하는 사람들을 쉽게 찾아볼 수 있습니다. 배열 순회가 링크드 리스트보다 훨씬 빠르다는 점이나 언어마다 성능 특성이 다르다는 점은 맞는 말이지만, 그렇다고 해서 모든 코드를 캐시 구조나 하드웨어 아키텍처 관점에서만 짜야 하는 것은 아닙니다.
저자는 얼랭(Erlang)이나 스킴(Scheme) 같은 고수준 언어의 동적 타이핑, 불변성, 가상 머신 오버헤드를 철저히 꼬집으며 비효율적이라고 비판할 수는 있지만, 정작 그렇게 비효율적으로 보이는 프로그램도 실제 실행에는 단 수 밀리초밖에 걸리지 않는 경우가 허다하다고 꼬집습니다.
1990년대에 C와 어셈블리 중심의 경험에서 벗어나 현대적 기술을 익히려던 저자는 트리 조작이나 이진 탐색 같은 고전적인 문제들을 다양한 언어로 구현해 보았고, C나 파스칼에서는 지저분했던 작업이 얼랭에서는 코딩 자체가 '즐거운 경험'이 되는 것을 발견했습니다. 그는 코딩의 재미가 생산성을 높이고, 문제 영역을 더 깊이 이해하게 만들며, 결과적으로 충분히 빠른 코드를 만들어낸다고 강조합니다. 특정 도메인의 전문가로서 C 언어로 단순하고 정적인 구조를 완벽하게 짤 수 있는 경지가 아니라면, 현미경 수준의 극단적 최적화보다는 '개발의 재미'를 선택하는 것이 훨씬 가치 있다는 조언입니다.
Sponsored · 광고