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

개키우는개발자 : )

스타터와 Jetty 서버 구성 추가 본문

토비의 스프링 부트 - 이해와 원리/섹션8 - 조건부 자동 구성

스타터와 Jetty 서버 구성 추가

DOGvelopers 2024. 10. 9. 20:10
반응형

요약 및 핵심 개념

스프링 부트의 자동 구성(Auto Configuration)조건부 자동 구성에 대해 학습했습니다. 특히 톰캣과 제티 같은 서블릿 컨테이너의 자동 구성 조건 설정을 다루며, 여러 가지 서블릿 컨테이너 중 하나를 선택해 사용할 수 있도록 하는 방법을 설명했습니다.

핵심 내용

  1. 조건부 자동 구성의 개념:

    • 스프링 부트의 자동 구성은 애플리케이션이 필요로 하는 다양한 빈들을 자동으로 등록하지만, 조건부 자동 구성을 통해 특정 조건이 만족될 때만 구성 클래스를 로딩하고 빈을 등록.
    • 조건부 자동 구성의 필요성은 모든 기능을 사용하지 않는 애플리케이션에 불필요한 빈 등록을 방지하고, 불필요한 메모리 사용과 성능 저하를 예방하는 데 있음.
  2. 자동 구성 클래스의 예시:

    • 스프링 부트에는 144개의 기본 자동 구성 클래스가 포함되어 있으며, 각 클래스는 다양한 기술과 기능에 대한 인프라스트럭처 빈을 설정.
    • 예를 들어, 웹 애플리케이션을 위한 DispatcherServlet 설정이나 톰캣 서블릿 컨테이너 설정 등의 자동 구성 클래스가 존재.
  3. 서블릿 컨테이너 선택 및 설정:

    • 톰캣, 제티, 언더토우 등 다양한 서블릿 컨테이너를 스프링 부트에서 지원하며, 선택적으로 사용 가능.
    • 기본적으로 톰캣이 내장되어 있지만, 프로젝트 설정 파일(예: build.gradle)에서 의존성을 추가하여 제티나 언더토우로 변경 가능.
    • 조건부 자동 구성을 통해 특정 조건이 만족되면 제티나 톰캣을 선택하여 서블릿 컨테이너로 사용하도록 설정.
  4. 조건 설정 예시:

    • 여러 서블릿 컨테이너를 함께 등록할 경우, 스프링 부트는 어떤 서블릿 컨테이너를 선택해야 할지 모름. 이로 인해 빈 충돌 오류가 발생할 수 있음.
    • 이 문제를 해결하기 위해 조건부 로딩을 적용하여, 특정 조건이 만족될 때만 서블릿 컨테이너 빈이 로딩되도록 설정할 수 있음.

결론

스프링 부트의 자동 구성 메커니즘과 조건부 로딩의 개념을 이해하고, 톰캣, 제티 같은 서블릿 컨테이너를 자동으로 선택하는 방법에 대해 학습했습니다. 다음 강의에서는 보다 구체적으로 조건부 자동 구성의 적용 방법에 대해 다룰 예정입니다.

반응형
Comments