반응형

readonly 2

[Spring 공식 문서 기반] Transaction 12. readOnly는 왜 ‘힌트’일 뿐일까

11편에서는 Isolation을 조정해야 하는 순간이“매우 제한적이며, 대부분은 다른 방법이 우선”이라는 점을 실무 시나리오로 정리했습니다.이번 글에서는 @Transactional 옵션 중 가장 많이 오해되는 값,readOnly를 다뤄보겠습니다.readOnly를 보면 많은 개발자가 이렇게 생각합니다.“readOnly = true면 DB에 쓰기가 절대 안 나가겠지?”하지만 Spring 공식 문서 관점에서 이 이해는정확하지 않습니다.1. readOnly는 무엇을 보장하는가결론부터 말하면,readOnly는 “금지”가 아니라 “힌트”입니다.즉,readOnly = true라고 해서쓰기 SQL이 물리적으로 차단되는 것은 아닙니다Spring 공식 문서가 말하는 readOnly의 의미는 다음에 가깝습니다.“이 트랜잭션..

[Spring JPA 공식 문서 기반] 10. 읽기 전용 트랜잭션의 진짜 의미

9편에서는 트랜잭션이 없을 때 JPA의 핵심 기능이“왜 반쪽짜리로 무너지는지”를 Persistence Context와 엔티티 상태 흐름을 통해 정리했습니다.이번 글에서는 그 다음으로 자연스럽게 따라오는 질문,“그렇다면 읽기만 하는 경우에도 왜 트랜잭션을 써야 할까?”에 답해보겠습니다.1. 읽기 전용 트랜잭션은 왜 오해를 부를까@Transactional(readOnly = true)를 보면 많은 개발자가 이렇게 이해합니다.“이 메서드는 DB에 쓰기가 안 나간다”하지만 이 이해는정확하지 않습니다.읽기 전용 트랜잭션은쓰기 자체를 금지하는 기능 ❌JPA의 동작 방식을 힌트로 알려주는 설정 ⭕입니다.2. 읽기 전용 트랜잭션의 진짜 목적Spring JPA 공식 문서 기준으로, 읽기 전용 트랜잭션의 목적은 다음 두 ..

반응형