본문 바로가기

Developing/Java

JAVA Naming Convention

Java는 작명 규칙(Naming convention)을 갖고 있으며, 이는 JLS(Java Language Specification, http://docs.oracle.com/javase/specs/)에 포함되어 있다. 작명 규칙은 글자 규칙(Typographical)과 문법 규칙(Grammatical)로 나뉜다.


1. Typographical Naming Convention

- Pacakge : 컴포넌트 이름을 마침표로 구분하고 연결하여 계층적으로 구성한다. 소문자와 숫자로 구성되어야 한다. 보통 인터넷 도메인 이름을 거꾸로 뒤집어서 사용한다. 일반적으로 Package Name은 단일 단어로 구성해야 한다.

- Class/Interface : 첫째 단어는 영문 대문자로 한다. 공통적인 약어는 사용 가능하지만, 임의의 약어는 피한다. 고유명사라도 첫째 단어만 대문자로 하는 것이 좋다.

- Method/Field : 영문 소문자로 한다. 고유명사가 오더라도 첫째 글자는 소문자로 한다.

- Constant Field : static final 필드를 의미한다. 대문자로 만들며, 복합어의 경우 _로 구분한다.

- Local Variable : 소문자로 작성한다.

- Generic Type : 단일 문자로 구성하며 임의의 타입은 T(U,V), collection은 E, Map의 키와 값은 K와V, 예외는 X이다.


2. Grammatical Naming Convention

- Class : 단일 명사나 명사구로 작성

- Interface : 명사 형태지만, Runnable, Comparable 과 같이 형용사 형태를 사용할 수 있다.

- method : 동사를 사용하며 boolean의 리턴을 가질 경우, is 나 has로 시작한다. Bean 객체의 경우 set과 get를 사용해서 필드 접근자를 만든다.


위에서 언급한 것은 관례(Convention)이며 무조건 따를 필요는 없다. 하지만 가독성을 높이기 위해서는 따르는 것이 좋다.