저수준 프로그래머의 몰락 (The Demise of the Low Level Programmer)
Source
Evernote/Technote scraps/The demise of the low level Programmer. « AltDevBlogADay.md
Summary
Bungie 의 엔지니어 아티스트 앤디 퍼스 (Andy Firth) 는 게임 개발 업계에서 저수준 (Low-level) 프로그래밍 지식의 쇠퇴를 우려하며, 현대 프로그래머들이 하드웨어 및 메모리 동작에 대한 근본적인 이해가 부족해지고 있다고 지적한다. 그는 성능 최적화와 효율적인 코드 작성을 위해 부동소수점/고정소수점 연산의 한계, CPU 캐시 및 메모리 동작, 비트 시프트, 분기 예측 (Branch Prediction) 등의 개념을 반드시 숙지해야 한다고 강조하며, 관련 학습 자료를 제시한다.
Key Points
- 저자 앤디 퍼스는 13 년 간의 게임 엔진/렌더링 경험 바탕으로, 최근 채용 과정에서 후보자들의 저수준 지식 (메모리, 캐시 등) 이 현저히 부족함을 관찰했다.
- 단순히 C++ 문법을 아는 수준을 넘어,
i++와++i의 차이, 메모리 스트라이핑의 필요성 등 하드웨어와의 상호작용을 이해해야 진정한 최적화가 가능하다고 주장한다. - 모든 프로그래머 (특히 콘솔 개발자) 가 반드시 이해해야 할 핵심 개념으로 다음을 제시: 부동소수점 (Floating Point) 의 함정, 고정소수점 (Fixed Point) 의 유용성, 프로세서 캐시 및 메모리 동작, 비트 시프트 (Bit Shifting), 분기 예측 (Branch Prediction).
- 알고리즘 (예: 정렬) 에 대한 기본 이해도 역시 많은 개발자에게 결여되어 있는 중요한 요소로 지적된다.