2012. 1. 11. 17:10 윈도우/참고
프로그램을 작성 할때 설계나 기술등 중요한 것들이 많이 있지만 갈수록 유지보수에 대한 관심이 커져 갑니다. 유지보수할때 수정이 용이하게 유연하게 설계 하는 것도 중요하지만, 코드를 알기 쉽고 깔끔하게 작성 하는 것도 매우 중요합니다. 유지보수를 해당 프로그램을 작성한 작성자만 하지는 않습니다. 또한 분석해야 하는 소스의 양도 많아서 알기 쉽게 되어있지 않다면 유지보수하는데 어려움이 발생합니다.

이런 이유로 코딩의 습관에 대해 이야기 해볼까 합니다.

참고한 서적 : 좋은 코딩, 나쁜 코딩:읽기 쉬운 코드가 좋은 코드다 - 한번쯤 가볍게 일고 넘어가면 좋은 책

1) 프로그램 개발 시작 전 의사코드를 작성하고 의사코드에 오류나 부족한 점이 없는지 확인한다.
    의사코드를 먼저 작성하면 프로그램 개발 시간이 많이 단축 됩니다. 의사코드도 없다면 소스만 보고 해석하여 오류등을 수정해야 하는데 소스의 분량이 많으면 쉬운일이 아닙니다. 각 단계별로 오류를 점검하여 하나씩 제외 하고 다음 단계로 넘어가 점검하면 더 빨리 오류를 수정 할 수 있을 것입니다.

    * 의사코드 : 프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어, 다른 프로그램 개발자나 이용자에게 모듈이 하는 일과 작동 원리 따위를 설명하는 데 쓰인다

2) 코드 작성 시 한 줄에 한 문장만 쓴다.
  ex)
    int nAppleCount, nDeleteCount;
_______________________________
    int nAppleCount;    // 사과 갯수
    int nDeleteCount;   // 사과를 삭제한 갯수

    위 처럼 한 줄에 한 문장만 쓰면 각각 지역변수에 주석을 달수 있어 함수 도입부만 봐도 어떤 일을 하는 함수 인지 알 수 있고 함수 내의 변수의 용도를 미리 알 수 있습니다.

빈 줄로 사이사이 구분한다.
3) 선언문과 실행문을 구분한다.
4) 단락을 구분한다. - 코드 중간 중간에 수행하는 기능에 따라서 앞부분에 빈줄을 삽입하여 공간을 둔다.
5) 제어문들 사이를 구분하라 - if, for, while 등등의 제어문들에도 빈줄을 삽입하여 공간을 둔다.
6) 함수들 사이를 구분한다. - 함수와 함수는 두줄 정도 빈줄을 삽입 한다.

7) 연산자의 앞뒤로 빈 칸을 둔다. - 단항 연산자는 피연산자와 빈 간을 두지 않는다.

8) 중괄호의 위치는 항상 새로운라인 하나를 쓰도록 한다. 
    라인 전체를 중관호 하나만 쓰도록 한다. 이렇게 하면 들여쓰기 내여쓰기를 잘했는지 구별하기도 쉽고 단락의 앞부분만 보면 해당 단락의 시작과 끝을 알기 쉽다. 라인 수는 늘어 나겠지만 가독성이 훨씬 좋다.

9) 내부 블록은 들여쓰기 한다.
    가끔 자동변수를 특정 지역에 쓰기위해 또는 단락을 구분하기위해 내부 블록을 쓰는데 이때는 들여쓰기하여 가독성을 좋게 한다.

10) 피제어부는 들여쓰기 한다. - 피제어부는 블록('{', '}') 으로 지정 하여 주는 것이 좋다.
      ex)
if( n1 == n2)
    n1 = n3 * 1000;
11) 주석을 잘 활용 하자.

 - 강조 사항이 없는 한 줄 주석
/* 한 줄 주석은 프로그램의 본문 주석에 많이 사용된다.
*/

 - 강조 사항이 있는 한줄 수석
/*--> 주의 : 오류 메시지 처리 확인 요망 <--*/
/*>>>>>>> 정밀 계산 루틴 <<<<<<<*/

 - 강조 사항이 없는 여러 줄 주석
/*
 * 여러 줄에 걸치 주석
 * 긴 줄로 장황하게
 * 설명 해야 할때 사용 됨
 */

 - 강조 사항이 있는 여러 줄 주석
/***********************************************************/
/*!!!!!!!!!!!!!!!!!!!                  경고(Warning)                    !!!!!!!!!!!!!!!!!!!!!*/
/***********************************************************/
/*  이 프로그램은 버그가 많기때문에 테스트를 많이 해야한다. ㅋㅋㅋ  */
/* 이런식으로 경고 문구 주석을 넣는다.                                             */
/***********************************************************/

 - 변수 사전용 주석
int nAdLength;  // 광고 길이
이렇게 각 변수에 주석을 달자.

 - 의사 코드를 달자
프로그램의 목적과 논리를 의사코드만 읽고도 쉽게 이해 할 수 있다.

 - 프로그램의 목적을 주석으로 달아 놓자.

12) 식별자 이름을 지을때 좋은 코딩 습관
 - 변수 이름을 지을때 체계적이고 헝가리안 표기 법으로 지어라.
    변수 이름을 지을때 변수의 성격이나 역할을 나타낼 수 있는 어떤 규칙을 만들고 변수의
    이름 앞에 자료형을 포함한 변수의 성격이나 역할을 표기하는 것이 좋다.

접두사 예)
a, arr : 배열
b : BOOL 형 변수
c : character 형 변수
d : double 형 변수
f : float 형 변수
fd : 파일 기술자
fp : 파일 포인터 형 변수
h : 핸들
i, n : int 형 변수
p, prt : 포인터형 변수
r : 참조형 변수
s, str : 스트링형 변수 (string, CString)
u : unsigned int 형 변수
w : WORD 형 변수
dw : DWORD 형 변수


247
posted by townone