트랜잭션 격리 수준 분석: Prisma를 활용한 실습 가이드
RDBMS에서 중요한 개념으로 트랜잭션이 있습니다. 트랜잭션은 데이터베이스의 무결성을 유지하는 데 중요한 역할을 하며, 복잡한 데이터 작업을 안전하고 일관되게 처리하는 데 사용될 수 있습니다. 근데 무심고 사용하던 트랜잭션에도 격리 수준(isolation level)이 있다는 것을 아시나요? 저는 동시성이 있는 데이터를 어떻게 안전하게 처리할 수 있는지, Lock 말고는 방법이 없는지 찾아보다가 알게 되었습니다. 이 격리 수준을 이용하여 성능과 데이터 일관성 사이의 트레이드 오프를 다룰 수 있습니다. 높은 격리 수준은 더 일관된 데이터를 제공하지만 동시성이 저하 될 수 있고, 낮은 격리 수준은 더 높은 동시성을 제공하지만 데이터 무결성 문제가 발생할 수 있습니다. 그래서 각 격리 수준을 이해하고 사용할 수 있어야 하는데 이론도 중요하지만 실제로 어떻게 동작되는지를 보고 싶었습니다. 이에 따라 각 격리 수준에 대한 실제 동작을 TS + Prisma 를 통해 만들어 보았습니다. 또한, 실습 결과에 따른 Insight를 글로 담았습니다. 포스트: https://parkgang.github.io/blog/2023/05/28/transaction-isolation-prisma-guide/