본문 바로가기
Programming

코딩 컨벤션

by hyeyoo 2017. 12. 30.
※ 이 블로그의 글은 글쓴이가 공부하면서 정리하여 쓴 글입니다.
※ 최대한 내용을 검토하면서 글을 쓰지만 틀린 내용이 있을 수 있습니다.
※ 만약 틀린 부분이 있다면 댓글로 알려주세요.

코딩 컨벤션 가이드



 

작성일

2017.12.24

작성자

유형곤

이메일

dbgudrhs1@naver.com




차 례

 

 

 

 

 

 

 

들어가며

 

01 서론                 


코딩 컨벤션의 필요성에 대하여            


02 본론                 


1.명명 규칙              

2. 중괄호의 사용              

3. 들여쓰기

4. 연산자 사이의 띄어쓰기              


03 결론 및 참고 문헌 

 

결론 내용 1              













서론

 



1)

각주목록을 적용합니다.

(각주1)












코딩 컨벤션의 필요성에 대하여


코딩 컨벤션이란 소스코드를 작성하는 데에 있어 암묵적인 규칙이라고 할 수 있다. 

왜 굳이 규칙에 따라 코딩을 해야 할까? 사실 컴파일러는 코드 스타일이 어떻든 불평을 하지 않는다. 코딩 컨벤션은 바로 프로그래머를 위한 것이다. 소스코드는 컴파일러도 읽지만 사람도 읽어야 하므로 일정한 규칙에 따라서 작성하는 것이 가독성과 수정의 편리함에 도움이 된다. 이 문서에서는 프로젝트에서 코딩 컨벤션을 정할 때 어떤 사항들을 고려해야 하는지, 또 어떤 것들을 주의해야 하는지 알아본다.





본론

 











  • 코딩 컨벤션을 정할 때 고려해야 할 것

코딩 컨벤션을 정할 때에는 다음과 같은 항목들을 고려한다.

  1. 명명 규칙
  2. 중괄호의 사용
  3. 들여쓰기
  4. 연산자 사이 띄어쓰기
  • 1.명명 규칙(Naming Rule)

변수 명명법은 대표적으로 네 가지가 있는데, 각각의 규칙을 한 번 알아보자.

  1.카멜 표기법(Camel Case)

카멜 표기법은 두 단어 이상으로 된 변수를 만들 때 각각 단어의 첫 글자를 대문자로 표기하는 방법으로 낙타(Camel)의 등에 있는 혹과 같다고 해서 지어진 이름이다.

첫 단어의 첫 글자는 대문자일 수도, 소문자일 수도 있다.


예시 : getTime, setDate, camelCase 등

  2. 파스칼 표기법(Pascal Case)

파스칼 표기법은 파스칼이라는 사람이 대중화한 표기법으로,  각 단어의 첫 글자를 대문자로 표기하는 방법으로 카멜 표기법과 유사하다. 다만 카멜 표기법과는 다르게 첫 번째 단어의 첫 글자는 반드시 대문자여야 한다.


예시 : GetTime, SetDate, PascalCase 등


  3.스네이크 표기법(Snake Case)

스네이크 표기법은 단어 사이에 언더바를 넣어서 표기하는 방법이다.

거의 1960년대에 만들어졌을 정도로 오래된 표기법이며, 원래는 딱히 이름이 없던 표기법인데, Gavin Kistner라는 사람이 2004년에 이름을 지었다. 특이한 것은 멜 표기법에 비해 더 빨리 이름을 인식할 수 있다는 연구 결과가 있다는 점이다.


예시 : get_time, set_date, snake_case 등


  4. 헝가리안 표기법(Hungarian Notation)

헝가리안 표기법은 찰스 시모니가 제안한 표기법으로 변수의 이름 앞에 데이터 타입을 명시하는 표기법이다. 당시에는 덜 발달된 IDE를 사용하다 보니 어느 정도 이점이 있었지만, 현재로서는 그런 기술적 문제가 해결되었기 때문에 이점이 사라졌으며, 

