헝가리안 표기법 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
;Hungarian Notation
;Hungarian Notation
;컴퓨터 프로그래밍에서 변수 및 함수의 이름 인자 앞에 데이터 타입을 명시하는 코딩 규칙
;컴퓨터 프로그래밍에서 변수 및 함수의 이름 인자 앞에 데이터 타입을 명시하는 코딩 규칙
* 마이크로소프트(Microsoft)의 찰스 시모니(Charles Simonyi)가 개발 책임자로 있을 때 제안
* 헝가리안 표기법이라는 명칭은 제안자인 찰스 시모니가 헝가리인이라서 붙은 것이다.
* 80년대 당시에는 IDE라는게 다들 부실했기 때문에 이 규칙이 엄청난 센세이션을 불러 일으켰다.
* 지금은 MS도 공식 가이드라인에서 사용하지 말 것을 권고하고 있다.


*마이크로소프트(Microsoft)의 찰스 시모니(Charles Simonyi)가 개발 책임자로 있을 때 제안
== 표기법 ==
*헝가리안 표기법이라는 명칭은 제안자인 찰스 시모니가 헝가리인이라서 붙은 것이다.
=== 공통 ===
*80년대 당시에는 IDE라는게 다들 부실했기 때문에 이 규칙이 엄청난 센세이션을 불러 일으켰다.
*지금은 MS도 공식 가이드라인에서 사용하지 말 것을 권고하고 있다.


==표기법==
=== OOP ===
===공통===
{| class="wikitable"
| '''접두어'''
| '''데이터 타입'''
|-
|b
|byte, boolean
|-
|n
|int, shot
|-
|i
|int, shot(주로 인덱스로 사용)
|-
|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)
|}


===OOP===
== 장점 ==


* 다른 타입 접두어 앞에 붙여 사용한다. (ex: m_lpszName - 클래스 멤버 변수인 64bit 문자열 포인터)
== 단점 ==


{| class="wikitable"
== 현재 추세 ==
|'''접두어'''
* 디스플레이 화면이 커지면서 한 눈에 볼 수 있는 코드의 양이 많아지고, IDE가 눈부시게 발전하면서 마우스 커서만 올리면 해당 변수의 데이터 타입이 다 뜨는 덕에 헝가리언 표기법은 바로 구식으로 변하고 말았다. 마이크로소프트사에서도 사용하지 않을 것을 권고하고 있다.
|'''데이터 타입'''
|-
|g_
|네임스페이스의 글로벌 변수
|-
|m_
|클래스의 멤버 변수
|-
|s_
|클래스의 static 변수
|-
|c_
|함수의 static 변수
|}


==장점==
== 참고 문헌 ==
 
* https://myeonguni.tistory.com/1595 (명우니닷컴)
* 데이터 타입을 변수명에서 바로 추정할 수 있다.
* https://msdn.microsoft.com/en-us/library/aa260976(VS.60).aspx (MSDN)
* IDE가 없을 때 작업하는 경우 (특히 vi나 emacs로 터미널에서 작업할 때) 여러모로 유리해진다.
* 같은 의미를 가지는 서로 다른 타입의 변수가 있을 때 이름 충돌을 방지할 수 있다.
 
==단점==
 
* 코드를 단번에 파악하기 힘들어진다.
* 변수나 함수 인자의 이름을 기억하기가 힘들다.
* 데이터 타입이 바뀌면 변수 또는 함수 인자의 이름을 바꿔야 한다(리팩토링을 지원하는 IDE가 없으면 답이 없다)
* 같은 의미를 가지는 서로 다른 타입의 변수가 있을 때 이것들을 왜 선언했는지를 잊어버렸다면 답이 없다.
* C/C++일 경우 언어 명세에서 데이터 타입의 크기를 강제하지 않은 바람에 시스템 아키텍처에 따라 데이터 타입의 크기가 다르다는 문제가 있다.
 
==현재 추세==
 
*디스플레이 화면이 커지면서 한 눈에 볼 수 있는 코드의 양이 많아지고, IDE가 눈부시게 발전하면서 마우스 커서만 올리면 해당 변수의 데이터 타입이 다 뜨는 덕에 헝가리언 표기법은 바로 구식으로 변하고 말았다. 마이크로소프트사에서도 사용하지 않을 것을 권고하고 있다.
 
==참고 문헌==
 
*https://myeonguni.tistory.com/1595 (명우니닷컴) - 원본 내용 출처
*https://msdn.microsoft.com/en-us/library/aa260976(VS.60).aspx (MSDN)
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)