개발자들의 숙제_변수이름 잘 짓는 방법

좋은 이름 하나, 열 함수 안 부럽다.

 

변수나 함수 이름을 잘 짓는 것은 단순한 센스가 아니라 연습과 원칙에서 비롯됩니다.

 

타이핑보다 이해하기 쉬운 이름을 선택하자

타이핑이 편하다고 줄이면 안 됩니다. 결국 읽는 사람이 힘들어지기 때문입니다.

나쁜 예

int blkUsrCnt = 5;

 

좋은 예

int blockedUserCount = 5; // 차단된 사용자 수

 

blkUsrCnt 라고 적으면 짧아서 편하기는 합니다. 하지만 코드를 읽는 다른 사람(미래의 나 포함) 은 다시 해석해야 하는 비용이 발생합니다. 줄인다고 해서 큰 성능 차이는 없지만, 의도를 명확히 드러내는 것이 더 중요합니다.

스코프 범위에 따라 이름 길이를 조절하자

짧은 범위에서는 짧게, 넓은 범위에서는 명확하게 해주는 것이 좋습니다.

public void printUserNames(List<String> userNames) {
    for (int i = 0; i < userNames.size(); i++) { // 짧은 스코프 - OK
        System.out.println(userNames.get(i));
    }
}
public class UserService {
    private List<String> userNames; // 넓은 스코프 - 명확한 이름 사용
}

 

루프 안에서만 쓰는 변수는 i, j 처럼 짧게 사용해도 괜찮습니다. 하지만 클래스 멤버 변수처럼 여러 곳에서 참조되는 userNames 처럼 무슨 의미인지 명확히 드러나야 합니다.

정확한 역할을 설명하는 이름을 짓자

이 함수가 무슨 일을 하는지 이름만 봐도 알 수 있게 만들어야 합니다.

나쁜 예

public void handleUserData() {
    // 내부에서 get + update 둘 다 함
}

 

좋은 예

public void getUserData() {
    // 사용자 데이터 조회
}

public void updateUserData() {
    // 사용자 데이터 갱신
}

 

handle, do, manage 같은 모호한 단어는 피하는 것이 좋습니다. 대신 정확히 무엇을 하는 함수인지 이름에 담아야 합니다.

또한 함수는 하나의 책임만 갖는 것이 이상적입니다. 두 가지 일을 한다면 두 개의 함수로 나누는 것이 좋습니다.

이름으로 의도를 설명하자

구현이 아니라 의도를 읽을 수 있는 코드가 최고의 코드라는 말이 있듯이 개발자의 의도가 한 번에 나타나야 좋은 코드입니다.

String reversed = reverse(string); // 구현만 보면 reverseString을 한 것뿐

String highlighted = highlightText(string); // 의도를 이름으로 드러내자

 

두 함수가 같은 구현이라도, highlightText() 라고 이름을 지으면 "강조하는 용도구나!"라는 개발자의 의도가 드러납니다.

이처럼 함수나 변수 이름으로 목적을 설명하면 나중에 유지보수나 협업할 때 훨씬 직관적입니다.

주석보다 명확한 코드로 설명하자

주석을 사용하면 이 함수가 어떠한 기능을 하는지 이해할 수 있게 설명할 수 있습니다.

하지만 주석이 필요한 정도로 이해하기 어려운 코드는 처음부터 명확한 변수명이나 함수명으로 개선하는 것이 더 좋습니다.

나쁜 예

int flags = 0x10; // 로드 완료 플래그입니다.

 

좋은 예

public static final int LOADED_FLAG = 0x10;
int flags = LOADED_FLAG;

 

자바로 설명하자면 숫자 상수는 반드시 final 키워드와 함께 이름을 붙여 재사용합니다.

 

'CS' 카테고리의 다른 글

웹서버, 웹 애플리케이션 서버  (0) 2025.05.16
CI, CD, 파이프라인  (0) 2025.03.24
JAR , WAR 차이  (1) 2025.03.07
Maven, Gradle 이란  (0) 2025.02.26
Tomcat 이란  (3) 2025.01.03