프로퍼티(Properties)와 YAML 설정은 스프링 애플리케이션에서 구성 정보를 관리하기 위한 방법이다. 이러한 설정 파일들을 사용하면 애플리케이션의 동작을 변경하고 환경에 맞게 구성할 수 있다.
프로퍼티 파일은 일련의 key=value
형식의 구성 정보를 포함하는 텍스트 파일이다. 스프링에서는 주로. properties 확장자를 가진 파일을 사용한다.
주석은 #
기호로 시작하며, 프로퍼티에 대한 설명이나 비활성화된 구성 등을 기록할 수 있다.
프로퍼티 파일은 여러 가지 방법으로 읽을 수 있으며, @PropertySource
어노테이션을 사용하여 프로퍼티 파일을 명시적으로 로드할 수도 있다.
예시를 통해 프로퍼티 파일을 살펴보자
# application.properties 파일 내용 app.name=MyApp app.version=1.0.0 app.author=John Doe
위의 예시에서 app.name
, app.version
, app.author
는 프로퍼티의 키(key)이며, MyApp
, 1.0.0
, John Doe
는 해당 키에 대한 값(value)이다.
스프링 애플리케이션에서 프로퍼티를 사용하려면 @Value
어노테이션을 이용하거나 Environment
객체를 사용하여 값을 주입받을 수 있다.
예를 들어, app.name 프로퍼티를 주입받는 방법은 다음과 같다.
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
@Value("${app.name}")
private String appName;
// ...
}
YAML은 인간이 쉽게 읽고 쓸 수 있는 데이터 직렬화 양식으로, 스프링에서도 구성 파일로 사용할 수 있다. 설정 파일은 계층적인 구조를 가지며, 들여쓰기로 계층을 표현한다. 이는 들여쓰기에 의해 블록과 하위 항목이 식별된다.
또한 YAML은 배열, 맵, 스칼라 데이터 등을 지원하여 복잡한 구조의 설정을 표현하기에 용이하다. 그리고 YAML 설정은 .yml
또는 .yaml
확장자를 가진 파일로 저장된다.
스프링 부트는 YAML 설정을 기본적으로 지원하며, application.yml
파일에 애플리케이션의 설정을 작성할 수 있다.
예시를 통해서 YAML 설정을 살펴보자
# application.yml 파일 내용
app:
name: MyApp
version: 1.0.0
author: John Doe
app
은 최상위 레벨의 키(key)이며, name
, version
, author
는 하위 레벨의 키로 계층 구조를 형성한다. @ConfigurationProperties
어노테이션을 이용하여 값을 바인딩할 수 있다. 예를 들어, app.name 설정을 주입받는 방법은 다음과 같다.
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Getter
@Setter
@Component
@ConfigurationProperties(prefix = "app")
public class MyAppProperties {
private String name;
// 내용
}
위의 예시에서 @ConfigurationProperties(prefix = "app")
어노테이션은 app.name
설정 값을 name
필드에 바인딩한다.
프로퍼티 파일과 YAML 설정은 스프링 애플리케이션에서 구성 정보를 관리하기 위한 유연하고 강력한 방법이다. 이를 통해 애플리케이션의 동작을 변경하고 다양한 환경에 대응할 수 있다.