트랜잭션 락(1) 개념, 낙관적 락

itonse·2024년 4월 28일
0

CS 스터디

목록 보기
26/56

1. 트랜잭션 락 기법 개념

  • 트랜잭션 락 기법은 여러 트랜잭션이 동시에 같은 데이터 항목에 접근하는 것을 방지함으로써 데이터의 동시성 문제를 제어하는 방법입니다.

  • 트랜잭션 처리의 순차성을 보장하기 위한 방법

  • Lock은 DBMS가 자동으로도 적용하기도 하고 수동으로도 적용 할 수 있다.

    • 자동 락: 공유락, 배타적 락
    • 수동 락: SQL에서 LOCK TABLE이나 SELECT ... FOR UPDATE와 같은 명령어를 사용



2. 락의 종류

트랜잭션 락을 두 카테고리로 나눈다면 낙관적 락과 비관적 락이 있는데,
비관적 락은 공유락 또는 배타적 락 기법을 사용하며, 낙관적 락은 다른 접근 방식을 사용하는 별개의 카테고리 이다.



3. 낙관적 락

  1. 개념: 트랜잭션이 데이터를 수정할 때, 충돌이 발생하지 않을 것으로 가정하고 락을 거는 방식

  2. 동작: 트랜잭션이 커밋할 때까지 락을 걸지 않고, 커밋 직전에 레코드의 버전 등을 통해 충돌 여부를 검사한다.

  3. 유의사항: 충돌이 많이 발생하거나 비용이 많이 발생할 것이라고 판단되는 곳에 사용하지 않는 것이 좋다.

  4. 단점: 만약 충돌이 발생했을 때 해결하려면 비관적 락과 다르게 개발자가 직접 롤백 처리를 해야 해서 번거롭다.

0개의 댓글