• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

스프링에서의 트랜잭션 롤백처리 관련해서 질문 드립니다

22.07.02 20:22 작성 조회수 579

3

안녕하세요 좋은 강의 너무 감사합니다.

코틀린에서는 모든 예외가 Unchecked Exception이라 하였는데, 

스프링에서는 UncheckedException과 CheckedException에 따라 롤백 여부가 달라진다고 알고있습니다.

코틀린에서는 모든 예외가 UncheckedException이어도 자바와의 호환성을 위해서는 발생하는 예외에 따라 롤백 여부가 달라질 것 같은데, 이것이 맞다면 예외가 발생할 수 있는 코드들에 대해서 항상 예외가 자바에서 runtimeException을 상속받았는지 아닌지를 확인해 주어야 할까요?

답변 1

답변을 작성해보세요.

3

안녕하세요 동훈님~!! 정말 좋은 질문이십니다 ㅎㅎㅎㅎ :)

 

결론부터 말씀드리면, 해당 예외가 Kotlin으로는 Unchecked Exception으로 간주되더라도, 실제 트랜잭션의 롤백은 Java에서의 checked exception, unchecked exception을 따라가기 때문에 말씀해주신것처럼 RuntimeException을 상속받지 않았다면 롤백되지 않습니다.

 

또한, 개인적인 경우로는 checked exception을 서비스 단에서 본 적이 거의 없는 것 같은데요! 그 이유는 checked exception 중 가장 흔한 case인 IOException을 Transaction에서 격리하는 것이 좋기 때문입니다.

 

이 부분은 영상으로도 자세히 남겨두었습니다 ㅎㅎㅎㅎ

감사합니다!!!! 또 질문 있으시면 편하게 남겨주세요~! :)

 

신동훈님의 프로필

신동훈

질문자

2022.07.02

너무 꼼꼼하게 답변해주셔서 감사합니다!!!

추가적으로 설명해주신 부분도 너무 많은 도움이 되었습니다.

강의 너무 잘 보고 있습니다

좋은 강의 만들어 주셔서 감사합니다:)

 

추가로 다음 준비중이신 강의는 혹시 어떤 내용인지 여쭤볼 수 있을까요?

아이고 아닙니다 ㅎㅎㅎ 동훈님께서 강의를 너무 잘 봐주시고 계셔서 제가 감사드리죠~~!!

 

넵넵! 다음 강의는 이런 내용을 담고 있습니다!

1. 간단한 Java + Spring Boot Application이 있는 상태에서 (이 코드는 모두 드리고, UI도 만들어 두었습니다 ㅎㅎ)

2. Kotlin + Junit5로 모든 테스트를 작성하고 (테스트를 아예 모르더라도 다 설명해드립니다!)

3. 프로덕션 코드를 Java -> Kotlin으로 완전히 리팩토링 합니다. 이 과정에서 Kotlin + Spring + JPA를 다루게 되고 몇 가지 리팩토링 방법을 소개합니다!

4. 그리고 추가적인 3개의 비즈니스 요구사항을 Kotlin으로 추가 구현하는데 이때 설계적인 관점, 고민, N + 1 문제 해결 등을 하게 됩니다. (사실 서버 개발자 경험이 2년 이상 있으시면 쉬울 부분일 수 있으며, '소개' 영상에서 어느정도인지 최대한 설명드릴 예정입니다!!! 난이도 부분은 강의가 지속됨에 따라 올라갈 예정이에요 ㅎㅎㅎㅎ)

5. 마지막으로 1개의 기술적인 요구사항 (Kotlin + querydsl 적용) 을 구현하게 되고

이렇게 강의는 끝이 납니다!

 

관심 가져주셔서 너무 감사드립니다 ㅎㅎㅎㅎ

신동훈님의 프로필

신동훈

질문자

2022.07.02

앗 알려주셔서 감사합니다!!!

이후 코틀린에서 코루틴을 사용하여 webflux를 다루는 강의는 혹시 앞으로 만들어주실 강의 계획에는 없는 것인지 궁금합니다..!!

코루틴 + webflux는 계획은 있지만 시간이 많이 걸릴 것 같습니다 ㅠㅠㅠ 차근차근 잘 준비해 보도록 하겠습니다 ㅎㅎㅎ