분류 전체보기 16

[Spring] 빈 후처리기(BeanPostProcessor)

이전 글에서는 프록시 팩토리의 장점과 한계점에 대해 알아보았습니다. [Spring] 프록시 팩토리(ProxyFactory) 이전 포스팅에서 다이내믹 프록시의 단점을 정리하며 마무리하였습니다. [Spring] 다이내믹 프록시(DynamicProxy) (프록시에 대한 이해가 부족하신 분들은 이전 포스팅을 참고하세요!!) [Spring] 프록시 yejun-the-developer.tistory.com 한계점을 다시 정리해보자면 다음과 같습니다. 프록시를 적용할 스프링 빈의 갯수만큼 프록시를 생성하여 빈으로 등록해주어야 한다. (설정 파일이 관리가 힘들다.) 컴포넌트 스캔으로 등록된 스프링 빈에는 적용할 수 없다. 이러한 문제들을 해결하기 위해 실무에서는 빈 후처리기(BeanPostProcessor)를 사용합니..

[Back-end]/[Spring] 2021.12.05

[Spring] 프록시 팩토리(ProxyFactory)

이전 포스팅에서 다이내믹 프록시의 단점을 정리하며 마무리하였습니다. [Spring] 다이내믹 프록시(DynamicProxy) (프록시에 대한 이해가 부족하신 분들은 이전 포스팅을 참고하세요!!) [Spring] 프록시와 디자인패턴 프록시와 디자인 패턴 스프링의 3대 기반기술 중 AOP를 공부하던 중 관심사 분리를 위한 다이 yejun-the-developer.tistory.com 이번 포스팅에서는 다이내믹 프록시의 단점을 보완할 수 있는 방법에 대해 알아보겠습니다. 다이내믹 프록시의 단점을 정리하면, 인터페이스의 유무에 따라, 다이내믹 프록시를 JDK 동적 프록시와 CGLIB로 각각 구현을 해야 합니다. 예를 들어, 메서드 호출마다 로그를 남기는 프록시를 생성하려면 로그를 남기는 똑같은 코드가 JDK 동..

카테고리 없음 2021.12.03

[Spring] 다이내믹 프록시(DynamicProxy)

(프록시에 대한 이해가 부족하신 분들은 이전 포스팅을 참고하세요!!) [Spring] 프록시와 디자인패턴 프록시와 디자인 패턴 스프링의 3대 기반기술 중 AOP를 공부하던 중 관심사 분리를 위한 다이내믹 프록시와 팩토리 빈이라는 개념의 등장에 당황했습니다. 평소 객체지향과 디자인 패턴을 공부 yejun-the-developer.tistory.com 프록시를 사용하여 기존코드를 수정하지 않고, 타깃의 기능을 추가하거나 접근을 제한할 수 있었습니다. 그러나 이런 프록시에도 아직 여러 단점이 존재합니다. 프록시가 멤버변수로 타깃 오브젝트를 가지고 있기 때문에 타깃오브젝트에 종속적입니다. 똑같은 기능을 수행하는 프록시라 하더라도, 여러 타깃에 적용하려면 타깃의 갯수만큼 프록시를 생성해야합니다. 이때 프록시는 똑..

[Back-end]/[Spring] 2021.11.30

[Spring] 프록시와 디자인패턴

프록시와 디자인 패턴 스프링의 3대 기반기술 중 AOP를 공부하던 중 관심사 분리를 위한 다이내믹 프록시와 팩토리 빈이라는 개념의 등장에 당황했습니다. 평소 객체지향과 디자인 패턴을 공부할 때 프록시라는 단어를 들어본 적은 있었지만 실제 동작 원리에 대해 이해가 부족해 포스팅을 하게 되었습니다. 프록시란? 프록시(Proxy)는 대리자 라는 뜻으로, 클라이언트가 사용하려고 하는 실제 대상인 것처럼 위장해서 클라이언트의 요청을 받아주는 역할을 합니다. 프록시는 실제 대상인 것처럼 위장함으로서 이를 사용하는 클라이언트는 구체 클래스를 알 필요가 없어집니다. 또한 프록시는 클라이언트의 요청을 받아서 원래 요청 대상에게 바로 넘겨주는 게 아닌, 다양한 부가기능을 지원할 수 있습니다. 여기서 원래 요청하려는 대상,..

[Back-end]/[Spring] 2021.11.30

[Spring] DispatcherServlet이란?

스프링 웹 MVC 프레임워크의 레퍼런스의 첫 문장은 다음과 같습니다. The Spring Web model-view-controller (MVC) framework is designed around a DispatcherServlet that dispatches requests to handlers, with configurable handler mappings, view resolution, locale and theme resolution as well as support for uploading files. 스프링 웹 MVC 프레임워크는 디스패처서블릿(DispatcherServlet)을 중심으로 설계되었다. [Spring] DispatcherServlet이란? 디스패처서블릿은 HTTP 요청들을 매핑..

[Back-end]/[Spring] 2021.09.18

[Spring Boot] @SpringBootApplication이란?

스프링부트 프로젝트를 생성하면 [projectName]Application.java에는 다음과 같이 '@SpringBootApplication'이 있는 걸 확인할 수 있습니다. 지금부터 @SpringBootApplication의 역할과 내부 구현에 대해서 알아보겠습니다. [Spring Boot] @SpringBootApplication이란? '/spring-boot-autoconfigure-2.5.4.jar/org/springframework/boot/autoconfigure/SpringBootApplication.java'에 해당 어노테이션이 다음과 같이 정의되어있습니다. 위 어노테이션의 구현을 보면 다음과 같이 3가지 어노테이션이 명시되어 있습니다. @SpringBootConfiguration @En..

[Back-end]/[Spring] 2021.09.14