본문 바로가기
Programming/Java

[자바/Java] 시스템 속성(property)

by 코딩하는 랄로 2023. 10. 18.
728x90

시스템 속성

시스템 속성(property)는 JVM(Java Virtual Machine)이 동작할 때 자동으로 설정되는 시스템 값이다. 키(Key)와 값(Value)로 구성되어 있으며 운영체제에서 사용되는 파일 경로, 구분자, 운영 체제의 종류 및 자바 프로그램을 실행시킨 사용자 아이디, JVM 버전 등이 여기에 해당한다.

 

이런 시스템 속성은 애플리케이션에서 사용이 되는데, getProperty(key), setProperty(key, value)를 통해서 사용할 수 있다. 또한 setProperty의 경우 런타임에서 조작이 가능하기 때문에, 계정 정보와 같이 보안에 민감한 내용은 코드에 직접 작성되기 보다는 서비스나 운영체제 값은 런타임 환경의 시스템 '속성'에 저장할 수 있다.

 

이후, 코드에서는 getProperty를 통해 접근하여 사용하는 방식으로 동작한다. 추가적으로, 시스템의 속성은 다양한 정보를 가지고 있기 때문에 현재 경로 등을 하드 코딩할 필요없이 속성값에 접근하여 가지고 오면 되기 때문에, 저장 경로가 바뀌어도 코드를 수정 하지 않아도 된다.

 

 

시스템 속성 종류

System.getProperty(key)를 통해 가지고 올 수 있으며, 반환 타입은 문자열이다.

 

 

사용 예제

public class Main {
    public static void main(String[] args) {
        System.out.println("시스템 정보 확인");

        String username = "나의 아이디";
        String password = "qnfwnajr";

        Object[] arr = {
            System.getProperty("os.name"),
            System.getProperty("os.arch"),
            System.getProperty("os.version"),
            "",
            System.getProperty("java.home"),
            System.getProperty("java.version"),
            System.getenv("JAVA_HOME"),

            System.getProperty("db"),  // 없으면 null
            System.setProperty("db", "mydatabase"),
            System.getProperty("db"),

            System.getProperty("password"),

            System.getProperty("user.dir"),  // current working directoery (CWD)
            System.getProperty("user.home"),  // user home directory
            System.getProperty("file.separator"),

        };
        for(var e : arr) System.out.println(e);
		
    }
}
728x90