Skip to content

[Chapter 08] 8.7.1 @Transactional 애너테이션 파트 설정과 예외에 대한 질문 #109

Discussion options

You must be logged in to vote

Q. CheckedException 중 트랜잭션을 롤백 할만한 예외가 있을까?

이건 비즈니스를 어떻게 푸느냐에 따라 다를 것 같은데... 예시를 하나 들어보겠습니다.

만약 회원가입을 진행하는 signUp 메서드가 있다고 가정해 보면, 다음과 같은 요구사항을 생각해 볼 수 있습니다.

  1. 회원 테이블에 데이터 행 추가
  2. 본인 명의의 신용카드를 등록해야만 회원가입 완료

그런데 신용카드를 등록하려면 별도 외부 서비스의 인터페이스 호출을 통해 신용카드를 등록할 수 있다고 가정해 봅시다.
대표적인 CheckedException 으로 IOException 이 있는데, 이 예외를 NetworkException 이라는 커스텀 클래스를 만들고 extends 합니다.
그때, 코드를 다음과 같이 작성한다면? (설명을 위한 예시로 든 것이기 때문에, 문제 상황만 주목하면 좋을 듯합니다.)

NetworkException.java

public class NetworkException extends IOException {

    public NetworkException(String message) {
        super(message);
    }

}

MemberService.java

@Service
@RequiredArgsConstructor
public class MemberService {
    
    private final Mem…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by Irisation23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chapter08 데이터 영속성
2 participants