Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

트레이드오프란 객체의 어느 한부분의 품질을 높이거나 낮추는게, 다른 부분의 품질을 높이거나 낮추는데 영향을 끼치는 상황을 이야기한다. 일반적으로 한쪽의 품질을 높이면, 다른쪽의 품질은 떨어지는 방향으로 흐른다.

소프트웨어 개발을 예로들어보자. 일반적으로 개발시간을 늘리면 제품의 완성도는 높아지겠지만, 개발시간이 늘어날 수록 비용이 증가하게 된다. 그러므로 시간과 비용을 비교해 가면서 최적의 타협점을 찾아내어야 한다. 이것을 트레이드오프라고 한다.

컴퓨터 과학에서는 space-time트레이드오프가 중요하게 취급된다. 메모리(:12)의 사용을 크게 하면 크게할 수록 프로그램이 빨리 작동하게 할 수 있겠지만 비용역시 크게 증가할 것이다. 반대로 메모리의 사용을 줄이고, 하드디스크의 사용을 늘리면 비용은 줄어들겠지만 프로그램은 점점더 느리게 작동할 것이다. 결국 프로그래머는 비용과 시간을 고려해서 적당한 타협점을 찾아내야 한다.

  • 데이터전송시 데이터를 높은 수준에서 압축하면 전송시간과 비용을 절약할 수 있을 것이다. 그러나 압축과 해제에 더 많은 CPU(:12) 자원을 소비하게 될 것이다.
  • 인라인 코드를 사용해서 컴파일(:12)을 할경우, 더 빠른 프로그램을 만들 수 있다. 그러나 코드의 크기가 커지는 관계로 더 많은 메모리 공간을 소비하게 될 것이다.
  • 두개의 단어를 포함한 문서중에서 더 높은 유사도를 가진 문서를 찾고자 할경우, 문서에 포함된 두 단어의 거리를 구할 수 있을 것이다. 문서상의 정확한 단어의 위치를 가지고 판단하면, 좀 더 정확히 유사한 문서를 찾아낼 수 있겠지만 더 많은 시간이 소비될 것이다. 비트필드를 사용하면 유사한 문서를 찾아내는 능력은 떨어지겠지만 짧은 시간에 더 많은 문서의 유사도를 계산할 수 있을 것이다.