스프링부트 + JPA 를 쓰다보면 @Transactional 어노테이션을 자주 사용하게 된다 어떠한 로직이 동작하면서 DB 값도 바꿔야 하는 상황일때 해당 로직이 실패하면 DB까지 모두 롤백시킬 심산으로 @Transactional 어노테이션을 활용하고는 했다 그런데 어느날 내가 Transactional 어노테이션을 남용하고 있는건 아닐까..? @Transactional(readOnly = true) 어차피 읽기만 할건데.. 롤백 될일도 없는데.. 이 코드가 과연 맞나..? 싶은 의문이 든다.. 두둥 알고보니 Spring JPA repository base class 가 애초에 모든 메소드들을 read-only transaction 으로 생각한다고 한다 저 코드는 필요 없는것! JPA Buddy 그리고 J..