격리 수준 이름만 외운 사람인지, _이상 현상_과 _DB 엔진별 동작_까지 묶어 상황별 선택 기준을 말하는 사람인지를 가른다.
격리 수준은 동시에 실행되는 트랜잭션 간 _데이터 가시성과 충돌 허용 범위_를 정한다. READ UNCOMMITTED → READ COMMITTED → REPEATABLE READ → SERIALIZABLE로 갈수록 정합성은 높아지고 동시성은 떨어진다. Dirty Read, Non-Repeatable Read, Phantom Read 같은 이상 현상을 기준으로 시스템 요구에 맞게 고른다. 또한 같은 "REPEATABLE READ"라도 MySQL InnoDB(MVCC + 갭락)와 PostgreSQL(MVCC 스냅숏)이 다르게 동작해 엔진별 특성까지 함께 봐야 한다.
동시 결제로 잔액이 꼬이는 사고를 SELECT FOR UPDATE/격리 수준 조정으로 해결한 경험이 있다면 그 케이스 자체가 답변 후크가 된다
REPEATABLE READ에서 Phantom Read가 막히는 InnoDB 동작을 활용한 경험이 있다면 엔진별 특성 이야기로 깊이를 더할 수 있다
격리 수준을 올린 뒤 락 경합으로 처리량이 떨어져 _다른 방식_으로 푼 경험이 있다면 트레이드오프 판단으로 연결할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.