스프링 환경 추상화(Environment Abstraction)는 애플리케이션의 구성 설정을 다양한 환경(개발, 테스트, 운영 등)에 맞춰 쉽게 변경할 수 있도록 도와주는 스프링 프레임워크의 기능입니다. 이를 통해 애플리케이션 코드를 환경에 따라 변경하지 않고도, 다양한 환경 설정을 유연하게 관리할 수 있습니다.
핵심 구성 요소
1. Environment 인터페이스: 애플리케이션 환경의 구성 정보를 캡슐화하고, 프로파일과 프로퍼티에 접근할 수 있는 방법을 제공합니다.
2. PropertySource: 키-값 쌍의 소스를 추상화한 것으로, 환경 변수, JVM 시스템 프로퍼티, 애플리케이션 프로퍼티 파일 등 다양한 소스에서 구성 정보를 제공할 수 있습니다.
환경 추상화의 주요 기능
1. 프로파일(Profile): 애플리케이션의 실행 환경을 구분하기 위해 사용되며, 특정 프로파일이 활성화될 때만 빈(Bean)이 생성되거나 설정이 적용되도록 할 수 있습니다.
@Configuration
public class DevConfig {
@Bean
@Profile("dev")
public MyBean myBean() {
// 개발 환경에서 사용될 빈의 구성
return new MyBean();
}
}
2. 프로퍼티(Property): 애플리케이션의 구성 정보를 외부에서 정의할 수 있게 해주며, 커맨드 라인 인자, 환경 변수, 프로퍼티 파일 등 다양한 방법으로 값을 제공할 수 있습니다.
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=dbuser
spring.datasource.password=dbpass
환경 추상화의 장점
1. 유연성: 애플리케이션의 구성을 환경에 따라 쉽게 변경할 수 있어, 개발부터 운영까지 다양한 단계에서 유연한 설정 관리가 가능합니다.
2. 중앙 집중식 관리: 모든 환경 설정 정보를 중앙에서 관리할 수 있어, 설정의 일관성을 유지하고 관리의 편의성을 높일 수 있습니다.
'웹개발 > spring && springboot' 카테고리의 다른 글
스프링 JPA 쿼리 메소드의 기능 (0) | 2024.04.05 |
---|---|
스프링 WebFlux (0) | 2024.04.03 |
스프링 JPA QueryDSL (0) | 2024.04.03 |
[JPA]JPA를 활용 조회, 수정, 삭제 (0) | 2024.04.03 |
[Springboot]유효성 검사 에러 노출 (0) | 2024.04.03 |