1.4.3 기술의 블랙박스
프레임워크나 라이브러리는 일종의 패키지다. 소프트웨어 개발자는 이것을 설치하고, 설명서를 읽고 사용한다. 하지만 대부분 패키지가 어떻게 동작하는지는 모른다. 알고리즘과 데이터 구조에 같은 방식으로 접근하고, 키와 값을 보관하기 편리하다는 이유로 딕셔너리 자료형을 사용한다. 하지만 이것이 어떤 결과를 초래할지는 모른다.
패키지 생태계와 프레임워크에 대한 무조건적인 신뢰는 중대한 실수를 범하기 쉽다. 동일한 키를 사용하여 딕셔너리에 항목을 추가하는 것이 검색 성능 면에서 리스트와 차이가 없다는 것을 모른다면 디버깅하는 데 며칠이 걸릴 수도 있다. 간단한 배열로도 충분한 것을 C# 생성기를 사용하여 이유 모를 성능 저하를 겪기도 한다.
1993년 어느 날, 한 친구가 사운드 카드를 건네며 내 PC에 설치하라고 한 적이 있다. 예전에는 PC에서 괜찮은 소리를 내기 위해서 추가로 카드를 설치해야 했다. 그렇지 않으면 삐- 소리만 들렸기 때문이다. 아무튼, 전에는 내 PC 본체를 열어본 적도 없었고, 또 괜히 열었다가 고장 날까 두려웠다. 나는 그 친구에게 “대신 해줄래?”라고 말했다. 그러자 내 친구는 “어떻게 동작하는지 보려면 열어 봐야지”라고 말했다.