It's Ward

JAVA 프로그래밍 이름 짓기 규칙 2 본문

기타/모래사장 - 자잘한 정보들

JAVA 프로그래밍 이름 짓기 규칙 2

I'm ward 2022. 5. 26. 05:12
date: 2022-05-12 23:30:11 +0900 작성

1. 의도를 분명하게 밝혀야 한다.

코드에서 의도가 드러나지 않은 변수 / 클래스명은 사용자로 하여금 혼동을 줄 수 있고, 최악의 경우 그 변수가 무엇을 의미하는지 일일이 찾아다녀야 할 수도 있습니다.

이름은 의도가 분명하게 지어야 하고, 더 좋은 이름이 생각난다면 개선해야 할 수 있어야합니다.

//날짜( d1 처음시간, d2 중간시간, d3 마지막시간 )
int d1;
int d2;
int d3;


위 코드를 보면 당장은 주석이 있어 알아낼 수 있겠지만, 이름만으로는 어떠한 의미를 가지고 있지 않기때문에 다음과 같이 측정하려는 값 혹은 단위를 표현할 수 있는 이름이 필요합니다.

int firstDay;
int middleDay;
int lastDat;

의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워질 수 있습니다.

이름만 고쳐도 각 변수, 클래스, 함수 등이 하는 일을 명확히 이해할 수 있고 자연스럽게, 유지보수, 협업등에 유리하게 사용될 수 있습니다.

2. 그릇된 정보를 피하여야 합니다.

프로그래머에게 특수한 의미를 가지는 단어(```List<>```등)는 실제 자료형이 List가 아닌 이상 accountList와 같이 변수명을 선언하지 않아야 합니다. 차라리 accountGroup, bunchOfAccounts, accounts, 등 으로 변경해야 합니다.

또한, 중의적으로 해석될 수 있는 이름은 짓지 않아야 합니다. 직각삼각형의 빗변을 구할 때 hypotenuse를 hp로 줄이는 것이 훌륭한 약어로 보일지라도 hp라는 이름은 사용자에게 잘못된 정보를 가져올 수 있기때문에, 지양해야합니다.

3. 검색하기 쉬운 이름을 사용하여야 합니다.


코드에서 필요한 이름을 검색했을 때, 쉽게 찾을 수 있는 이름이어야 합니다. 숫자가 들어가거나, 알파벳 e를 검색한다면 너무 많이 검색될 것이기 때문에 검색하기 쉬운 이름을 사용하여야 합니다.

검색하기 쉬운 이름을 명명하기 위한 관점에서 긴 단어가 짧은 단어보다 좋습니다. 하지만 앞서 나왔던 이야기처럼 전통적으로 반복문, 현재 횟수를 의미하는 i, j, k 등과 같은 변수는 괜찮습니다.

코드의 길이가 조금 길어질 수 있다고 하더라도 검색할 때 유용할 수 있도록 상수 지정을 해두는 것이 좋습니다.

만약 DAY에 대한 값을 찾고 싶지만, 상수 5를 명시적으로 사용했을 때 검색한 경우 수 없이 많은 검색 결과가 나올 것이지만, 상수로 WORK_DAYS_PER_WEEK와 같이 명명한다면 금방 찾아낼 수 있기 때문에, 의미에 맞는 변수명을 짓는 것이 더 중요합니다.

4. 의미 있는 맥락을 추가하여야 합니다.

대부분의 이름은 스스로 의미가 불명확하기 때문에 다음과 같은 맥락을 부여하여 의미를 분명하게 만드는게 좋습니다.

예를 들어, firstName, lastName, street, houseNumber, city, state, zipcode 라는 변수가 있을 때, 변수를 훑어 본다면 주소라는 사실을 금방 알아낼 수 있습니다.

그런데 어떤 메소드에서는 단순하게 state 라는 변수만 사용한다면 이것이 주소의 일부라는 사실을 깨닫기 오랜 시간이 걸릴 수 있습니다.

그래서 addr이라는 접두어를 추가하여 addrFirstName, addrLastName, addrState와 같이 사용한다면 맥락이 좀 더 분명해질 수 있도록 합니다.

5. 마무리

더 많은 이름 짓기 규칙들이 있지만, 중요하다고 생각한 부분들을 정리하였습니다.

개발자라면 더 효율적으로 코드를 작성하는 것과, 협업의 중요함, 유지보수를 할 방법까지 시야를 넓게 봐야할 것 같습니다.

Comments