Spring Boot/JPA

@Transactional 주의 사항

최-코드 2025. 2. 18. 18:43

트랜잭션 무분별한 사용을 금하자.

  • service layer에 존재하는 모든 메소드에 @Transactional을 달기 전에 실제로 @Transactional로 묶여야 하는 작업을 인지해야 한다.
  • 예를 들어 특정 메소드에서 SMS 문자를 보내는 로직과 Entity를 저장하거나 수정하는 로직이 함께 있을 때 @Transactional로 두 로직을 묶을 경우 SMS 문자를 보내는 로직 때문에 불필요한 리소스 낭비가 발생한다.
  • 따라서 이런 경우에는 @Transactional이 필요한 로직을 메소드로 따로 빼고, 해당 메소드에 @Transactional을 달아주는 방식이 좋다.