박진수
한빛 미디어
2004.09.06
248P

2008.11.09

프로그래밍을 할때 어떤 형식으로 코드 작성 하는지 공부 하기 위해서
고른 책이 "쫗은 코딩 나쁜 코딩" 이라는 책이다.

C언어를 기본으로 하여 다양한 코딩 습관에 대해서 말하고 있는 책이다.
개발비용 보다 프로그램 유지보수 비용이 더 많이 소요 된다며,
코드를 보면 누구나 알기 쉽도록 "읽기 수운 코드가 좋은 코드다" 라고 말한다.

그러한 방법으로
변수 명명 규칙,
코딩 라인 규칙,
연산자 우선 순위 명확하게 나타내기
주석 다는 방법등 다양한 방법론을 제시 한다.

그 중에 가장에 기억이 남는 한 구절을 적어 본다.

첫 번째 코드 : 약삭빠르게 작성한 코드
while('\n' != (*pT++ = *pS++));

과연 어떤 작업을 위한 코드 일까???

두 번째 코드 : 주석까지 채워 알기 쉽게 작성한 코드
/***********************************************************************************/
/* 제어문의 역할 :                                                                                                   */
/*     개행 문자를 만날 때까지                                                                                   */
/*     목적 파일과 원본 파일의 포인터를 증가시킨다.                                                     */
/* 의사 코드 :                                                                                                         */
/*     무한 로프를 돌면서                                                                                          */
/*          원본 파일 내용을 목적 파일로 옮긴다.                                                            */
/*          만약 목적 파일에서 개행 문자를 만나면 루프를 멈춘다.                                     */
/*          목적 파일 포인터와 원본 파일 포인터를 하나씩 증가시킨다.                               */
/* *********************************************************************************/
while(1){
    *pTargetFilePosition = *pSourceFilePosition;
    if( *pTargetFilePosition == '\n') /* 개행 문자를 만나면 루프를 멈춘다 */
        break;
    pTargetFilePositionn++;
    pSourceFilePosition++;
}


전혀 예상하지 못한건 아니지만 이처럼 생각 하지 못한 내용이였다.

어떻게 보면 단 한줄에 작성할 수 있는 내용을
주석의 내용과 쉽게 알아 볼 수 있도록 코드를 작성하기 위해서
많은 줄을 할애 한다는것이 효율적이지 못하다고 생각 할지도 모르겠다.

하지만 시스템을 제작한 사람이 계속 유지 보수까지 하란 법은 없다.
어느 누가 시스템을 인수인계 받아서 유지 보수 할지 모르는 현실속에서
누구나 알아 보기 쉽게 프로그램을 작성 한다면
유지 보수비용을 절감 할 수 있지 않을까 하는 생각이 든다.

간단을 예를 보고 "아~ 이런 작업을 하는거였구나" 하는 분이 있을지 모르겠다.
난 예시를 보고 그런 생각을 했었었다.
책에서 말하는 다른 내용들도 보고 익힌다면
다른 개발자와 협업하는 프로젝트에 도움이 될 것 같다.

그런데 난 왜 저 한줄처럼 작성하는 코드
관심이 가는지 모르겠다. ㅋㅋ
첫 번째 코드 처럼 작성해서 프로그램을 개발 할 수 있을까.. 한번 도전해봐야겠다.

+ Recent posts