■ 최적화 관련 격언

  • 첫번째, 하지 마라.
  • 두 번째, (전문가 한정) 아직 하지 마라. 다시 말해, 완전히 명백하고 최적화되지 않은 해법을 찾을 때까지는 하지마라.

 

  • 자그마한 효율성은 모두 잊자. 섣부른 최적화가 만악의 근원이다.

 

이 격언들은 자바가 탄생하기 20년 전에 나온 것으로 최적화의 어두운 진실을 이야기한다. 최적화는 좋은 결과 보다는 해로운 결과로 이어지기 쉽고, 섣불리 진행하면 특히 더 그렇다. 

 

따라서 성능 때문에 견고한 구조를 희생하지 말자. 빠른 프로그램보다는 좋은 프로그램을 작성하라.  좋은 프로그램이지만 원하는 성능이 나오지 않는다면 그 아키텍처 자체가 최적화할 수 있는 길을 안내해줄 것이다. 좋은 프로그램은 정보 은닉 원칙을 따르므로 개별 구성요소의 내부를 독립적으로 설계 할 수 있다. 따라서 시스템의 나머지에 영향을 주지 않고도 각 요소를 다시 설계할 수 있다.

 

 

■ 시스템 설계

프로그램을 완성할 때까지 성능 문제를 무시하라는 뜻이 아니다. 구현상의 문제는 나중에 최적화해 해결할 수 있지만, 아키텍처의 결함이 성능을 제한하는 상황이 아니라면 시스템 전체를 다시 작성하지 않고는 해결하기 불가능할 수 있다. 따라서 설계 단계에서 성능을 반드시 염두에 두어야 한다.

 

  • 성능을 제한하는 설계를 피하라. 완성 후 변경하기가 가장 어려운 설계 요소는 바로 컴포넌트끼리, 혹은 외부 시스템과의 소통 방식이다.
  • API를 설계할 때 성능에 주는 영향을 고려하라. 
  • 성능을 위해 API를 왜곡하는 건 매우 안좋은 생각이다.
  • 각각의 최적화 시도 전후로 성능을 측정하라
  • 프로파일링 도구는 최적화 노력을 어디에 집중해야 할지 찾는데 도움을 준다.

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기