경일게임아카데미 멀티 디바이스 메타버스 플랫폼 개발자 양성과정 정리 2. 변수명 표기법

Jinho Lee·2022년 4월 20일

2. 변수명 표기법

코드를 작성할 때, 특히 변수명을 정할 때 프로그래머라면 제각각 편한 방법이 따로 있기 마련이다. 하지만 팀 프로젝트 등의 협업을 진행할 때, 자신만 이해할 수 있는 이름으로 정하게 된다면 변수를 이해하지 못하거나 오해하는 등의 문제가 발생하기 쉽다. 그렇기에 협업의 효율을 위해 변수의 이름을 정하는 규칙, 즉 변수명 표기법을 정할 필요가 있다. 지금부터 그러한 변수명 표기법 중 널리 쓰이는(쓰이던) 대표적인 5가지를 간략히 소개하고자 한다.

헝가리안 표기법 (Hungarian Notation)

소개

변수명의 앞에 데이터 타입을 명시하는 접두사(약자)를 붙여 표기하는 방법이다.
Charles_Simonyi

마이크로소프트(Microsoft)의 찰스 시모니(Charles Simonyi)가 개발 책임자로 있을 때 제안했으며, 제안자인 찰스 시모니가 헝가리인이기에 헝가리안이라는 명칭이 붙었다. 다음과 같은 규칙표에 따라 접두사를 붙인다.
Hungarian_Table

예시

string strName;
char chInitial;
int nCount;
int iProcess;

장점

  • 데이터 타입을 변수명에서 바로 추정할 수 있다.
  • IDE(통합개발환경) 없이 작업하는 경우 (특히 vi나 emacs로 터미널에서 작업할 때) 여러모로 유리해진다.
  • 같은 의미를 가지는 서로 다른 타입의 변수가 있을 때 이름 충돌을 방지할 수 있다.

단점

  • 코드를 단번에 파악하기 힘들어지고, 변수나 함수 인자의 이름을 기억하기가 힘들다.
  • 데이터 타입이 바뀌면 변수 또는 함수 인자의 이름을 모두 바꿔야 한다.
  • 같은 의미를 가지는 서로 다른 타입의 변수가 있을 때 선언한 이유를 잊어버렸을 경우, 코드를 이해하기가 어려워진다.
  • C/C++일 경우 언어 명세에서 데이터 타입의 크기를 강제하지 않은 바람에 시스템 아키텍처에 따라 데이터 타입의 크기가 달라진다.

    시간이 흘러 디스플레이 화면이 커지면서 한 눈에 볼 수 있는 코드의 양이 많아지고, IDE(통합개발환경)이 발전하며 마우스 커서만 변수명 위에 올리면 해당 변수의 데이터 타입을 바로 알 수 있게 되어, 헝가리안 표기법만의 강점이 매우 약해졌다.
    이러한 이유로 현재는 마이크로소프트사에서도 더 이상 사용하지 않을 것을 권고한다고 한다.
    Reason_Hungarian

카멜 표기법 (Camel Case)

단어의 첫 문자를 대문자로 표기하고 붙여 쓰되, 가장 처음 문자소문자로 표기한다.
띄어쓰기 대신 대문자로 단어를 구분하는 방식이다.
이렇게 표기한 모습이 낙타의 등과 같다고 하여 카멜 표기법이라고 부른다. 후에 나올 파스칼 표기법과 비교하여 lowerCamelCase라고도 한다.

Camel_Case

예시

string studentName;
char backgroundColorInitial;
int peopleCount;

파스칼 표기법 (Pascal Case)

모든 단어의 첫 문자를 대문자로 시작하는 표기법이다.
카멜 표기법과 같이, 대문자로 단어를 구분하는 방식이다.
앞의 카멜 표기법과 비교하여 UpperCamelCase라고도 하며, 봉이 둘이기 때문에 쌍봉낙타 표기법이라고도 한다.

예시

string StudentName;
char BackgroundColorInitial;
int PeopleCount;

스네이크 표기법 (Snake Case)

단어 사이에 언더바_를 넣어 단어를 구분하는 표기 방식이다.

예시

string student_name;
char background_color_initial;
int people_count;

케밥 표기법 (Kebab Case)

단어 사이에 하이푼-을 넣어 단어를 구분하는 표기 방식이다.

예시

string student-name;
char background-color-initial;
int people-count;

출처

https://lcw126.tistory.com/260
https://master-hun.tistory.com/31
https://ko.wikipedia.org/wiki/%EC%B0%B0%EC%8A%A4_%EC%8B%9C%EB%AA%A8%EB%8B%88
https://itwiki.kr/w/%ED%97%9D%EA%B0%80%EB%A6%AC%EC%95%88_%ED%91%9C%EA%B8%B0%EB%B2%95
https://myeonguni.tistory.com/1595
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://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-6.0/aa260976(v=vs.60)?redirectedfrom=MSDN

0개의 댓글