동시성 문제로부터 비롯된 트랜잭션 격리 수준과 데이터베이스 락의 이해 과정
Q. 어떤 게시글에 여러 사람이 동시에 댓글을 다는 일은 흔하다. 만약 게시글 테이블에서 칼럼으로 댓글 개수를 기록하고 있으면, 트랜잭션을 어떻게 활용해야 동시성 문제를 해결할 수 있을까? A-1. 트랜잭션 격리 수준 트랜잭션의 격리 수준은 여러 트랜잭션이 동시에 같은 데이터에 접근할 때 발생할 수 있는 문제들을 어떻게 격리시킬지를 정하는 설정입니다. 격리 수준에는 여러 옵션이 있지만, 주로 다음 네 가지 수준을 사용합니다: READ UNCOMMITTED - 가장 낮은 격리 수준으로, 다른 트랜잭션에서 커밋하지 않은 데이터도 읽을 수 있습니다. READ COMMITTED - 커밋된 데이터만 읽을 수 있어, "dirty reads"는 방지하지만 "non-repeatable reads"는 발생할 수 있습니다..