[Spring] 프로젝트 설정 - properties / Yaml

지니·2023년 8월 19일
0

spring

목록 보기
1/13

스프링부트에서 설정파일을 작성하는 방식을 살펴보자

1. Properties, YAML


프로퍼티(Properties)와 YAML 설정은 스프링 애플리케이션에서 구성 정보를 관리하기 위한 방법이다. 이러한 설정 파일들을 사용하면 애플리케이션의 동작을 변경하고 환경에 맞게 구성할 수 있다.

1-1. 프로퍼티(Properties) 파일 설정

  • 프로퍼티 파일은 일련의 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;

    // ...
}
  • 위의 예시에서 @Value("${app.name}") 어노테이션은 app.name 프로퍼티의 값을 appName 변수에 주입한다.

1-2. YAML (YAML Ain't Markup Language) 설정

  • 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는 하위 레벨의 키로 계층 구조를 형성한다.
  • 스프링 애플리케이션에서 YAML 설정을 사용하려면 @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 설정은 스프링 애플리케이션에서 구성 정보를 관리하기 위한 유연하고 강력한 방법이다. 이를 통해 애플리케이션의 동작을 변경하고 다양한 환경에 대응할 수 있다.

profile
탐구하는 Backend 개발자

0개의 댓글

관련 채용 정보