작성
·
46
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. JuNu님.
토비의 ‘클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1’ 강의 관련 질문을 주셨네요. record
클래스에 @Transactional
어노테이션을 사용했을 때 발생하는 경고 메시지에 대한 질문입니다.
@Transactional
어노테이션은 스프링이 트랜잭션 관리를 위해 프록시 기반으로 동작하게 됩니다. 따라서 @Transactional
이 붙은 클래스는 프록시를 생성하기 위해 기본적으로 상속 가능한 형태여야 합니다. 그러나 record
클래스는 자바 14부터 도입된 레코드 기능으로, 기본적으로 final
로 선언되어 있어 상속이 불가능합니다. 그래서 인텔리제이에서 해당 경고 메시지를 출력하는 것입니다.
일반적으로 이 경고는 무시할 수 있는 부류의 것이지만, 이는 record
의 특성과 트랜잭션 관리 방식의 차이에서 기인한 것으로, 실제로 트랜잭션이 제대로 관리되지 못하는 상황을 피하기 위해서는 record
대신 다른 클래스를 사용하거나 트랜잭션 관리를 별도의 서비스 계층에서 담당하도록 리팩터링하는 것이 바람직합니다.
관련 주제를 다룬 유사한 질문과 답변을 참고하시면 더 깊이 있게 이해하실 수 있습니다:
이 내용이 JuNu님의 궁금증 해결에 도움이 되길 바랍니다. 추가적으로 더 궁금한 점이 있으면 언제든지 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.