본문 바로가기
웹개발/spring && springboot

스프링 환경 추상화(Environment Abstraction)

by 지구별 여행자 임탱 2024. 4. 3.
728x90

스프링 환경 추상화(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