설계 트레이드 오프
TMT이 글의 중심 주제는 설계에서의 트레이드오프(Trade-off)의 중요성과 이를 이해하고 적절하게 적용하는 방법에 대한 것입니다. 저자는 설계에서 트레이드오프가 필수적인 이유를 설명하며, 설계가 환경에 맞춰 진화해야 하는 생물의 진화와 유사한 측면이 있다고 말합니다.
글의 시작에서 트레이드오프의 개념을 설명하며, 한 가지를 얻기 위해 다른 것을 포기해야 하는 긴장 상황을 강조합니다. 이를 통해 설계는 항상 이익과 손해를 저울질하는 과정이며, 특히 설계에서 이익만 집중하고 손해를 간과하면 안 된다고 지적합니다.
침팬지와 인간의 진화 이야기를 통해, 환경에 따라 순간 기억력과 장기 기억력의 발달이 다르게 이루어진 것을 예로 들며, 설계 또한 변화하는 환경에 적응해야 한다는 점을 강조합니다. 이와 함께 설계에서 트레이드오프의 핵심은 설계 선택 시 얻는 것이 있으면 잃는 것도 있다는 사실을 받아들이는 것이라고 설명합니다.
저자는 많은 사람들이 설계에서 이익에만 집중하는 경향을 보이며, 잃는 것에 대해서는 충분히 고민하지 않는다고 지적합니다. 예를 들어, 코드의 유연성을 높이는 설계는 복잡성을 증가시키고 가독성을 저해할 수 있다고 말합니다. 따라서 설계 과정에서 이익과 손해를 신중히 평가하고, 손해가 지나치게 크다면 그 설계를 선택해서는 안 된다고 조언합니다.
또한, 설계 원칙도 절대적인 법칙이 아니며 상황에 따라 달라질 수 있다고 설명합니다. 상황에 맞는 설계를 하기 위해서는 다양한 설계 옵션을 알아야 하고, 변화하는 환경에서 코드를 유지보수한 경험이 중요하다고 주장합니다.
마지막으로, 저자는 설계에 있어 모든 것을 동시에 얻을 수 없다는 사실을 받아들여야 하며, 잘못된 트레이드오프 선택은 특정 상황에서는 유리하지만 다른 상황에서는 적응하지 못하는 시스템을 만들 수 있다고 경고합니다.