properties란 무엇인가?
SpringBoot에서 애플리케이션의 설정 파일이다. 애플리케이션의 동작을 변경하고 구성한다. 프로퍼티 파일은 주로 "application.properties" 또는 "application.yml"과 같은 이름으로 저장되며, 클래스패스 루트 또는 특정 위치에 배치할 수 있다. 데이터베이스 연결 설정, 포트 번호, 로깅 수준 등을 프로퍼티로 설정할 수 있다. 스프링부트는 이러한 프로퍼티 파일들을 자동으로 읽어와서 애플리케이션의 설정을 초기화한다.
두 파일의 선택에 있어서는 상황에 따라 고르면 된다.
-간단한 설정: "properties" 파일은 주로 간단한 키-값 형태의 설정을 다룰 때 사용된다. 설정이 크게 중첩되지 않고, 키-값 쌍으로 간단하게 표현할 수 있는 경우에 적합하다.
-프로퍼티 오버라이딩: "properties" 파일은 프로퍼티 오버라이딩을 지원하여, 환경별로 다른 설정을 쉽게 정의하고 관리할 수 있다. 예를 들어, 개발, 테스트, 프로덕션 환경에서 서로 다른 데이터베이스 연결 정보를 설정할 수 있다.
-Java Properties 파일과 호환성: "properties" 파일은 Java의 기본 Properties 파일 형식과 호환되어, 이미 사용 중인 설정 파일을 변환 없이 그대로 사용할 수 있다.
-복잡한 설정: "yaml" 파일은 계층적인 구조와 들여쓰기를 통해 복잡한 설정을 표현하기에 더 적합하다. 중첩된 맵이나 리스트, 객체와 같은 구조를 가지는 설정을 정의할 때 유용하다.
-가독성: YAML 형식은 사람이 읽고 쓰기 쉬우며, 들여쓰기를 사용하여 데이터 구조를 시각적으로 표현할 수 있다. 따라서 복잡한 설정을 가독성 있게 표현할 때 좋다.
-템플릿 기능: YAML 파일은 스프링 부트에서 프로퍼티 값을 템플릿화하여 동적으로 설정할 수 있는 기능을 지원한다. 이를 통해 동일한 구조의 여러 설정을 효율적으로 생성할 수 있다.
-환경별 설정: YAML 파일도 프로파일별로 서로 다른 설정을 쉽게 정의할 수 있게 한다. 다양한 환경에서 다른 설정을 유연하게 관리할 때 유용하다.
요약하면, 간단한 설정과 환경별 오버라이딩을 다룰 때는 "properties" 파일이 편리하며, 복잡한 계층 구조와 가독성을 중요시하는 복잡한 설정에는 "yaml" 파일이 더 적합합니다. 개인적인 선호도와 프로젝트의 요구 사항에 따라 적절한 파일 형식을 선택할 수 있습니다.