카테고리:

업데이트:

1. 들어가기

자바 플랫폼은 명명 규칙이 잘 정립되어 있고 자바 언어 명세에 기술되어 있습니다.

하지만 그럼에도 불구하고 어떤 규칙이 있는지 잘 모르는 경우가 많습니다.

그래서 이번에는 Java의 명명 규칙 중 철자 규칙과 문법 규칙에 대해 알아보겠습니다.

2. 패키지와 모듈

먼저, 패키지와 모듈은 각 요소를 점(.)으로 구분하여 계층적으로 짓습니다.

조직의 외부에서도 사용될 패키지라면 조직의 인터넷 도메인 이름을 역순으로 사용합니다.

edu.cmu, com.google

하지만 예외가 있는데 표준 라이브러리와 선택적 패키지들은 각각 java, javax로 시작합니다.

그리고 패키지 이름의 나머지는 해당 패키지를 설명하는 하나 이상의 요소로 이뤄지는데

각 요소는 일반적으로 8자 이하의 짧은 단어로 하거나 약어를 사용합니다.

utilitiesutil

만약, 여러 단어로 구성된 이름이라면 awt와 같이 각 단어의 첫 글자만 따서 사용합니다.

인터넷 도메인 이름 뒤에 요소 하나만 붙인 패키지들도 있지만,

많은 기능을 제공하는 경우엔 계층을 나눠 더 많은 요소로 구성해도 좋습니다.

java.util.concurrent.atomic

이러한 중심 패키지를 기준으로 아래에 위치하는 패키지를 하위 패키지라고 합니다.

3. 클래스와 인터페이스

  • 🅰️ 철자 규칙

    클래스와 인터페이스 이름은 하나 이상의 단어로 이뤄지며, 각 단어는 대문자로 시작됩니다.

    List, FutherTask

    하지만, awt와 같이 여러 단어의 첫 글자만 딴 약자거나

    max, min과 같이 널리 통용되는 줄임말이 아닌 경우엔 단어를 줄여쓰지 않습니다.

    약자의 경우, 첫 글자만 대문자로 할지, 전체를 대문자로 할지 논란이 있긴하나

    여러 약자가 혼합된 경우에 각 약자의 시작과 끝을 명확히 알 수 있는 첫 글자만 대문자로 하도록 합니다.

    HttpUrl vs HTTPURL


  • 📘 문법 규칙

    클래스의 경우 객체 생성 유무에 따라 문법 규칙이 다릅니다.

    객체를 생성할 수 있는 경우에는 단수 명사나 명사구를 사용하고

    Thread, PriorityQueue

    객체를 생성할 수 없는 경우에는 복수 명사를 사용합니다.

    Collectors, Collections

    그리고 인터페이스는 클래스와 동일하게 짓거나 able 혹은 ible로 끝나는 형용사로 짓습니다.

    Runnable, Iterable

4. 메서드와 필드

  • 🅰️ 철자 규칙

    메서드와 필드 이름은 첫 글자를 소문자로 쓴다는 점만 빼면 클래스, 인터페이스 명명 규칙과 같습니다.

    단, 상수 필드는 예외로 구성하는 단어는 모두 대문자로 사용하며 단어 사이는 밑줄로 구분합니다.

    VALUES, NEGATIVE_INFINITY

    메서드 철자 규칙은 추가로 알아야 할 점이 있는데

    객체를 다른 객체로 반환하는 경우에는 toType,

    toString, toArray

    객체의 내용을 다른 뷰로 보여주는 경우에는 asType,

    asList

    객체의 값을 기본 타입 값으로 반환하는 경우에는 typeValue,

    intValue

    정적 팩터리 메서드의 경우에는 from, of, valueOf, instance 등을 사용합니다.


  • 📘 문법 규칙

    어떤 동작을 수행하는 메서드의 이름은 동사나 동사구로 짓습니다.

    append, drawImage

    boolean 값을 반환하는 메서드라면 보통 ishas로 시작하는 명사나 명사구, 형용사로 짓습니다.

    isDigit, isProbablePrime, hasSiblings

    그리고 속성을 반환하는 경우에는 명사나 명사구 혹은 get으로 시작하는 동사구로 짓습니다.

    size, hashCode, getTime

    필드 문법 규칙으로는 두 가지의 경우가 있는데

    boolean 타입의 경우, boolean 접근 메서드 앞 단어를 뺀 형태이고

    initialized, composite

    그 외 타입의 경우, 명사나 명사구를 사용합니다.

    height, digits, bodyStyle

5. 지역변수

지역변수는 다른 멤버와 비슷한 명명 규칙이 적용됩니다.

단, 약어를 사용해도 되는데 약어를 써도 변수가 사용되는 문맥에서 쉽게 유추할 수 있기 때문입니다.

i, denom, houseNum

6. 타입 매개변수

타입 매개변수 이름은 보통 한 문자로 표현합니다.

  • 임의의 타입: T

  • 컬렉션 원소 타입: E

  • 맵의 키와 값: K, V

  • 예외: X

  • 메서드 반환 타입: R

  • 그 외: T, U, V, T1, T2, T3 등

7. 정리

이번 포스트는 Java의 명명 규칙의 중 철자 규칙과 문법 규칙에 대해 알아보았습니다.

표준 명명 규칙을 잘 사용하면 가독성이 좋아지고 유지보수가 쉬워지는 장점이 있습니다.

그러므로 위의 명명 규칙을 잘 체화하여 자연스럽게 배어나오도록 합시다.

            
              📕 개인 기록용 블로그입니다.
              😊 오타나 잘못된 정보가 있을 경우 댓글이나 메일로 말씀해주시면 바로 수정하겠습니다! 😊
          

댓글남기기