프록시
-
private 메서드는 트랜잭션 처리를 할 수 없는 이유스터디/Spring 2023. 7. 26. 16:58
의문 private 메서드는 @Transactional을 적용할 수 없다. 뭔가 예상이 가지만 그래도 한번 알아보자!! 먼저 @Transactional 부터 살펴보자! @Transactional 평소에 저희가 자주 사용하는 @Transactional에는 AOP가 적용되어있습니다. 이를 스프링 트랜잭션 AOP라고 합니다. 스프링 트랜잭션 AOP는 @Transactional이 붙여진 메서드가 실행되기 전에 begin을 호출하고 메서드가 종료한 뒤에 commit을 호출합니다! 어떻게 할 수 있는 걸까요?? 답은 프록시입니다!! Spring에는 두가지 프록시 구현체가 있는 데 Springboot에서는 CGLIb를 사용하기 때문에 CGLIb를 기준으로 설명하겠습니다! 아래는 에코노베이션 동아리에서 진행중인 도토링..
-
에러 해결을 통해 공부하는 지연로딩과 프록시Project Trouble Shooting/[Sleeper] 수면관리 어플리케이션 2023. 1. 18. 00:57
프로젝트를 어느정도 마무리하고 실제 어떤 쿼리들이 실행되고 있는 지 확인하고 있는 도중 아래와 같은 상황을 목격했다. 문제 발생 현재, 회원테이블에서 회원의 아이디로 사용자를 찾으려고 한다. 내가 예상한 쿼리는 회원을 찾는 쿼리 1개인데 그 외의 쿼리들이 발생하고 있다. select user0_.id as id1_4_, user0_.character_fk as characte9_4_, user0_.deal_fk as deal_fk10_4_, user0_.user_goal_sleep_time as user_goa2_4_, user0_.user_goal_wake_time as user_goa3_4_, user0_.user_role_type as user_rol4_4_, user0_.user_age as us..