오늘날에는 잘 사용되지 않는다.










2.중괄호의 사용

코딩 스타일에는 대표적으로 GNU, K&R, BSD 이렇게 세 가지가 있는데, 이번 절에서는 각각의 코딩 스타일이 중괄호를 어떤 규칙으로 사용하는지 알아보자.

G

N

U

if(...)

    {

        처리();

    }

블록을 if문 아래에 작성한다. 블록이 if에 속한 블럭임을 분명히 표시하여 구조가 잘보인다. 허나 들여쓰기를 많이 해서 처리하기에 수평으로 많은 코드를 작성할 수 없다.

K

&

R

if(...) {

        처리();

}

흔히 C계열 창시자 들이 사용하던 스타일이다. 여는 블록을 if와 같은 행에 배치한다. 코드 줄수를 절약하여 한눈에 많은 코드를 볼수있고 수평으로 많은 코드를 작성할수 있다. Java계열 Eclipse / 구글 C++  자바스크립트 등의 기본 포매팅이다. 


B

S

D

if(...)

{

        처리();

}

GNU의 블럭의 소속을 분명히 한다는 장점과 K&R의 수평으로 많은 코드를 작성할수 있다는 장점을 가져와 결합한 스타일이다. 줄 수는 GNU 스타일만큼 늘어나지만 수평으로는 K&R만큼 빽빽하게 쓸 수 있다. 비주얼 스튜디오에서의 기본 포매팅이다. 









4. 들여쓰기

들여쓰기는 일반적으로 문장을 쓸 때 문자열을 오른쪽으로 당겨 주변의 문장과 구분하는 것을 말하는데, 조건문이나 반복문 등을 쓸 때 사용한다.

1. Tab으로 들여쓰기를 하는 방법

탭으로 들여쓰기를 하면 스페이스 바와는 달리 한 번만 누르면 되므로 코드를 작성할 때 편리하다.

2.스  페이스 바로 들여쓰기를 하는 방법

 스페이스 바로 들여쓰기를 할 때는 스페이스 바 2칸, 4칸, 8칸 를 주로 사용하며 IDE (Intergrated Development Environment, 통합 개발 환경)가 바뀌어도 코드가 작성자가  의도했던 것과 동일하게 보인다는 것이다. 다만 탭을 사용한 것 보다 데이터 용량을 더 많이 사용하기 때문에(탭은 1바이트, 스페이스 바는 2, 4 바이트)  저장공간이 낭비될 수도 있다.


 

<탭 들여쓰기>


<스페이스 바 2칸 들여쓰기>


<스페이스 바 4칸 들여쓰기>


참고로 스페이스 바 들여쓰기나 탭 들여쓰기는 자신의 취향대로 고르면 되지만 두 방식을 혼용해서 사용하는것은 정말로 좋 않은 선택이다.


5. 연산자 사이 및 괄호에서의 띄어쓰기 : 

  1.띄어쓰기를 하지 않는 경우 :

for(int i=0; i<10; i++)


  2.띄어쓰기를 하는 경우 :

for(int i = 0; i < 1000; i++)












 










결론

앞서 코딩 컨벤션을 정할 때 어떤 것들을 고려하는지 살펴봤다. 그런데 중요한 것은 어떤 규칙을 선택하느냐이 아니다. 일관된 규칙을 작성하는 데에 초점을 두고 코딩 컨벤션을 정해보자.




참고 문헌

http://www.iamcorean.net/33

https://en.wikipedia.org/wiki/Snake_case (5쪽 스네이크 표기법)

https://namu.wiki/w/%ED%97%9D%EA%B0%80%EB%A6%AC%EC%95%88%20%ED%91%9C%EA%B8%B0%EB%B2%95 (헝가리안 표기법)


https://namu.wiki/w/%EC%BD%94%EB%94%A9%20%EC%8A%A4%ED%83%80%EC%9D%BC (들여쓰기 규칙 표 인용)























'Programming' 카테고리의 다른 글

운영체제 연습문제 : 4. 메모리 관리  (0) 2018.09.09

댓글