transactional
-
[JPA] Repository단에 Transactional을 선언하는 이유Spring Boot/JPA 2023. 10. 5. 22:37
적어도 일년 이상 궁금했던 의문이 풀려서 정리해본다. Mybatis를 쓰다가 처음로 JPA를 실무에 도입을 할때,위에 코드처럼 Repository단에 @Transcational를 선언하는 경우가 있었다. Service단에 @Transcational을 선언하면 Spring이 AOP로 하나의 Transcation으로 전파되는데왜 굳이 Repository에 선언해야할까?Github에 유명하신 분들 코드를 뜯어봐도,새로 이직한 회사의 코드를 뜯어봐도,ChatGPT, 구글, 공식문서 다 찾아봤지만 알 수 없었는데... 드디어 알게 되었다. 요약하면 Transaction이 너무 긴 Long Transaction이고 동시적인 요청을 받고 있을때 성능적으로 단점이 있기 때문이다. 스프링은 Transaction이 시작..