9편에서는 트랜잭션 전파(Propagation)를 통해 Spring이 하나의 요청 안에서 트랜잭션 경계를 어떻게 나누고, 왜 REQUIRED와 REQUIRES_NEW가 존재하는지를 살펴봤습니다.이번 글에서는 트랜잭션 격리 수준(Isolation)을 통해,동시에 여러 트랜잭션이 실행될 때 무엇을 허용하고, 무엇을 막아야 하는가라는 질문에 대해 Spring과 데이터베이스가 어떤 선택을 했는지를 차근차근 정리해보겠습니다.1. 트랜잭션 격리 수준(Isolation)이란 무엇인가격리 수준은 한 트랜잭션이 다른 트랜잭션의 변경 내용을 어디까지 볼 수 있는지를 정의합니다.즉, 격리는정합성의 문제이자동시성의 문제이며성능과 직결된 설계 선택입니다.모든 트랜잭션을 완전히 격리하면 가장 안전하겠지만, 그만큼 동시 처리 성능..