본문 바로가기
JAVA

[JAVA] static final 변수를 사용하는 이유

by 집돌이디벨로퍼 2025. 2. 7.

static final int MAX_USERS 라는 변수를 예를 들어본다

package final1;

public class ConstantMain {
    public static void main(String[] args) {
        System.out.println("프로그램 최대 참여자 수"+ 1000);
        int currentUserCount = 999;
        process(currentUserCount++);
        process(currentUserCount++);
        process(currentUserCount++);
    }

    private static void process(int currentUserCount){
        System.out.println("참여자 수:"+currentUserCount);
        if(currentUserCount>1000){
            System.out.println("대기자로 등록합니다.");
        }else{
            System.out.println("게임에 참여합니다.");
        }
    }
}

 

이런 프로그램을 돌리는데 static final 변수를 사용하지 않고 그저 1000만 사용한다고 했을때 다음 유지보수가 빡세진다 왜냐면 그 다음 개발자는 1000이 무슨 의미인지 알수가 없을 것이고 그리고 의미를 이해한다 하여도 1000에서 2000으로 바꾸는 상황에는 1000으로 입력된 모든 코드를 2000으로 직접 수정해야하기 때문이다 이때문에

 

static final int MAX_USERS = 2000;

 위코드를 을 사용하게되면

package final1;

public class Constant {
    public static final int MAX_USERS = 2000;
}
package final1;

public class ConstantMain {
    public static void main(String[] args) {
        System.out.println("프로그램 최대 참여자 수"+ Constant.MAX_USERS);
        int currentUserCount = 999;
        process(currentUserCount++);
        process(currentUserCount++);
        process(currentUserCount++);
    }

    private static void process(int currentUserCount){
        System.out.println("참여자 수:"+currentUserCount);
        if(currentUserCount>Constant.MAX_USERS){ // 코드 가독성 확보
            System.out.println("대기자로 등록합니다.");
        }else{
            System.out.println("게임에 참여합니다.");
        }
    }
}

프로그램 최대 참여자 수2000
참여자 수:999
게임에 참여합니다.
참여자 수:1000
게임에 참여합니다.
참여자 수:1001
게임에 참여합니다.

 


이렇게 바뀌게 되어 유지보수와 코드가독성 확보가 가능하게 된다 따라서 공용 변수를 필수로 사용하는 것이 좋아보인다

 

==> 상수 중앙 관리의 중요성