헝가리안 표기법(hungarian Notation)
Microsoft사의 헝가리안 개발자가 사용하던 변수명에서 유래된 방법입니다.
변수의 자료형을 변수 명의 접두어로 붙이는 방식으로 간단하게 변수명만 보고 자료형을 인식할 수 있는 방식입니다.
예전에는 효율성이 좋았지만 최근에는 가독성이 떨어지고 개발도구의 발전으로 많이 쓰이지 않는 방식이라고 합니다.
1. 공통
접두어 | 데이터타입 |
b | byte, boolean |
n | int, shot |
i | int, short(주로 인덱스로 사용) |
c | int, short(주로 크기로 사용) |
l | long |
f | float |
d,db | double |
ld | long double |
w | word |
dw | double word |
qw | quad word |
ch | char |
sz | NULL로 끝나는 문자열 |
str | C++ 문자열 |
arr | 배열(문자열 제외): 다른 접두어와 조합 가능 |
p | 포인터(16bit, 32bit): 다른접두어와 조합 가능 |
lp | 포인터(64bit): 다른접두어와 조합 가능 |
psz | NULL로 끝나는 문자열을 가르키는 포인터(16bit, 32bit) |
lpsz | NULL로 끝나는 문자열을 가리키는 포인터(64bit) |
fn | 함수타입 |
pfn | 함수포인터(16bit, 32bit) |
lpfn | 함수포인터(64bit) |
2. OOP
다른 타입 접두어 앞에 붙여 사용합니다.(예: g_name)
접두어 | 데이터 타입 |
g_ | 네임스페이스의 글로벌 변수 |
m_ | 클래스의 멤버 변수 |
s_ | 클래스의 static 변수 |
c_ | 함수의 static 변수 |
3. 장점
- 데이터 타입을 변수명에서 바로 추정할 수 있습니다.
- IDE가 없을 때 작업하는 경우 특히 vi나 터미널에서 작업 시 여러모로 유리합니다.
- 같은 의미를 가지는 서로 다른 타입의 변수가 있을 때 이름 충돌을 방지할 수 있습니다.
4. 단점
- 코드를 단번에 파악하기 힘이 듭니다.
- 변수나 함수 인자의 이름을 기억하기가 힘이 듭니다.
- 데이터 타입이 데이터 타입이 바뀌면 변수 또는 함수 인자의 이름을 바꿔야 합니다(리팩터링을 지원하는 IDE가 없으면 힘이 듭니다)
- 같은 의미를 가지는 서로 다른 타입의 변수가 있을 때 이것들을 왜 선언했는지를 잊어버렸다면 확인하기가 어렵습니다.
- C/C++ 일 경우 언어 명세에서 데이터 타입의 크기를 강제하지 않은 바람에 시스템 아키텍처에 따라 데이터 타입의 크기가 다르다는 문제가 있습니다.
5. 현재 상황
화면이 커지고 한눈에 볼 수 있는 코드가 많아지고, IDE가 발전하면서 마우스 커서만 올리면 해당 변수의 데이터 타입이 다 보이는 바람에 헝가리안 표기법은 구식으로 변하고 말았습니다. 현재 마이크로소프트사에서도 사용하지 않을 것을 권하고 하고 있습니다.
'프로그래밍 > 웹개발(WEB)' 카테고리의 다른 글
[네이밍룰] 파스칼표기법(pascal case) (0) | 2021.05.02 |
---|---|
[네이밍룰] 카멜표기법(Camel Case) 작성법 (0) | 2021.05.01 |
[Windows10] 윈도우10 바탕화면 변경 방법 (2) | 2021.04.29 |
[Tomcat] 톰캣 인코딩 설정 방법 (0) | 2021.04.25 |
인터프리터 언어 특징 (0) | 2021.04.22 |
댓글