brunch

You can make anything
by writing

C.S.Lewis

by 이승현 Aug 27. 2018

Effective Java - 프로그래밍 일반

#56 보편화된 작명 규칙을 따르자

Effective Java - 프로그래밍 일반


#56 보편화된 작명 규칙을 따르자


자바 플랫폼은 안정된 작명 규칙(naming convention)을 가지고 있습니다.

작명 규칙은 글자(typographical) 규칙과 문법(grammatical) 규칙 두 가지가 있습니다.




글자 규칙


1. 패키지 이름


컴포넌트 이름을 마침표(.)로 구분 및 연결하여 계층적인 형태로 만들어야 합니다.

그리고 영문 소문자와 숫자로만 구성되어야 합니다.


외부에서 사용될 패키지 이름은 그 조직의 인터넷 도메인 이름을 거꾸로 뒤집어서 이용합니다.

pooq.co.kr -> kr.co.pooq
daum.net -> net.daum
예외로 java나 javax로 시작하는 패키지는 자바 표준 라이브러리에서 이용하므로 이 규칙에서 제외됩니다.


패키지 이름의 나머지 부분은 하나 이상의 컴포넌트 이름으로 구성되어야 합니다.

보통 8자 이내로 짧고 의미 있는 약어면 좋습니다.

utilities -> util


컴포넌트의 규모가 큰 경우에는 이를 분류하여 계층화된 이름을 주면 좋습니다.

// 상위, 하위 패키지라 부르지만 실제로 패키지 계층을 지원하지는 않습니다.
javax.swing(상위 패키지) -> javax.swing.plaf.metal(하위 패키지)




2. 클래스와 인터페이스 이름


이름의 첫 째 글자는 영문 대문자로 합니다.

Timer
FutureTask


두문자어와 특정 공통 약어(max, min)는 사용하되 임의로 정한 약어를 되도록 피합니다.

HttpUrl
Max




3. 메서드


이름의 첫 째 글자는 영문 소문자로 합니다.

만약 첫 단어에 두문자어가 나오면 소문자로 합니다.

remove
ensureCapacity




4. 상수 필드


enum 상수와 상수 필드는 대문자와 밑줄 문자(_)만 이용합니다.

VALUES
NEGATIVE_INFINITY




5. 지역 변수 이름


이름의 첫 째 글자는 영문 소문자로 합니다.

지역 변수가 나타나는 상황과 밀접한 의미를 가지는 낱개 문자나 짧은 문자열로 구성된 약어를 이용할 수 있습니다.

i
xref
houseNumber




6. 타입 매개 변수


타입 매개 변수는 통상적으로 단일 문자로 구성하며, 대부분 다음 5개 중 하나입니다.

임의 타입 : T (순차는 T에 이어 U, V 또는 T1, T2, T3...로 할 수 있습니다.)

컬렉션의 요소 타입 : E

Map의 키와 값 : K, V

예외 : X




문법 규칙


1. 패키지 문법


패키지는 문법 작명 규칙이 없습니다.




2. 클래스와 인터페이스 문법


클래스는 일반적으로 단일 명사나 명사구로 구성합니다.

Timer
BufferedWriter
ChessPiece


인터페이스는 클래스 이름과 유사하거나 형용사인 "able"이나 "ible"을 끝에 붙입니다.

Collection
Comparator
Runnable
Iterable




3. 메서드


일반적으로 동사나 동사구로 이름 짓습니다.

append
drawImage


boolean 값을 반환하는 메서드의 이름은 대게 "is" 또는 "has"로 시작하며, 그다음에 명사, 명사구 또는 아무 단어나 구가 따라 나옵니다.

isDigit
isEnabled
hasSiblings


boolean이 아닌 함수나 속성을 반환하는 메서드의 이름은 명사, 명사구 또는 동사인 get으로 시작합니다.

size
hashCode
getTime


객체의 타입을 변환하는 메서드의 이름은 앞에 "to"를 붙입니다.

toString
toArray


인자로 받은 객체와 다른 타입의 뷰를 반환하는 메서드는 앞에 "as"를 붙입니다.

asList
asType




4. 필드


필드 이름의 문법 규칙은 덜 중요하고 다른 것에 비해 까다롭지 않습니다.

잘 설계된 API라면 외부에 제공되는 필드(public)가 거의 없기 때문입니다.




이전에 작성한 코드 컨벤션과 내용은 크게 다르지 않습니다.

기본 작명 규칙을 지켜야 다른 사람과 일 할 때 가독성도 좋고 편합니다.


https://brunch.co.kr/@oemilk/80

매거진의 이전글 Effective Java - 프로그래밍 일반
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari