반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

Core 자동 구성 살펴보기 본문

토비의 스프링 부트 - 이해와 원리/섹션11 - 스프링 부트 자세히 살펴보기

Core 자동 구성 살펴보기

DOGvelopers 2025. 1. 4. 14:58
반응형

스프링 부트 코어 자동 구성 분석

스프링 부트의 코어 자동 구성은 다양한 애플리케이션의 기본 동작을 지원하며, 기본적으로 설정된 값과 조건에 따라 빈이 등록됩니다. 이번에는 스프링 부트 코어 모듈의 주요 자동 구성 항목을 살펴보겠습니다.


1. AOP Auto Configuration

  • 조건: spring.aop.auto 프로퍼티가 true이거나 설정되지 않았을 때(matchIfMissing=true).
  • 동작 원리:
    • AOP 관련 빈을 등록하여 스프링의 AOP 기능을 활성화합니다.
    • AspectJ 라이브러리가 없을 경우 클래스 기반의 프록시 방식으로 기본 설정.
  • 특징:
    • matchIfMissing으로 인해 기본적으로 활성화.
    • spring.aop.auto=false를 설정하여 비활성화 가능.
  • 빈 등록 결과:
    • AOP 관련 빈 팩토리 포스트 프로세서가 기본으로 등록됩니다.

2. 캐시 자동 구성

  • 조건:
    • 별도 설정 없이 간단한 캐시를 제공하기 위해 기본적으로 등록.
  • 구현:
    • 기본 캐시 구현체로 ConcurrentMapCacheManager 사용.
    • 고급 캐시 기능을 사용하려면 spring-boot-starter-cache를 추가하고, 캐시 전략을 선택해야 함.
  • 활용 방법:
    • 캐시 어노테이션을 활용하여 간단한 캐시 작업 구현.
    • 고급 캐시 옵션으로 전환하려면 스타터와 설정을 추가.

3. 라이프사이클 관련 자동 구성

  • 내용:
    • 스프링 컨테이너의 라이프사이클을 관리하는 빈 자동 등록.
    • 부트 사용자들은 주로 내부 동작으로 활용하며, 직접 사용 빈도가 낮음.
  • 예제:
    • Value 어노테이션으로 간단한 프로퍼티 치환.

4. Task Execution Auto Configuration

  • 목적:
    • 비동기 작업(@EnableAsync) 및 스케줄링(@EnableScheduling)에서 사용하는 TaskExecutor를 등록.
  • 등록된 빈:
    • ThreadPoolTaskExecutor:
      • 기본적으로 8개의 코어 스레드, 최대 크기, 큐 용량 등 설정 제공.
      • 외부 설정: spring.task.execution.pool.core-size, max-size 등.
    • ThreadPoolTaskExecutorBuilder:
      • 여러 TaskExecutor를 구성할 수 있도록 도와주는 빌더 제공.
  • 활용:
    • 기본 제공 값을 확인하고 필요에 따라 프로퍼티를 수정하여 성능 최적화.

5. SQL Initialization Auto Configuration

  • 의문점:
    • SQL 초기화를 위한 자동 구성이 포함되었지만, 이유는 불분명.
  • 역할:
    • 데이터베이스 초기화를 위한 설정 제공.
  • 활용:
    • 필요에 따라 관련 설정 추가로 초기화 전략 구현.

6. JMX 관련 자동 구성

  • 내용:
    • JMX(Java Management Extensions)를 활용하여 애플리케이션 상태를 모니터링하고 관리.
  • 활용:
    • 모니터링 도구와 연동하거나, 스프링 컨테이너를 제어하는 데 사용.
  • 비활성화 방법:
    • JMX 관련 자동 구성을 비활성화하려면 관련 프로퍼티 설정 필요.

7. 자동 구성 분석 방법

  • 자동 구성 확인:
    • ConditionEvaluationReport를 활용하여 조건과 결과를 확인.
  • 빈 커스터마이징:
    • 필요한 경우 외부 설정(application.properties)이나 직접 빈 정의로 기본 설정을 수정.

결론

스프링 부트 코어의 자동 구성은 기본 애플리케이션 동작을 지원하면서도 확장성과 유연성을 제공합니다. 이를 이해하고 필요에 따라 설정을 수정하면, 더 나은 애플리케이션 성능과 기능을 구현할 수 있습니다. 다음 단계로는 웹 모듈을 추가하고, 자동 구성 빈의 변화와 추가 설정을 살펴보겠습니다.

반응형
Comments