Hax0r

네이밍 컨벤션 본문

0x00 개발/Computer

네이밍 컨벤션

영준이 2017.02.07 22:00

좋은 코드란 제 3자가 봐도 쉽게 이해할 수 있는 코드이다.

컴퓨터가 이해할 수 있는 언어를 작성하는 건 바보도 할 수 있다.

코드는 사람이 이해할 수 있게 작성해야한다.


변수 명, 메소드 명, 클래스 명, 모듈 명 등

모든 명에는 규칙이 존재해야하며, 이 것이 바탕이 되어야 역할이 명확해지고 정체성 또한 분명해진다.

이 것이 OOP를 향한 첫 단추이다.


네이밍이 가장 어렵다면, 여러분만 그런 것이 아닙니다.

저도 그렇고, 다른 타 프로그래머들 또한 많이 동감하는 부분입니다.


그 만큼 네이밍은 프로그램에서 가장 중요한 역할 중의 일 부분이고 가장 기본이 되는 것 입니다.





Unclear 한 코드는 쓰레기 코드이다. 


프로그래머로써 다른 프로그래머가 작성한 코드를 참고해서 작업해야 될 경우는 비일비재 할 것 이다.

목적을 이해할 수 없는 메소드 명과 변수들, 가독성이 떨어지는 코드는 업무의 효율을 저하시키며, 시간 또한 많이 소요하게한다.


예를 들어 "X, AO, C2" 이 와 같이 정확한 목적을 담지않은 변수들이 있다.

가급적으로 짧게 네이밍을 하려는 프로그래머의 욕심으로 발생하는 문제일 수 도 있으나, 이는 너무나 잘 못 된거이며

같은 동료에게 크나큰 해를 입히는 것 이라 생각한다.


좋은 네이밍이란 주석이 없이도 이해할 수 있을 정도의 직관적이어야한다.

가장 좋은 것은 사전적인 의미를 담고있는 단어를 사용하는 것이 가장 좋으며 타 개발자들이 알 수있는 표기법으로 가독성을

높이는 방법이 좋다.


표기 방법 중 대표적으로 3가지를 예로 들 수 있다.


  • 헝가리안 표기법
    • 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하여 표기
마이크로 소프트 개발자 구안한 표기법이다.
아래 접두사와 언더라인 (_)를 사용하여 표기한다.

접두어 

데이터 타입 

byte, boolean 

int, short

int, short (인덱스로 사용)

c

 int, short (크기로 사용)

l

long 

float 

d, db 

double

ld 

long double 

word 

dw 

double word

qw 

quad word 

ch 

char 

sz 

NULL 로 끝나는 문자열 

str 

C++ 문자열 

arr 

배열 

p

포인터 (16비트, 32비트) 

psz 

NULL 로 끝나는 문자열을 가리키는 포인터 (16비트, 32비트) 

lpsz 

NULL로 끝나는 문자열을 가리키는 포인터 (64비트) 

fn 

함수 타입 

pfn 

함수 포인터 (16비트, 32비트) 

lpfn

함수 포인터 (64 비트) 



헝가리안 표기법은 더 이상 사용하지않는데, 그 이유는 IDE의 눈 부신 발전 덕분에 마우스 커서만 올리면 해당 변수의 데이터 타입이 표기 되기 때문이다. 그래서 구식 방법으로 지금은 인식되고있다.

  • 파스칼 표기법
    • 모든 단어 첫 번째 문자를 대 문자로 표기
  • 카멜 표기법
    • 단어와 단어가 이어서 변수명이 선언될 때, 두 번째 단어를 대 문자 표기

명명 규칙은 헝가리안 표기법의 MS 개발자 처럼 자신만의 룰을 만들어 작성할 수 있지만, 대중성이 있는 명명 규칙을 사용하는 것이 다른 프로그래머를 위해서도 좋다. 아래는 내가 지향하는 규칙이다.


  • 클래스의 명은 UpperCamelCase
  • 함수와 변수는 lowerCamelCase
  • 그리고 상수는 대문자와 언더바 "_" 로 분리하여 표기한다. (e.g. YOUNG_KING)



참고


Style Guide for Python Code

0 Comments
댓글쓰기 폼