
6
고성능 컴퓨팅을 상상해보자. 수많은 기계로 이뤄진 클러스터가 복잡한 기상 현상을 모델링하
거나 멀리 떨어진 별에서 수집한 데이터 신호를 이해하려고 노력하는 모습을 떠올릴지도 모른
다. 특별한 시스템을 만드는 사람만 코드의 성능 특성을 걱정해야 한다고 오해하기 쉽다. 이 책
을 고른 독자는 고성능 코드를 작성할 때 필요한 이론과 실무에 한 걸음 다가섰다. 성능 좋은
시스템을 만드는 방법을 이해하는 것은 모든 개발자에게 도움이 된다.
아주 어려운 분야에 속하는 애플리케이션들이 있다. 성능을 최적화한 코드를 작성하지 않고는
이런 분야의 애플리케이션에 접근할 수 없다. 하지만 성능 개선은 (어려운 분야가 아니더라도 )
훨씬 더 많은 애플리케이션에 도움을 준다.
우리는 종종 새로운 기술적 역량이 혁신의 원동력이라고 생각한다. 하지만 나는 기술 접근성을
수십 배 높이는 역량도 똑같이 중요하게 여긴다. 시간이나 계산 비용 측면에서 어떤 대상이 열
배 싸지면, 여러분이 취급할 수 있는 응용 분야가 상상 이상으로 넓어지기 마련이다.
10
여 년 전
SNS
회사에서 일할 때 이 원칙이 내 작업에 최초로 드러났다. 당시 우리는 사람들
이
SNS
에서 강아지와 고양이 사진 중 어느 쪽을 더 많이 클릭하는지 알아보려고 데이터를 수
테라바이트 분석했다.
물론 답은 개였다. 고양이는 ...