핵심 구분
동시성 문제는 이름보다, 다른 트랜잭션 때문에 무엇이 흔들렸는지로 보면 빨라진다.

쓰기-쓰기는 최종 값을 잃고, 읽기-쓰기는 읽는 동안 보이는 값, 같은 행, 결과 범위가 차례로 흔들린다.

충돌 조합 무엇이 바뀌나 이상 현상 실무 의미
쓰기-쓰기 같은 행을 둘 다 수정 마지막 쓰기가 앞선 값을 덮어쓴다 두 트랜잭션이 같은 행을 갱신했지만 최종 상태에는 하나만 남는다. 100 → T1:120, T2:130 → 최종 130 갱신 분실 앞선 UPDATE의 효과가 사라짐 데이터 손실
업무상 반영됐어야 할 변경 하나가 없어져 버린다.
읽기-쓰기 읽는 사이 다른 쪽이 변경 커밋되지 않은 값을 먼저 읽는다 나중에 롤백될 수도 있는 임시 상태를 본다. balance=120 읽음 → 이후 ROLLBACK 오손 읽기 dirty read 잘못된 데이터
존재하지 않을 값을 기준으로 검증이나 계산을 하게 된다.
같은 행을 다시 읽자 값이 달라진다 사이사이에 다른 트랜잭션의 커밋이 끼어든다. 1회 조회 100 → 2회 조회 120 반복불가 읽기 non-repeatable read 일관성 위반
한 트랜잭션 안에서도 같은 행의 판단 기준이 바뀐다.
같은 조건 재조회에서 결과 행 집합이 달라진다 INSERT 또는 DELETE 때문에 범위 자체가 바뀐다. WHERE grade='A' : 3행 → 4행 팬텀 phantom read 결과셋 변화
집계, 개수 확인, 범위 검증처럼 행 집합을 다루는 로직이 흔들린다.