스프링

    @Transactional과 @Transactional(readOnly = true) 차이

    서론 지하철 노선도 미션에서 리뷰어에게 다음과 같은 피드백을 받았습니다. @Transactional과 @Transactional(readOnly = true)은 어떻게 다른지, 왜 사용했는지 공유해주실 수 있나요~? 그에 대한 저의 답변입니다. @Transactional(readOnly = true)을 사용한 이유는 명령쿼리분리원칙 때문입니다. 조회 쿼리만을 사용하는 메서드에는 readOnly = true을 붙여 상태를 변경시키는 행위(생성,수정,삭제)를 금지할 수 있습니다. 또한, readOnly = true가 메서드에 붙어있다면, 다른사람이 보기에 이 메서드는 상태를 변경시키지 않는 쿼리라고 생각할테니 프로그램의 안정성에 기여할 것이라는 생각을 했었습니다. readOnly=true를 사용함으로써 얻을..