Software Architect/지식
출처 :  http://entireboy.egloos.com/3807925 

대문자는 upper case.
소문자는 lower case.
그럼 "EffectiveJava"와 같이 공백이 없고, 각 단어의 구분은 대문자로 하는 것은 뭐라고 부를까??

제목에도 있지만 Camel Case라고 한다. 단어의 경계가 낙타 등처럼 뽈록하게 올라와서 그런듯.. 프로그래밍을 하다보면 Camel Case를 많이 쓴다. 물론 언어마다 밑줄('_')로 단어를 구분하는 경우(effective_java)도 있긴 하다.

간혹 이 Camel Case를 두 종류로 구분하는 경우가 있다. 첫글자도 대문자로 쓰는 경우(EffectiveJava)를 특별히 Pascal Case라고 하고, 첫글자는 소문자로 쓰는 경우(effectiveJava)를 Camel Case라고 한다. MSDN을 보다보니 이렇게 구분을 해서 쓰더라..


왜 갑자기 MSDN인고 하니.. 얼마전부터 갑자기 C#을 시작해야 했다. 단기간 속성으로 끝내버리려는데.. C#이라는 언어가 정말 백화점이라 모두 돌아다니기가 쉽지 않다. 최근에 기존 언어들의 장점들만을 모아 놓은 언어인지라, 기능이 너무 많고 다 익히고 기억하기도 쉽지 않다. 정말 백화점이 따로 없다.

새로운 언어를 배울 때는 최대한 그 언어의 변수나 클래스 등의 이름 쓰는 방법을 따라 주는 것이 유지보수에 도움이 된다. 그래서 책과 MSDN을 통해 열심히 뒤적였다. 그런데.. 의외로 이 C#이라는 녀석이 자바를 많이 닮았다. 그 중 이번엔 이름 짓는 방법만을 거론하겠다.

사실 나는 C#을 시작할 때 무서웠다. 나는 Hungarian notation을 모른다. 보고 읽을 수는 있지만, 내가 써야하는 경우가 발생하면 쓰지는 못 한다. 오랜기간 Hungarian notation을 모르고 지내다 보니 막막했는데.. 왠걸?? .NET 프레임웍은 이름 지을 때 Hungarian notation을 안 쓰네?? (.NET 프레임웍 개발자 가이드 이름 지침) 단지 자바와 조금 다르다면.. 모든 이름은 Pascal Case로 쓴다는 것. 단지 예외라면, private 멤버 필드와 메소드 전달인자만 Camel Case로 쓴다. 한 마디로 얘기하면, 클래스 외부에서 접근할 수 있는 모든 것은 Pascal Case이고, 그 내부에서만 사용하는 것은 Camel Case라고 할 수 있다.

public void RecordSale(string salesmanName, int quantity)
{
    ...
}

priavte 멤버 필드를 접근할 때는 메소드를 이용하거나 프로퍼티(Property)를 이용한다. 프로퍼티는 멤버 필드와 같은 이름을 사용하는데 다른 것은 Pacsl Case를 사용하느냐 Camel Case를 사용하느냐이다. 프로퍼티는 클래스 외부에서 보여지기 때문에 Pascal Case를 사용하고, private 멤버 필드는 Camel Case를 사용한다.

private string employeeName;
public string EmployeeName
{
    get
    {
        return employeeName;
    }
}

외부에서 보여지는 모든 변수, 메소드, 클래스, 열거형 등의 이름이 대문자로 시작하게 하는 나름의 약속을 만들어 놓은 것 같다. C#이나 .NET 프레임웍에서 이름 짓는 방법에 관해서는 책이나 MSDN 이름 지침을 참고하기 바란다.


0 0