스프링
-
스프링 환경에서 웹 애플리케이션 설정 메커니즘 정리스터디 노트 2023. 11. 1. 14:52
웹 애플리케이션의 설정 메커니즘에 대해 스터디해보도록 하겠습니다. 다음은 @EnableWebMvc와 DelegatingWebMvcConfiguration 클래스의 일부분입니다. // EnableWebMvc Annotation interface @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) @Documented @Import({DelegatingWebMvcConfiguration.class}) public @interface EnableWebMvc { } // DelegatingWebMvcConfiguration class public class DelegatingWebMvcConfiguration extends WebMvcConfigur..
-
Spring MVC Component의 동작구조(그림주의)스터디 노트 2023. 10. 23. 13:25
안녕하세요. 오늘은 웹 개발의 기본 중의 기본인 Spring MVC 컴포넌트의 동작 구조에 대해 간략하게 설명을 해볼까 합니다. 우선 스프링 프레임워크는 제공되는 컴포넌트들이 매우 긴밀하게 연관이 되어 있습니다. 이들 컴포넌트는 HandlerMapping, HandlerAdapter, ModelAndView, ViewResolver, DispatchServlet이 그것입니다. 다음은 해당 컴포넌트들의 동작 구조에 대한 설명입니다. 참고로 첨부된 그림은 제 손으로 그린 그림이다보니, 육안으로 구별이 많이 힘드실 수도 있습니다.. 1. 클라이언트에서 전송된 모든 HTTP 요청 메시지는 가장 먼저 DispatcherServelet이 받아 처리합니다. 2. DispatcherServlet은 요청 메시지의 요청 ..
-
@RequiredArgsConstructor 가 하는 일스터디 노트 2023. 10. 18. 16:55
Lombok 라이브러리는 정말 강력하지요. Lombok을 통해 우리는 반복적으로 작성하는 보일러코드들에게서 자유로워질 수 있었습니다. 최근에 Lombok의 @RequiredArgsConstructor에 대해 스터디 할 일이 생겼었습니다. 대체 얘는 왜 어떻게 코드를 이처럼 간편하게 만들어 줄 수 있는걸까요? 해당 애노테이션의 설명글을 참고해보면 이 애노테이션이 하는 일을 알 수 있습니다. 1. 필수 인수를 사용해 생성자를 생성합니다. 2. 여기서 말하는 필수 인수는 @NonNull과 같은 제약조건 또는 final field를 말합니다. 이처럼 해당 애노테이션을 사용하면 불필요하게 생성자를 만들어 줄 필요가 없으며, 이를 통해 Component들에선 보다 간편하게 주입방식을 구현할 수 있게 됩니다. @Re..
-
스프링 빈 스코프에 대하여스터디 노트 2023. 10. 18. 16:19
빈 스코프에 대하여 정리를 해보겠습니다. 일반적으로 Java에서 객체는 개발자가 new 키워드로 생성한 하나의 객체를 말하며, 이 객체에 유효한 레퍼런스가 없어지면 그 객체는 가비지 컬렉터에 의해 소멸되게 됩니다. 즉, 하나의 객체가 new를 통해 인스턴스가 생성되고 사용되고 레퍼런스가 없어저 GC에 의해 제거되기까지를 객체의 생명주기라고 말합니다. 그럼 스프링을 활용하면 객체 생명 주기는 어떻게 변할까요? 우선 스프링의 경우 ApplicationContext를 활용해 빈 객체를 생성하고 소멸시키게 됩니다. 이때 스프링에 의해 빈 객체를 생성하는 시점부터 객체 소멸의 시간까지를 그 객체의 생명주기, 즉 스프링의 빈 스코프라고 합니다. 스코프 설정에 따라 스프링 빈이 생성되는 시점과 소멸되는 시점이 결정되..