데드락 3

공유 락과 배타 락에 대해서 설명해주세요.

🔐 DB 락(Lock)이 뭐예요? 공유 락 vs 배타 락, 그리고 데드 락까지!안녕하세요 백엔드 개발자 여러분! 👩‍💻오늘은 DB에서 데이터 무결성과 안전한 병행 처리를 위해 꼭 알아야 할락(Lock)에 대해 쉽게 알아볼게요!🧩 락이 필요한 이유는?여러 트랜잭션이 동시에 데이터에 접근할 때,충돌이 생기지 않게 보호하는 장치가 바로 "락(lock)"입니다! 🔒✅ 공유 락(Shared Lock) 🧍‍♀️🧍‍♂️"읽기는 여러 명이 동시에 해도 돼~ 하지만 누가 수정하면 안 돼!"데이터를 읽는(SELECT) 트랜잭션들이 같이 공유할 수 있어요.하지만 누군가 수정(UPDATE/DELETE) 하려고 하면 ❌ 못 해요!📘 예시-- 공유 락: 여러 트랜잭션이 동시에 읽을 수 있음SELECT * FROM ..

Chapter13. 교착 상태(데드락)

Chapter13. 교착 상태(데드락)학습목표교착 상태가 무엇인지 이해합니다교착 상태는 어떤 상황에서 발생하는지 이해합니다교착 상태를 예방하고, 회피하고, 검출하는 방법을 학습합니다**교착 상태(Deadlock)**란?여러 프로세스나 스레드가 서로 자원을 기다리며 무한정 대기 상태에 빠져 작업을 진행하지 못하는 상황발생 상황상호 배제 상황일 때자원을 점유하고 대기할 때자원을 비선점 상태일때자원을 해제하지 않고 무한 대기할 때예방 방법자원 할당 전에 모든 자원을 확보요청 순서를 정해 자원 할당회피 방법자원 상태를 모니터링해 교착 상태가 발생하지 않도록 조정은행원 알고리즘을 사용검출 방법시스템의 자원 그래프를 사용해 교착 상태를 검사주기적으로 검사하여 교착 상태를 해결

데이터베이스 트랜잭션: 안전하고 일관된 데이터 처리

1. 트랜잭션의 개념트랜잭션(Transaction)은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위입니다. 이는 여러 개의 연산을 하나의 논리적 단위로 묶어 처리하는 것을 의미합니다. 트랜잭션의 주요 목적은 데이터의 일관성을 유지하고 안정적인 데이터베이스 상태를 보장하는 것입니다.1.1 트랜잭션의 특성 (ACID)트랜잭션은 다음 네 가지 특성을 가집니다:원자성(Atomicity): 트랜잭션의 모든 연산이 완전히 수행되거나 전혀 수행되지 않아야 합니다.일관성(Consistency): 트랜잭션 실행 전후의 데이터베이스 상태가 일관되어야 합니다.격리성(Isolation): 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 합니다.지속성(Durability): 성공적으로 완료된 트랜잭션의 결과..