본문 바로가기
시리즈/자바

[JAVA] 직관성있는 자바 네이밍 규칙

by 되고싶은노력가 2024. 10. 18.

개발을 하다 보면 가장 많이 고민하게 되는 부분 중 하나가 '이 이름, 괜찮을까?'라는 고민인것 같습니다. 이번에 우아한 프리코스 1주차를 시작하면서 제일 처음 고민한 부분이 이것이기도 한데 나름대로의 규칙을 지키면서 네이밍하였다 생각하지만 그건 자신만이 그렇게 느끼는 것일 수도 있고 다른 사람은 헷갈릴 수 있을만한 부분이다.

 

그렇기 때문에 프리코스 과제를 진행하기에 앞서 명확한 규칙을 가지고 가는게 중요하다고 생각했습니다. 결국 제 과제도 누군가 코드를 보고 평가할테고 네이밍을 보고 어떤 기능인지 보기 어렵다면 좋은 코드라 생각하지 않기에 이번에 확실하게 알고 가자라는 마음으로 이 글을 작성하게 되었습니다.

 

왜 직관적이고 명확한 네이밍 규칙을 지켜야 할까?

  • 유지보수의 어려움
    모호한 이름은 코드 수정 시 방해가 됩니다. a temp 같은 이름은 용도를 파악하기 어렵지만, totalPrice, isUserLoggedIn과 같은 이름은 직관적으로 이해할 수 있습니다.
  • 협업의 효율성 저하
    모호하거나 일관성 없는 네이밍은 다른 개발자가 코드를 이해하는 데 더 많은 시간을 소모하게 만듭니다. 특히, 동일한 역할을 하는 변수의 이름이 다르면 혼란을 초래할 수 있습니다.

 

네이밍 규칙을 어떻게 지킬까?

# 자바 변수명

  • 기본적인 변수명 규칙
    • 예약어를 사용해서는 안 된다.
    • 숫자로 시작하면 안 된다.
    • 특수문자는 _  $ 만 허용한다.
    • 첫 글자는 소문자로 시작하는 명사로 짓는다.
    • 여러 단어가 있다면 카멜표기법을 사용한다.(lowerCamelCase)
  • 의도가 명확한 변수명
    • 한글자로 된 변수명을 사용하지 않는다.
    • 약어를 사용하지 않고 모든 의미를 담는다.
    • boolean 네이밍은 is 를 붙인다.
      단, found 와 같이 이미 의도가 드러나는 변수에는 붙이지 않는게 좋다.
    • List, Collection 등의 자료형은 복수형으로 적는다.

# 자바 메서드명

  • 기본적인 메서드명 규칙
    • 카멜표기법을 사용한다.(lowerCamelCase)
    • 동사/전치사로 시작한다.
      이와 관련된 자료는 아래 참고자료를 참조한다.
  • 의도가 드러나는 메서드명
    • 왜 존재하는지, 무슨 작업을 하는지, 어떻게 사용하는지에 대한 의미를 담는다.
    • JUnit 테스트 메소드 이름에 언더스코어(_)가 표시되어 이름의 논리 컴포넌트를 구분한다.
      ex ) 메서드명_테스트상태_기대행위 (lowerCamelCase)

 

# 자바 클래스명

  • 기본적인 클래스명 규칙
    • 클래스명에는 파스칼을 사용한다. (PascalCase)
    • 특별한 접두사나 접미사를 넣지 않는다.

 


# 참고자료

명명 규칙

 

[Java] 명명 규칙

1. 반의어 반의어 설명 get / set 받다 / 받다 add / remove 추가 / 제거 create / destroy 창조 / 파괴 start / stop 시동 / 정지 insert / delete 삽입 / 삭제 increment / decrement 증가 / 감소 old / new 구 / 신 begin / end 시작

ozofweird.tistory.com

 

변수명 네이밍 규칙

 

좋은 코드를 위한 자바 변수명 네이밍

JAVA…

tecoble.techcourse.co.kr

 

메서드 네이밍 규칙

 

좋은 코드를 위한 자바 메서드 네이밍

tecoble.techcourse.co.kr