고성능 C++ 코드, 캐시를 알면 달라진다
Writing Efficient C++ Code

C++는 고수준 언어이면서도 하드웨어에 가까워 성능이 중요한 게임 등에서 최선의 선택이 된다. 하지만 언어 선택만으로 충분하지 않다. 데이터 지향 설계(DOD)는 메모리 배치와 데이터 구조를 먼저 고려해 캐시 미스와 병렬화 문제를 줄인다. 저자는 객체 지향의 과도한 추상화를 경계하고, 데이터를 연속적으로 배치해 캐시 효율을 높이는 실용적 습관을 강조한다.
데이터가 ‘투명’하고 우리가 수행하려는 연산을 정확히 알며, 컬렉션의 각 요소에 그 연산을 적용하는 것이 다른 요소나 프로그램의 나머지 부분과 독립적이라면, 예를 들어 스레드 간에 요소 범위를 나누는 방식으로 알고리즘을 쉽게 병렬화할 수 있다.