[스프링 부트] windows & linux에서 파일 절대 경로 맞추기
스프링(Spring)

[스프링 부트] windows & linux에서 파일 절대 경로 맞추기

반응형

로컬 pc로 스프링 부트 프로젝트를 작업하다가, aws ec2로 배포하게 되면 운영중인 rds나 데이터베이스에 대한 세부정보를 외부로부터 숨겨야한다. (비밀번호 등등)

다양한 방법이 있겠지만, 나는 내 로컬 pc와 linux의 절대 경로를 활용했다.

나는 rds와 mariadb 정보가 담겨있는 yml 파일을 따로 로컬과 linux app 폴더에 저장한 뒤, 스프링 부트의 application.java에서 조건문으로 나눠줬다.

자바에서는 'os.name'에 대한 프로퍼티를 시스템에서 얻으면 내가 어떤 운영체제를 활용하고 있는지 값을 받아올 수 있다.

String os = System.getProperty("os.name").toLowerCase();

만약 로컬(윈도우)라면 os에는 "win"이 저장된다.

나는 윈도우와 리눅스 두가지 경우에만 적용하면 됐기에, 둘로만 조건문을 나누어주었다.

public static void main(String arg[]){
        String os = System.getProperty("os.name").toLowerCase();

        if (os.contains("win")) {
            new SpringApplicationBuilder(Application.class)
                    .properties(
                            "spring.config.location=" +
                                    "C:\\Users\\gyuse\\Desktop\\application-dev.yml"
                    )
                    .run(arg);
        }
        
        else {
            new SpringApplicationBuilder(Application.class)
                    .properties(
                            "spring.config.location=" +
                                    "\\home\\ec2-user\\app\\application-dev.yml"
                    )
                    .run(arg);
        }
}

이를 통해 git에는 올라가게 하지 않을 민감한 정보들을 로컬파일로 빼내서 관리할 수 있었다.

반응형