카멜, 파스칼, 스네이크, 헝가리안, 케밥 표기법 정리

    프로그램 언어마다 개발하는 방식이 다 다르고, 변수명, 클래스명, 메소드명 등 표기법이 다르다는 것은 이해가 되지 않지만 분명 존재하며, 다양한 언어를 다루는 개발자들이 가장 힘들어 하는 부분 중 하나이다. 

     

    카멜(Camel) 표기법 (Camel case)

    카멜(camel)은 낙타라는 의미를 가지고 있다. 한마디로 표기법이 낙타의 혹처럼 생겼다고 해서 이런 명칭을 지었다. 카멜 표기법을 대표적으로 채택한 언어는 자바(Java)진영이며 만약 자바 언어를 개발하는데 다른 표기법을 쓰는 사람이 있어서 물어보면 십중팔구 주언어가 다른 언어인 사람인 경우가 많다.

     

    낙타(camel)

     

    int mathScore;
    
    public void getMathScore(int mathScore) {
    	return mathScore;
    }

     

    위 코드를 보면, 처음에는 소문자로 시작하며 2번째 단어부터는 첫글자가 대문자로 시작하는 것을 볼 수 있다. 참고로 조합하는 단어는 보통 명사를 사용해야 하나, 메소드에서 첫번째 시작하는 단어는 동사로 시작하는 것을 권장하고 있다. (select, get, put, search 등)

     

    파스칼 표기법 (Pascal case)

    파스칼 표기법은 자바 진영에서도 사용하지만, 이 표기 만큼은 파이썬 진영에서도 사용하는 방식이다. 카멜 표기법이 처음 글자를 소문자로 하는 것과 달리 처음단어도 대문자로 시작을 한다. 그래서 이 표기법을 쌍봉낙타(혹이 2개 달린) 표기법이라고도 불린다.

     

    자바에서 파스칼 방식의 클래스명

    public class CommonUtil {	
        ...
    }

    파이썬에서 파스칼 방식의 클래스명

    class Calculator:
    	def __init__(self):
        	...
    

     

    헝가리언 표기법 (Hungarian Notation)

    헝가리언 표기법은 C언어 진영에서 주로 사용했던(최근에는 지양하는 분위기로 알고 있음) 방식으로 변수명의 앞에 자료형을 붙이는 것이다. C언어는 그 어떤 언어보다 사용자가 정의(메모리를 할당/해제 한다던지)를 하는 스타일이기 때문에 자료형이 명확한 것이 매우 중요하다. 

     

    int iMath = 50;
    str strName = "홍길동";

    그러나 이 방식은 변수명의 자료형이 바뀌게 된다면 싹다 뜯어 고쳐야 된다는 문제가 있기 때문에 최근에는 카멜이나 스네이크와 같은 표기법으로 넘어가는 추세이다. 

     

    참고로 헝가리언 표기법인 이유는 이 표기법을 만든 사람이 마이크로소프트 개발자로 헝가리인이었기 때문에 붙여진 방식이다. MS는 그동안의 의리를 지키고 싶은 건지 Windows API 같은 것을 보면 헝가리언 표기법을 사용하는 것을 볼 수 있었다. 하지만 최근에는 헝가리언 표기법을 쓰지 말라고 .NET 프레임워크에는 명명 규칙에서 못을 박은 것을 보면 이제는 사망선고를 하는게 맞는 듯 하다.

     

     

    스네이크 표기법 (Snake case)

    땅바닥을 기어다니는 뱀의 모습을 따온 것으로 단어는 모두 소문자로 쓰되 단어간의 구분은 밑줄로 대체를 하는 방식이다. 최근 이 방식을 C, C++, Python, R 등에서 사용하고 있으며 Java쪽도 몇몇 부분(전역변수나 상수 등)은 다른 언어랑 구분하기 위해서 스네이크를 쓰기도 한다 다만 다른점은 대문자를 쓴다는 정도의 차이...

     

    math_score = 50
    user_name = '홍길동'
    
    def add_score:
    	...

     

    다만 C언어 진영과 파이썬 진영에서 약간 차이가 나는 점은 C/C++ 진영은 클래스 명칭도 스네이크 표기법을 사용하지만 파이썬 진영은 파이칼을 쓴다는 점에서 차이가 난다.

     

    케밥 표기법 (Kebab case)

    케밥에서 꼬치 모양을 딴 것으로 그냥 꼬치 표기법 정도로 이해하면 될 것 같다. 전반적으로 스네이크와 유사하며 다만 차이점은 언더바(_) 대신 하이픈(-)을 사용한다는 점이다.

     

    케밥,  우리는 그냥 꼬치

     

    하지만 많은 언어가 하이픈을 지원하지 않기 때문에 사용하는 예는 상당히 제한되어 있다. 주로 프로퍼티(properties)에 값을 설정한다던지, CSS에서 쓴다던지 혹은 HTML에서 일부 사용은 하고 있다.

     

    <style> 
    	h1 {font-size:15px;} 
        #idSelector {font-weight:bold;} 
        .classSelector {color:purple;font-size:11px;} 
    </style>

     

    댓글

    Designed by JB FACTORY