AOP
-
작년 이맘때쯤에 스프링을 처음 배우면서 AOP를 사용해 봤던 기억이 났습니다. 경북대 BE_도기헌 6주차 과제(3단계) by Dockerel · Pull Request #335 · kakao-tech-campus-2nd-step2/spring-gift-point안녕하세요! 이번 3단계 과제는 포인트 추가하기였습니다. 과제 요구 조건에 따라 관리자 페이지에서 포인트 충전 기능 및 주문 시 포인트 사용 기능 추가하였습니다. 이때 admin만 포인트 충전을github.com이게 맞나 싶은 AOP 사용 사실 뭐 틀린게 어딨겠냐 싶긴 한데 뭔가... 뭔가네요. 가독성도 별로고 ProductService와 강한 결합도를 가지고 있어 나중에 유지보수하기도 힘들어질 것 같습니다. 하여튼 이번에 AOP를 사용하게 된..
커스텀 어노테이션과 AOP 사용해서 공통기능 처리하기작년 이맘때쯤에 스프링을 처음 배우면서 AOP를 사용해 봤던 기억이 났습니다. 경북대 BE_도기헌 6주차 과제(3단계) by Dockerel · Pull Request #335 · kakao-tech-campus-2nd-step2/spring-gift-point안녕하세요! 이번 3단계 과제는 포인트 추가하기였습니다. 과제 요구 조건에 따라 관리자 페이지에서 포인트 충전 기능 및 주문 시 포인트 사용 기능 추가하였습니다. 이때 admin만 포인트 충전을github.com이게 맞나 싶은 AOP 사용 사실 뭐 틀린게 어딨겠냐 싶긴 한데 뭔가... 뭔가네요. 가독성도 별로고 ProductService와 강한 결합도를 가지고 있어 나중에 유지보수하기도 힘들어질 것 같습니다. 하여튼 이번에 AOP를 사용하게 된..
2025.06.30 -
일단 결론부터 말하자면 트랜잭션이 동작하지 않는다. @Transaction 과 같은 어노테이션들은 모두 런타임에 동작하는 Spring AOP를 기반으로 동작하는데 Spring AOP에서는 어노테이션이 붙어있는 타겟 클래스의 프록시를 만들어 해당 타겟 클래스의 메서드 수행 전후에 일련의 처리를 한다. 이때 타겟 클래스의 타입에 따라 인터페이스 기반의 프록시 생성 시 JDK Dynamic Proxy, 그 외에는 CGLIB을 사용한다고 한다. 우선 Spring이 빈 생성시 해당 빈에 AOP 어노테이션이 있는지 확인하고 만약 있다면 프록시 객체를 생성하여 빈을 대체한다. 이때 위에서 말한 JDK Dynamic Proxy의 경우 인터페이스의 public 메서드, CGLIB의 경우 private를 제외한 pub..
[매일메일] private 메서드에 @Transactional 선언하면 트랜잭션이 동작할까?일단 결론부터 말하자면 트랜잭션이 동작하지 않는다. @Transaction 과 같은 어노테이션들은 모두 런타임에 동작하는 Spring AOP를 기반으로 동작하는데 Spring AOP에서는 어노테이션이 붙어있는 타겟 클래스의 프록시를 만들어 해당 타겟 클래스의 메서드 수행 전후에 일련의 처리를 한다. 이때 타겟 클래스의 타입에 따라 인터페이스 기반의 프록시 생성 시 JDK Dynamic Proxy, 그 외에는 CGLIB을 사용한다고 한다. 우선 Spring이 빈 생성시 해당 빈에 AOP 어노테이션이 있는지 확인하고 만약 있다면 프록시 객체를 생성하여 빈을 대체한다. 이때 위에서 말한 JDK Dynamic Proxy의 경우 인터페이스의 public 메서드, CGLIB의 경우 private를 제외한 pub..
2025.02.07