728x90
반응형
SMALL
트랜잭션과 Lock: 데이터베이스의 교통 신호등 완벽 가이드
은행 ATM에서 두 사람이 동시에 같은 계좌의 돈을 인출하려 할 때 발생할 수 있는 혼란을 막는 방법! 데이터베이스의 트랜잭션과 Lock으로 데이터 충돌을 예방하는 핵심 원리를 쉽게 설명합니다.
안녕하세요😊 코드카인 여러분!
여러분, 마트에서 장보실 때 카트 충돌 나신 적 있으시죠? 🛒 오늘은 데이터베이스에서도 이런 '충돌'을 어떻게 막는지, 트랜잭션과 Lock에 대해 알아볼게요!
트랜잭션과 Lock이란? 🤔
식당의 화장실을 생각해보세요! 사용 중일 때는 문을 잠그고(Lock), 용무가 끝날 때까지(트랜잭션) 아무도 들어올 수 없죠. 데이터베이스도 마찬가지예요!
Lock의 종류 - 문의 잠금장치처럼! 🔐
공유 Lock(Shared Lock, S-Lock) 👥
- 도서관에서 책을 읽을 때처럼, 여러 사람이 동시에 데이터를 읽을 수 있어요
- SELECT 문에서 주로 사용됩니다
배타적 Lock(Exclusive Lock, X-Lock) 🚫
- 화장실처럼 한 번에 한 사람만 사용 가능!
- INSERT, UPDATE, DELETE 문에서 사용됩니다
Lock의 범위 📏
행 수준 Lock(Row-Level Lock) 🔍
테이블 수준 Lock(Table-Level Lock) 📊
데드락(Deadlock) - 꼬여버린 상황! 🔄
데드락이란?
두 사람이 서로의 자리를 양보하지 않는 상황처럼, 두 트랜잭션이 서로가 가진 리소스를 기다리며 무한 대기하는 상태를 말해요.
데드락 예방법 🛡️
- 트랜잭션은 짧게 유지하기
- 일관된 순서로 Lock 획득하기
- 타임아웃 설정하기
락 에스컬레이션(Lock Escalation) 📈
많은 행 단위 Lock이 테이블 Lock으로 확장되는 현상이에요. 마치 편의점에서 너무 많은 물건을 들고 있다가 결국 카트를 가져오는 것처럼요!
실전 예제: 은행 계좌 관리 시스템 🏦
Lock 모니터링 및 관리 👀
- Lock 대기 시간 모니터링
- 데드락 감지 및 해결
- Lock 타임아웃 설정
😊 마무리하며..
여러분! 오늘 배운 Lock은 마치 교통신호등 같아요. 복잡한 데이터 흐름 속에서 질서를 만들어주죠. 처음에는 어려워 보여도, 차근차근 이해하다 보면 자연스럽게 익숙해질 거예요. 여러분의 데이터베이스 여정을 응원합니다! 💪
728x90
반응형
SMALL
'데이터베이스 > Transaction' 카테고리의 다른 글
실패율 0%의 은행 송금 비밀: 트랜잭션의 마법 - 코드카인 티스토리 (0) | 2024.12.23 |
---|