Standard Coding Convention
표준 코딩 규칙
- 대규모 프로젝트에서 코딩 규칙을 재정하고 프로젝트에 참여한 개발자 모두가 이를 지킴으로써
생산성을 증대할 수 있다.
- 표준 코딩 규칙을 따랐을 때 생기는 장점은 아래와 같다:
- 가독성 제고
- 간결하고 명확한 코딩으로 인한 유지보수성 증대
- 개발 시간 단축
- 본 포스트에서는 아래 그룹에서 사용중인 코딩 규칙을 소개한다.
- 대한민국 행정안전부
- NHN
대한민국 행정안전부 - 프로그램 표준 코딩규칙
명칭에 관한 규칙
- 명칭은 31자 이내로 정한다.
- 변수명과 함수명은 다르게 사용한다.
- 매크로의 이름은 대문자와 언더스코어(_)로만 작성한다.
- 상수의 이름은 대문자와 언더스코어(_)로만 작성한다.
- 변수명은 소문자로 시작하도록 작성한다.
- 함수명은 소문자로 시작하며, 첫 번째 단어는 동사로 작성한다.
- 포인터명은 p로 시작하며, 참조하는 변수명의 첫 글자를 대문자로 구성하여 작성한다.
소스 형식에 관한 규칙
- 하나의 소스 파일의 코드수는 200줄 이내의 규모로 작성한다.
- 하나의 소스코드의 길이는 80자 이내로 작성한다.
- 함수의 내용은 70줄 이내로 작성한다.
- 여는 중괄호({)는 문장의 끝에, 닫는 중괄호(})는 문장의 시작에 둔다.
- 하나의 문장을 2줄로 작성할 경우, 80자 넘어 쉼표(,)가 오면 다음 문자는 새 줄로 시작한다.
- 하나의 문장을 2줄로 작성할 경우, 둘째 줄의 시작은 이전줄의 표현식과 같게 Formatting 한다.
- 레벨이 동일한 문장은 시작 위치를 맞춘다.
주석에 관한 규칙
- 코드의 첫 주석에는 최초 작성자, 최초 작성일, 최초 변경일, 목적, 개정 이력(변경자, 변경 일자, 변경 내용), 저작권을
주석으로 기재한다. - 메서드 정의 앞에는 함수의 용도, 매개변수, 반환 값, 변경 이력을 주석으로 기재한다.
- 함수 인자에 대한 설명, 복잡한 논리식, 간단하지 않은 자료구조에 관한 내용에는 필히 주석을 작성한다.
- 원시 코드와 주석이 명확히 구분되도록 공백 또는 탭으로 띄워놓는다.
- 원시 코드를 수정할 때, 원시코드의 내용과 주석의 내용이 일치하도록 주석도 함께 수정한다.
변수 선언 및 자료형에 관한 규칙
- 용도가 같은 변수는 한 줄에 선언한다.
- 필요한 변수만 선언한다.
- 배열 선언 시, 원소 수를 명시하거나 초기화한다.
- 배열 초기화 시, 차수에 따라 중괄호({})를 적절히 사용한다.
- 지역 변수는 선언 시 초기화한다.
- 부호 없는 자료형을 표현할 때는 값의 끝에 u를 붙인다.
- 포인터 변수에 주소나 정수 값을 저장할 시, 자료형이 일치하게 한다.
- 비트 필드는 unsigned/signed int형으로만 선언한다.
(다른 자료형에 대해서는 비트 연산이 정의되어 있지 않다.)
상수에 관한 규칙
- 8진수는 사용하지 않는다.
- C언어의 경우, 숫자 리터럴은 const 타입을 사용한다.
- 상수는 부호 있는 자료형을 사용하고, 부호 없는 자료형을 사용할 시 u를 붙인다.
수식에 관한 규칙
- 단항 연산자는 피연산자에 붙여서 표기한다.
- 이항 연산자와 피연산자들 간에는 공백을 넣는다.
(dot(.)연산자는 이 규칙에서 제외한다.) - 삼항 연산자(a?b:c)에서 ?의 앞의 수식은 소괄호(())로 묶는다.
- 증감 연산자를 사용할 시, 다른 연산자는 사용하지 않는다.
- 연산자가 3개 이상일 경우, 우선순위를 소괄호(())로 표현한다.
- sizeof 함수의 인자로 수식을 사용하지 않는다.
문장에 관한 규칙
- switch 문에서 case 문을 빠져나오기 위해 break 문을 사용한다.
(break문을 사용하지 않고, 다음 case로 넘어갈것을 의도하는 경우, 주석을 작성하여 이를 표시한다.) - switch 문에서 case 문이 다 끝난 부분에 default 문을 넣는다.
- goto 문을 사용하지 않는다.
- for 문을 제어하는 수식에 실수 값을 사용하지 않는다.
- for 문을 제어하는 수치 변수를 계산에 사용하지 않고, 오로지 반복 횟수를 계산하는 목적으로만 사용한다.
- break 문은 가능한한 한 번만 사용한다.
- if-else 문의 끝은 else로 마무리짓는다.
Google - Coding Convention in C++
NHN - C/C++ 코딩 규칙
Reference: 쉽게 배우는 소프트웨어 공학
(김치수 저, 한빛아카데미, 2020)