프록시

Spring boot

스프링 핵심원리 13(완) [스프링 AOP 실전 주의 사항]

이번 글에선 스프링 AOP를 실제로 사용할 때, 주의해야할 사항들에 대해 살펴보자. 스프링 AOP를 프록시 방식의 AOP를 사용하기에 다음과 같은 문제점들이 있다. 1) 내부 호출시 실제 객체를 사용하여 프록시 적용이 안되는 문제 2)프록시 기술 자체의 한계 프록시와 내부 호출 - 문제 스프링은 프록시 방식의 AOP를 사용한다. 따라서 AOP를 적용하려면 항상 프록시를 통해서 대상 객체(Target)을 호출해야 한다. 이렇게 해야 프록시에서 먼저 어드바이스를 호출하고, 이후에 대상 객체를 호출한다. 만약 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않고, 어드바이스도 호출되지 않는다. AOP를 적용하면 스프링은 대상 객체 대신에 프록시를 스프링 빈으로 등록한다. 따라서 스프링은..

Spring boot

스프링 핵심원리 9 [스프링 AOP]

https://codenme.tistory.com/115 스프링 핵심원리-고급편 6 [@Aspect AOP] https://codenme.tistory.com/114 스프링 핵심원리-고급편 6 [빈 후처리기] https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 프록시: beanFactory] https://codenme.tistory.com/111 스프링 핵심원리-고 codenme.tistory.com 위의 글과 이어지는 내용입니다. AOP 소개 - 핵심 기능과 부가 기능 핵심 기능과 부가 기능 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다. 핵심 기능은 해당 객체가 제공하는 고유의 기능이다. 예를 들어서 OrderService 의 핵심 ..

Spring boot

스프링 핵심원리 8 [@Aspect AOP]

https://codenme.tistory.com/114 스프링 핵심원리-고급편 6 [빈 후처리기] https://codenme.tistory.com/113 스프링 핵심원리-고급편 5 [스프링에서의 프록시: beanFactory] https://codenme.tistory.com/111 스프링 핵심원리-고급편 4 [프록시 패턴과 데코레이터 패턴] https://codenme.tistory.com/108 codenme.tistory.com 위의 글과 이어지는 내용 입니다. 스프링 애플리케이션에 프록시를 적용하려면 포인트컷과 어드바이스로 구성되어 있는 어드바이저 ( Advisor )를 만들어서 스프링 빈으로 등록하면 된다. 그러면 나머지는 앞서 배운 자동 프록시 생성기가 모두 자동으로 처리해준다. 자동 프록..

Spring boot

스프링 핵심원리 5 [동적 프록시 기술]

https://codenme.tistory.com/111 스프링 핵심원리-고급편 4 [프록시 패턴과 데코레이터 패턴] https://codenme.tistory.com/108 스프링 핵심원리-고급편 3 [스프링 디자인 패턴] https://codenme.tistory.com/105 스프링 핵심원리-고급편 2 [쓰레드 로컬을 통한 동시성 문제해결] https://codenme.tistory.com/104 스프링 codenme.tistory.com 위의 글과 이어지는 내용입니다. 리플렉션 이전 글에서 프록시를 사용해서 기존 코드를 변경하지 않고, 로그 추적기라는 부가 기능을 적용할 수 있었다. 그런데 문제는 대상 클래스 수 만큼 로그 추적을 위한 프록시 클래스를 만들어야 한다는 점이다. 로그 추적을 위한 프..

Spring boot

스프링 핵심원리 4 [프록시 패턴과 데코레이터 패턴]

https://codenme.tistory.com/108 스프링 핵심원리-고급편 3 [스프링 디자인 패턴] https://codenme.tistory.com/105 스프링 핵심원리-고급편 2 [쓰레드 로컬을 통한 동시성 문제해결] https://codenme.tistory.com/104 스프링 핵심원리-고급편 1 [예제 생성 및 요구사항 이해] https://www.inflearn.com/cours codenme.tistory.com 위의 글과 이어지는 내용입니다. 실무에선, 다양한 상황에서 프록시를 적용해야하는 상황이 존재한다. 다양한 상황에서 프록시 사용법을 이해하기 위해 다음과 같은 기준으로 기본 예제 프로젝트를 만들어보자. 예제 프로젝트 만들기 예제는 크게 3가지 상황으로 만든다. v1 - 인터페..

Spring boot

[JPA] Part 3 프록시와 연관관계

*김영한님의 JPA 기본 강의를 기반으로 작성하였습니다. 프록시: 실제 엔티티가 아닌 가짜 클래스. 실제 클래스를 상속받아 만들어진다. 껍데기는 똑같지만, id, name 등 기본정보만 보유하고 있다. 프록시 객체는 실제 객체의 참조를 보관하고, 프록시 객체 호출 시 프록시 객체는 실제 객체의 메소드 호출. ex) 프록시에서 A 메소드를 호출 -> 실제 객체의 A메소드 호출 member를 조회하는 상황에서 꼭 Team도 불려야 할까? (즉시 로딩) 필요할 때 불러 쓰자( 지연 로딩 ) member 생성시점에서는 member만 select하고, team은 select 하지 않는다. member.getTeam() 등으로 team이 필요한 시점에 DB에 쿼리를 넣어서 가져온다. 이걸 프록시로 처리할 수있다. ..

코앤미
'프록시' 태그의 글 목록