Page 10 -
P. 10

래 머 라 고  답 하 는  사 람 이  9 0 % 나  되 며  그 와  동 시 에  프 로 그 래 머  중  9 0 % 는  자 신 이  그  1 0 % 의  훌 륭 한
                          프 로 그 래 머 에  속 한 다 고  대 답 한 다!

                          프 로 그 래 머 에 게  가 장  필 요 한  자 질 은  자 기  자 신 의  한 계 를  깨 닫 는  것 이 다.  우 리 는  자 신 이  기 껏 해 야   1 1
                          평 균 적 인  프 로 그 래 머 에  지 나 지  않 는 다 는  사 실 을  직 시 해 야  한 다.  우 리 는  전 체  시 간  중  2 0 % 를  버 그  프
                                                                                                            로
                                                                                                            그
                          가  있 는  프 로 그 램 을  작 성 하 는  데  소 비 하 고,  4 0 % 를  버 그 가  있 는 지  없 는 지  확 실 치  않 은  코 드 를  리  램
                                                                                                            을
                          팩 터 링 (r ef a ct ori n g)하 는  데  사 용 하 며,  나 머 지  4 0 % 를  프 로 덕 션 (pr o d u cti o n )에  이 미  들 어  있 는  코 드  더
                                                                                                            안
                                                                                                            전
                          를  디 버 깅 하 는  데  사 용 한 다.  버 그 에 는  눈 에  띄 는  분 명 한  버 그 와  눈 에  띄 지  않 는  불 분 명 한  버 그 가   하
                                                                                                            게
                                                                                                            만
                          있 기  때 문 이 다.  하 지 만  불 분 명 한  버 그 가  나 중 에  분 명 한  버 그 로  자 신 을  드 러 낸 다 는  사 실 은  확 실 하  들
                                                                                                            기
                          다( 다 만  그  모 습 을  드 러 낼  때 까 지  얼 마 나  시 간 이  걸 릴 지 가  문 제 일  뿐 이 다).  여 기 서  버 그 가  분 명 해
                          지 기 까 지  얼 마 나  오 랫 동 안,  얼 마 나  많 은  해 악 을  끼 칠  것 인 가  하 는  문 제 가  남 는 다.

                          이  문 제 를  어 떻 게  다 룰  수  있 을 까 ?  현 재 까 지  나 온  그  어 떤  프 로 그 래 밍  도 구,  기 법,  훈 련  방 식 도  프
                          로 그 램 에 서  버 그 를  완 전 히  없 애 지 는  못 한 다.  하 지 만  특 정  유 형 에  속 하 는  버 그 는  없 앨  수  있 고,  없
                          애 지  못 하 고  남 은  버 그 가  프 로 그 램 에 서  별 도 로  구 분 된( 안 전 이  보 장 되 지  않 는)  영 역 에 서 만  일 어 난
                          다 고  보 장 할  수  있 는  프 로 그 래 밍  기 법 도  여 럿  있 다.  이 런  기 법 을  사 용 하 면  버 그 를  더  쉽 고  효 율 적

                          으 로  잡 을  수  있 기  때 문 에  프 로 그 래 밍 에 서  아 주  큰  차 이 가  나 타 난 다.  예 를  들 어  버 그 의  존 재 를  증
                          명 하 지  못 할  정 도 로  프 로 그 램 을  복 잡 하 게  짜 는  대 신,  버 그 가  없 음 이  명 확 히  보 이 는  단 순 한  프 로 그
                          램 을  작 성 하 는  방 법 이 다.  3

                          이    장 의    나 머 지    부 분 에 서 는    불 변 성 (i m m ut a bilit y),    참 조    투 명 성(r ef er e nti al  tr a ns p ar e n c y),    치 환    모 델
                          (s u bstit uti o n m o d el )  등 을  설 명 하 면 서  몇  가 지  권 장 할  만 한  코 딩  기 법 을  보 여 준 다.  설 명 한  기 법 을
                          함 께  활 용 하 면  여 러 분 의  프 로 그 램 을  더  안 전 하 게  만 들  수  있 다.  이 런  개 념 을  이  책 에 서 는  반 복  적

                          용 할  것 이 다.


















                          3     “ …  소 프 트 웨 어 를  설 계 하 는  데 는  두  가 지  방 법 이  있 다.  한  가 지  방 법 은  설 계 를  아 주  단 순 화 해 서  결 함 이  없 음 을  확 실 히  알  수  있 도 록  만 드 는  것
                            이 고,  또  다 른  방 법 은  설 계 를  아 주  복 잡 하 게  만 들 어 서  결 함 이  있 는 지  확 실 히  알  수  없 도 록  만 드 는  것 이 다.”  A C M   소 식 지(C o m m u ni c ati o n s  of
                            t h e A C M ) 2 4 권( 1 9 81년  2 월)  7 5 ~ 8 3 페 이 지 에  실 린  C .A .R   호 어(H o ar e ) 의 “ 황 제 의  낡 은  옷(T h e  E m p er or ’s  Ol d  Cl ot h e s )” 을  참 고 하 라.

                                                                                                       0 3 3
   5   6   7   8   9   10   11   12   13   14   15