✏️ 스프링에서 AOP를 이용하여 사용하는 선언적 트랜잭션 방식인 @Transactional과 Propagation을 알아보자 트랜잭션의 전파 (Propagation) 문제 상황 A라는 트랜잭션이 시작되고 트랜잭션 A가 끝나지 않은 시점에서 트랜잭션 B 메소드가 호출된다고 가정하자. B는 어느 트랜잭션에서 동작할까? 이때 A라는 트랜잭션과 B 트랜잭션은 서로 다른 Service 레이어에 존재하는 메소드로 가정한다. REQUIRED (default) A 메소드 - @Transactional(propagation = Propagation.*REQUIRED*) B 메소드 - @Transactional(propagation = Propagation.*REQUIRED*) 이미 진행중인 트랜잭션이 없으면 새로 시작..
프록시 public void printUserAndTeam(String memberId){ Member member= em.find(Member.class, memberId); System.out.println("회원 이름:" + member.getUserName()); System.out.println("소속 팀 이름:" + member.getteam().getName()); } public void printUser(String memberId){ Member member= em.find(Member.class, memberId); System.out.println("회원 이름:" + member.getUserName()); } 회원정보만 출력하는 비즈니스 로직은 member 엔티티만 사용하므로 me..