1. 2007.11.08 프로그래밍의 도 제 3권

프로그래밍의 도 제 3권

3 권 설계(Design)

 

도사 프로그래머 가라사대: "프로그램을 테스트하고 있을 때는 설계를 변경하기엔 이미 늦은 다음이니라."

 

3.1

 

옛날에 컴퓨터 전시회에 참석한 사람이 있었다. 그는 매일 전시장에 들어가면서 문 앞에 선 경비원에게 이렇게 말했다:

 

"나는 상점을 터는 기술로 유명한 도둑이오. 미리 경고하지만 이 전시회도 내 손길을 벗어나진 못할 것이외다."

 

그 의 말에 경비원은 무척 신경이 쓰였다. 전시회에 출품된 컴퓨터 장비의 가치들이 가히 수십억원에 이르렀기 때문이다. 경비원은 자칭 도둑의 일거수일투족을 감시하였다. 하지만 그는 휘파람을 불면서 전시장에서 전시장으로 돌아다닐 뿐이었다.

 

자칭 도둑이 전시회장을 나갈 때 경비원은 그를 옆으로 데려가 몸수색을 실시하였다. 하지만 몸에는 아무 것도 없었다.

 

다음날, 그는 다시 돌아와 경비원의 약을 올렸다 : "나는 어제 엄청난 수확을 올렸소. 오늘은 더 많은 것을 훔치고 말테요." 경비원은 그를 더욱 철저히 감시하였다. 하지만 아무런 소득도 없었다.

 

전시회가 끝나는 날, 경비원은 호기심을 도저히 억누를 수가 없었다. "나는 도저히 이해할 수 없소. 궁금증으로 인해 나는 밤잠을 이룰 수 없을 것 같군요. 제발 나를 깨우쳐 주시오. 당신이 훔친 것은 대체 무엇이요?"

 

도둑은 가볍게 미소를 지었다. "나는 아이디어를 훔치고 있소."

 

3.2

 

옛 날에 한 스승 프로그래머는 늘 구조화되지 않은 프로그램을 짰다. 제자가 그를 흉내내기 위하여 구조화되지 않은 프로그램을 짰다. 제자가 스승에게 자신의 성장을 평가해달라고 하자 스승은 프로그램이 구조화되지 않았다며 꾸짖었다. "뱁새가 황새를 따라가면 가랭이가 찢어지는 법이다. 구조를 초월하기 전에 먼저 도를 깨달아야 하느니라."

 

3.3

 

()나라의 조정에 한 프로그래머가 있었다. 위후(魏候)가 프로그래머에게 묻기를: "회계 프로그램과 운영체제 중에 설계하기 쉬운 것은 어느 쪽이요?"

 

"운영체제이옵니다." 하고 프로그래머가 답했다.

 

위후는 믿을 수 없다는 표정으로 반문하였다. "어찌 회계 프로그램처럼 하찮은 것이 운영체제의 복잡함을 능가한다는 말이요?"

 

프 로그래머가 말하길 : "그렇지 않사옵니다." "회계 프로그램을 설계할 때는 프로그래머가 서로 다른 생각을 지닌 사람들을 조율해야만 하옵니다. 회계 프로그램이 어떻게 작동해야 하며, 보고서는 어떤 양식으로 출력되어야 하며, 세법에는 어느 정도로 충실해야 하는지 각양각색으로 떠들기 마련이옵니다. 반면에 운영체제의 외양에는 아무도 신경쓰지 않사옵니다. 운영체제를 설계할 때는 프로그래머는 기계와 아이디어의 가장 단순한 조화만 추구하면 되옵나이다. 이것이 운영체제가 설계하기 쉬운 까닭이옵니다."

 

크게 감탄한 위후가 미소를 지으며 다른 질문을 던졌다. "그렇구려, 그런데 어느 쪽이 더 디버깅하기 쉽소?"

 

프로그래머는 아무런 답도 하지 못했다.

 

3.4

 

관리자가 도사 프로그래머를 만나 새 애플리케이션의 요구사항을 담은 문서를 건네주었다. 관리자가 묻기를: "다섯명의 프로그래머를 투입한다면 시스템을 설계하는데 얼마나 걸리겠소?"

 

"일년이 걸릴 것이오." 도사가 간단하게 대답하였다.

 

"하지만 우리는 이 시스템이 지금 당장 필요하단 말이요! 프로그래머를 열명 투입하면 어떻겠소?"

 

도사는 인상을 지푸렸다. "그렇다면 이년이 걸릴 것이오."

 

"프로그래머를 백명 투입한다면 어떻겠소?"

 

도사는 가볍게 한숨을 쉬며 답하였다. "그렇다면 디자인이 결코 완성될 수 없을것이오."

'IT 정보&지식' 카테고리의 다른 글

프로그래밍의 도 제 4권  (0) 2007.11.08
프로그래밍의 도 제 2권  (0) 2007.11.08
프로그래밍의 도 제 1권  (0) 2007.11.08
Return top