본문 바로가기
IT/JAVA

Java 명명 규칙 (Naming Rule)

by 최고영회 2013. 12. 21.
728x90
반응형
SMALL

소프트웨어를 제작할 때는 협업과 유지보수를 위한 다양한 방법론을 활용하곤 한다. 이러한 방법론은 여러가지가 있겠지만, 여기서는 변수명 규약에 대해 설명한다. 한 프로젝트 내에서는 모두 동일한 규약아래에서 변수 이름을 짓도록 하여, 코드의 가독성을 높이는 등의 효율성을 가져오도록 하는 방법이다. 변수명 규약에는 가장 널리 사용되는 방법이 3가지가 있는데, 그것은 아래와 같다.

- 헝가리안 표기법

- 파스칼 케이싱(Pascal Casing)

- 카멜 케이싱(Camel Casing)

각 규약을 간략하게 소개하면 아래와 같다.

헝가리안 표기법

int자료형 + apple -> intApple

Microsoft의 헝가리인 개발자가 사용하던 변수명 규약이다.

변수의 자료형을 변수명의 접두어로 붙이는 방식이다. 예를 들어 int형의 ‘number’라는 변수를 선언하고자 할 때는, ‘intNumber’ 라고 정하는 식이다. 또 다른 예를 들자면 문자열인 ‘name’이라는 변수를 선언하고자 할 때는 ‘strName’과 같이 지정할 수 있다.

* 최근들어 IDE의 발달로 인해 변수에 커서만 가져다대도 해당 변수의 각종 정보를 툴팁형태로 보여주는 기능을 지원해주고 있다. 따라서 굳이 헝가리안 표기법을 사용하는 것이 프로젝트 진행의 효율성을 이끌어낼 수 있다고 보기는 어려울 것 같다.

Camel Casing

apple + tree -> appleTree

소문자를 기본으로 사용하되, 구분되는 단어를 대문자로 연결하는 방식이다. 그러나 첫 단어의 첫 글자는 소문자를 사용한다. 예를 들어 ‘appletree’라는 함수를 작성한다고 가정하면, 함수의 이름을 ‘appleTree()’라고 선언하는 방식이다.

Pascal Casing

apple + tree -> AppleTree

파스칼 케이싱또한 Camel Casing과 같이 소문자를 기본으로 사용하되, 구분되는 단어를 대문자로 연결하는 방식이다. 그러나 첫 글자도 대문자를 사용한다는 점이 Camel Casing과의 차이점이다. 예를 들어 ‘appletree’라는 클래스를 작성한다고 가정하면, 클래스의 이름을 ‘AppleTree’라고 선언하는 방식이다.

Widipedia에서는 Pascal Case를 CamelCase항목에서 함께 다루고 있다. 대부분이 CamelCase와 같으나, 첫 글자도 대문자로 시작한다는 차이점밖에 없기 때문이다. 

 Java에서의 명명 규칙

현재 .Net과 J2EE에서 각각 C#이나 Java로 소프트웨어를 개발할 때 사용하기를 권장하는 이름 규칙은 Camel Casing과 Pascal Casing 두 가지를 혼용하고, 여기에 별도의 규칙을 적용하여 사용하고 있다. 그 중 J2EE에서 제시하는 명명 규칙에 대해 간단히 소개해보겠다.

Java에서는 컴파일러 자체가 제한하는 규칙과 J2EE에서 권장하는 규칙이 있다.

· 컴파일러 자체가 제한하는 규칙은 아래와 같다.

- 대소문자가 구분되며, 길이에 제한이 없다.

- Tree’와 ‘tree’는 서로 다른 것으로 간주한다.

- 예약어를 사용해서는 안된다.

- ‘true’는 예약어 이기 때문에 사용할 수 없으나 ‘True’는 사용할 수 있다.

- 숫자로 시작해서는 안된다.

- ‘num10′은 가능하지만, ’10num’은 사용할 수 없다.

- 특수문자는 ‘_’와 ‘$’만 사용할 수 있다.

- ‘_tree’나 ‘$tree’는 사용할 수 있으나, ‘#tree’와 같은 이름은 사용할 수 없다.

· J2EE에서 권장하는 규칙은 아래와 같다.

- 클래스 이름의 첫 글자는 항상 대문자이어야 한다.

- 변수와 메서드의 이름 첫 글자는 소문자이어야 한다.

- 여러 단어로 이루어진 이름인 경우 각 단어의 첫 글자를 대문자로 한다.

- 상수의 이름은 모두 대문자로 한다. 또한 여러 단어로 이루어진 상수의 경우 각 단어를 ‘_’(언더바)로 구분한다.

위에서 설명한 바와 같이 각 언어 진영에서 제시하는 명명규칙이 있는가 하면, 회사마다 자신들만의 명명규칙을 정해 사용하기도 한다. 그러나 대부분이 Camel Case와 Pascal Case를 기본 뼈대로 하여 명명규칙을 정하게 된다. 이 규칙이 공식적 표준 규약은 아니지만, 프로그래밍 세계에서의 비공식적인 업계표준과 같은 역할을 하게 되어 어디에서도 이해하기 편리하기 때문이다.

728x90
반응형
LIST

'IT > JAVA' 카테고리의 다른 글

AES-256 암호화 시 주의 사항  (0) 2014.04.30
한글 변환 처리  (0) 2013.12.21
Fetch Call 최소화  (0) 2013.12.21
Java 성능 향상 팁  (0) 2013.12.21
properties file 한글 깨짐 현상 해결 방법  (0) 2013.12.21