네이밍 컨벤션

노현남·2023년 7월 18일
0

Java

목록 보기
3/11

명명 규칙

함수, 변수 또는 클래스의 이름을 지정할 때는 모두 동일한 원칙이 적용된다.

이름을 지을 때의 핵심 아이디어는 가능한 많은 정보를 전달하는 것이다. 코드에 넣는 작은 주석이라고 생각하면 될 것 같다.

식별자 규칙(문법적인 규칙)

  1. 숫자로 시작할 수 없다.
  2. 문자 사이에 공백을 둘 수 없다.
  3. 특수 문자는 사용할 수 없다.

관례

  1. 카멜 표기법 사용
  2. 함수와 변수의 명명 규칙
  3. 의미있는 단어 선택 (맥락을 제공하라)

1. 카멜 표기법(camel case) 사용

카멜 표기법(Camel case) 또는 낙타 표기법은 프로그래밍에서 파일, 변수, 함수 등 대상의 이름을 띄어쓰기 없이 짓기 위하여 따르는 관례인 네이밍컨벤션(Naming convention)의 하나다.

단어 전체적으로 소문자를 사용하지만, 맨 첫 글자를 제외한 각 합성어의 첫 글자만 대문자로 표기한다. 합성한 단어의 모양이 쌍봉낙타의 등과 비슷하다는 뜻에서 이름붙었다. (출처 : 위키피디아)

카멜 표기법 예시

변수명 (카멜 케이스):

firstName
ageOfUser
totalAmount
numberOfStudents

함수명 (카멜 케이스):

getUserInfo()
calculateTotal()
setStudentGrade()
printHelloWorld()

2. 함수와 변수의 명명 규칙.

함수 명명 규칙

함수는 어떤 동작을 수행하는 블록이기 때문에, 함수명은 해당 동작을 나타내는 동사로 시작하는 것이 좋다.함수명을 동사로 시작함으로써 함수가 어떤 작업을 수행하는지 명확하게 드러나기 때문.

함수 작명 좋은 예시:

calculateTotal(): 합계를 계산하는 함수
getUserInfo(): 사용자 정보를 가져오는 함수
sendEmail(): 이메일을 보내는 함수

함수 작명 나쁜 예시:

total(): 어떤 합계를 계산하는지 명확하지 않음
info(): 어떤 정보를 가져오는지 명확하지 않음
doSomething(): 무엇을 하는지 명확하지 않음

변수 명명 규칙

변수는 데이터를 저장하는 그릇이기 때문에, 변수명은 해당 데이터를 가장 잘 표현하는 명사로 시작하는 것이 좋다.

변수명을 명사로 시작함으로써 해당 변수가 어떤 데이터를 담고 있는지 명확하게 드러남.

변수 작명 좋은 예시:

userName: 사용자 이름을 저장하는 변수
totalCount: 총 개수를 저장하는 변수
studentList: 학생들의 목록을 저장하는 변수

변수 작명 나쁜 예시:

getUserName: 변수인데 함수처럼 보이는 혼란스러운 이름
countTotal: 변수인데 함수처럼 보이는 혼란스러운 이름
listOfStudents: 변수인데 함수처럼 보이는 혼란스러운 이름

3. 의미 있는 단어 선택하기

프로그래밍에서 이름을 지정할 때는 항상 매우 구체적인 정보를 전달하는 단어를 선택해야 한다.

변수라면 어떠한 값을 담고 있는 지, 함수라면 어떠한 동작을 하는 지가 각각의 이름에서 직관적으로 드러나야 한다.

가령 예를 들어 잔돈을 반환하는 함수가 있다고 생각을 해보자.

예시

public static void return() {
	. . . // 잔돈을 반환하는 코드
}

함수의 이름으로 선언된 return은 함수에 대해 많은 정보를 제공하지 않아 아쉽다.

또한 return 이라는 이름은 함수의 기능을 설명하기 적절하지만, 단어가 흔하게 사용되기 때문에, 단독으로 사용하게 된다면 다른 함수들과 혼동될 수 있다는 우려 또한 존재한다.

수정된 예시

public static void returnChanges() {
	. . . // 잔돈을 반환하는 코드
}

위 수정된 예시와 같이 우리가 얻고자 하는 정보가 무엇인지를 정확하게 안다면 이를 해결할 수 있다.

함수의 기능이 잔돈을 반환하기 때문에 우리는 changes(거스름 돈) 단어를 사용하여 함수의 대략적인 기능을 식별할 수 있게 했다.

수정된 예시2

public static void returnChangesFromAPI() {
	. . . // 잔돈을 반환하는 코드
}

또한 어디에서 이 데이터를 가져오고 있는 지에 대한 내용을 추가해줄 수 있다

profile
겸손하게 독학하기

2개의 댓글

comment-user-thumbnail
2023년 7월 18일

정말 좋은 정보 감사합니다!

1개의 답글