본문 바로가기

728x90

Programming/SpringBoot

DisplatcherServlet 동작 순서 Spring MVC에서 요청을 받아들이는 핵심 컴포넌트는 DispatcherServlet입니다. DispatcherServlet은클라이언트의 요청을 처리하기 위해 요청 URL을 적절한 컨트롤러로 매핑하고, 해당 컨트롤러의 실행 결과를 적절한 뷰로 변환하여 클라이언트에 반환하는 역할을 합니다. DispatcherServlet은 클라이언트의 요청을 받아서 다음과 같은 과정을 거쳐 처리하고 응답합니다. 클라이언트의 요청을 받아서 HttpServletRequest 객체를 생성합니다. HandlerMapping을 통해 클라이언트의 요청에 해당하는 컨트롤러를 찾습니다. 찾아진 컨트롤러의 메서드를 실행합니다. 이때, @RequestParam, @PathVariable 등을 통해 클라이언트가 전달한 파라미터를 가져옵니.. 더보기
[Spring] 빈과 컨테이너 Spring에서 빈(Bean)은 Spring IoC 컨테이너가 관리하는 객체를 의미합니다. 즉, Spring에서 개발자가 작성한 객체를 Bean으로 등록하면 Spring 컨테이너에서 이 객체를 생성하고, 보관 및 제거 등을 수행합니다. 이때 Bean으로 등록되는 객체는 Spring이 제어할 수 있는 범위 내에 있어야 하며, 주로 Spring이 제공하는 다양한 기능을 사용하기 위해 Bean으로 등록됩니다. Spring 컨테이너는 Bean을 생성하고 보관하며, 필요한 객체에 대해 의존성 주입을 수행합니다. 이렇게 컨테이너가 생성된 Bean을 필요로 하는 객체에게 주입하는 것을 DI(Dependency Injection)라고 합니다. DI를 통해 객체 간의 의존성을 최소화하고, 객체 간의 결합도를 낮춤으로써 .. 더보기
[Spring] AOP는 프록시 객체를 이용하여 구현하는 이유는? 프록시 객체란? 프록시 객체는 원본 객체를 대신해서 호출될 객체로, 원본 객체를 감싸서 클라이언트의 요청을 처리하는 중간 단계에 위치합니다. 프록시 객체는 원본 객체와 같은 인터페이스를 구현하고 있어서, 클라이언트는 프록시 객체를 호출하는 것으로 인해 원본 객체의 메소드를 호출하는 것과 같은 효과를 얻을 수 있습니다. 프록시 객체를 사용하는 이유는, 프록시 객체를 통해 원본 객체에 대한 접근을 제어하거나, 부가적인 기능을 제공하기 위해서입니다. 예를 들어, 보안을 위해 원본 객체의 메소드에 접근할 때 권한 검사를 수행하거나, 성능을 개선하기 위해 캐싱을 사용하는 등의 기능을 프록시 객체에서 추가할 수 있습니다. 이렇게 함으로써, 원본 객체의 코드를 변경하지 않고도 클라이언트의 요구사항에 맞추어 기능을 추.. 더보기
[Spring] AOP란? AOP(Aspect-Oriented Programming)은 객체 지향 프로그래밍에서 공통적으로 발생하는 부가 기능(로깅, 보안, 트랜잭션 관리 등)을 모듈화하는 프로그래밍 기법입니다. AOP는 프로그램의 모듈성, 유지 보수성, 재사용성 등을 높이기 위해 개발되었습니다. 기존의 객체 지향 프로그래밍에서는 공통적인 기능을 모든 객체에서 반복적으로 구현해야 했으나, AOP는 이러한 반복적인 작업을 해결하기 위해 공통 기능을 모듈화하여, 각각의 객체에 적용하는 방식으로 개발됩니다. AOP는 대표적으로 다음과 같은 용어를 사용합니다. Aspect : 공통적으로 수행되는 부가 기능입니다. 예를 들어, 로깅, 보안, 트랜잭션 관리 등이 Aspect의 예입니다. Join point : Aspect가 적용될 수 있는 .. 더보기
Spring 특징 요약 Spring은 Java 언어로 구현된 오픈 소스 프레임워크로서, 다음과 같은 특징을 가지고 있습니다. 경량 컨테이너: 스프링은 객체의 생명주기와 설정, 관리 등을 담당하는 컨테이너입니다. 이 컨테이너는 EJB와 같은 무겁고 복잡한 컨테이너와는 달리, 가볍고 간단한 구조를 가지고 있습니다. Inversion of Control(IoC): 객체 간의 의존성을 낮추기 위해, 객체가 직접 자신이 필요로 하는 의존 객체를 생성하지 않고, 외부에서 생성하여 주입하는 방식을 IoC라고 합니다. 의존성 주입(Dependency Injection, DI): 객체가 직접 의존하는 객체를 생성하지 않고, 외부에서 의존 객체를 주입하는 방식을 의존성 주입이라고 합니다. 스프링은 이를 지원하기 위해 다양한 방법을 제공합니다. .. 더보기
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor Spring Boot에서 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor는 Lombok 프로젝트에서 제공하는 애노테이션입니다. 이들 애노테이션은 자동으로 생성자를 생성하도록 지정하는 데 사용됩니다. @NoArgsConstructor: 파라미터가 없는 기본 생성자를 자동으로 생성합니다. 이 애노테이션을 사용하면, 생성자가 하나도 없는 클래스에 대해 자동으로 디폴트 생성자를 생성할 수 있습니다. @AllArgsConstructor: 모든 필드를 파라미터로 갖는 생성자를 자동으로 생성합니다. 이 애노테이션을 사용하면, 클래스의 모든 필드에 대한 생성자를 자동으로 생성할 수 있습니다. @RequiredArgsConstructor: final .. 더보기

728x90