본문 바로가기

Spring Framework16

오토 컨피규레이션(Auto-Configuration) 종류별 스프링 부트에서 오토 컨피규레이션(Auto-Configuration)은 개발자가 설정하지 않아도 애플리케이션에서 필요한 스프링 빈들을 자동으로 구성해주는 기능입니다. 이 기능은 Spring Boot Starter와 함께 개발자들이 설정해야 할 부분을 대폭 줄여주고, 빠르게 개발할 수 있도록 도와줍니다. 스프링 부트의 오토 컨피규레이션에는 여러 가지 종류가 있으며, 다양한 애플리케이션 요구사항을 만족시키기 위해 다양한 모듈들이 준비되어 있습니다. 주요한 오토 컨피규레이션의 종류는 다음과 같습니다:1. 웹 관련 오토 컨피규레이션WebMvcAutoConfiguration: 스프링 MVC(Web) 애플리케이션을 자동으로 설정합니다.뷰 리졸버(View Resolver)와 기본적인 핸들러 매핑을 설정하고, Disp.. 2024. 10. 24.
JIT (Just-In-Time) 컴파일러와 AOT (Ahead-Of-Time) 컴파일러 JIT (Just-In-Time) 컴파일러와 AOT (Ahead-Of-Time) 컴파일러는 Java 또는 다른 언어의 코드 실행과 성능 최적화 방법과 관련된 두 가지 컴파일 기술입니다. 이들은 각각 JVM(Java Virtual Machine)과 네이티브 코드 실행 방식에 중요한 역할을 하며, 성능, 메모리 사용, 빌드 시간 등에서 각기 다른 이점을 제공합니다.1. JIT (Just-In-Time) 컴파일러JIT 컴파일러는 프로그램 실행 중에 코드를 컴파일하는 기술입니다. JIT는 주로 JVM에서 사용되며, 프로그램이 런타임 시점에 코드의 일부 또는 전체를 네이티브 코드로 컴파일하여 실행 속도를 최적화합니다.주요 특징실행 중 컴파일: JIT는 코드가 처음 호출되었을 때는 바이트코드를 해석하며 실행하다가,.. 2024. 10. 24.
Enable MVC Configuration Enable MVC Configuration는 Spring 프레임워크에서 Spring MVC의 기본 설정을 커스터마이징하거나 완전히 제어하고자 할 때 사용하는 방법입니다. 일반적으로는 @EnableWebMvc 애너테이션을 통해 활성화합니다.1. @EnableWebMvc 애너테이션@EnableWebMvc는 Spring에서 MVC 구성을 활성화하고 Spring MVC 기본 설정을 가져오는 데 사용됩니다.이 애너테이션은 Spring MVC 애플리케이션에서 커스텀 설정을 할 수 있도록 해주며, Spring의 기본 MVC 설정을 오버라이드할 수 있는 기회를 제공합니다.사용법@EnableWebMvc는 Spring Web MVC 구성 요소를 활성화하며, WebMvcConfigurer를 구현하여 MVC 관련 설정을 확.. 2024. 10. 16.
리졸버(Resolver) 리졸버(Resolver)는 해석하고 결정하는 역할을 하는 객체입니다. 스프링 프레임워크에서 리졸버는 특정 요청이나 작업을 처리할 때 그 과정에서 발생하는 불확정 요소를 해결하고, 필요한 데이터를 제공하는 역할을 합니다.1. 리졸버(Resolver)란?스프링에서 리졸버는 주어진 조건이나 상황에 맞게 값을 결정하거나 적절한 객체를 반환하는 역할을 합니다. 예를 들어, HandlerMethodArgumentResolver는 컨트롤러 메서드에 주입할 파라미터 값을 결정하는 리졸버이고, ViewResolver는 컨트롤러가 반환하는 뷰 이름에 맞는 실제 뷰 객체를 찾아주는 역할을 합니다.즉, 리졸버는 상황에 맞게 무언가를 '결정하고 반환하는 메커니즘'이라고 이해할 수 있습니다.2. 리졸버의 일반적인 역할해석: 입력.. 2024. 10. 16.
디스패처 서블릿 동작과정 - 인터셉터 활용해서 알아보기 디스패처 서블릿(DispatcherServlet)이 어떻게 동작하는지 알아보려면, 인터셉터(Interceptor)를 활용하여 요청이 디스패처 서블릿을 통해 처리되는 과정을 추적할 수 있습니다. HandlerInterceptor는 스프링에서 제공하는 인터페이스로, 특정 요청이 디스패처 서블릿에 도달하기 전과 후의 과정을 가로채서 로깅하거나, 요청 흐름을 수정하는 등의 작업을 수행할 수 있습니다.이를 통해 디스패처 서블릿이 실행되기 전후의 로직 흐름을 모니터링하고 확인할 수 있습니다.1. HandlerInterceptor 인터페이스HandlerInterceptor는 세 가지 메서드를 제공합니다:preHandle(): 컨트롤러가 호출되기 전에 실행됩니다. 디스패처 서블릿이 요청을 컨트롤러로 전달하기 전에 이 .. 2024. 10. 16.
콘텐츠 협상(Content Negotiation) 콘텐츠 협상(Content Negotiation)은 클라이언트와 서버 간의 통신에서 클라이언트가 수용할 수 있는 콘텐츠 형식을 결정하는 메커니즘입니다. HTTP 프로토콜에서 이 과정은 주로 HTTP 헤더를 통해 이루어지며, 서버는 클라이언트가 요청한 형식에 맞춰 응답을 보내게 됩니다.콘텐츠 협상의 기본 개념:클라이언트 요청: 클라이언트(브라우저 또는 API 소비자)는 서버에 요청할 때, 원하는 콘텐츠 형식을 명시할 수 있습니다. 이를 위해 HTTP 요청에 Accept 헤더를 포함시킵니다.서버 응답: 서버는 Accept 헤더를 확인하고, 클라이언트가 요청한 형식에 맞춰 응답을 생성합니다. 만약 클라이언트가 요청한 형식이 지원되지 않으면, 서버는 기본 형식으로 응답하거나 406 Not Acceptable 상.. 2024. 10. 15.