주요 관계형 데이터베이스(MySQL, PostgreSQL, Oracle, SQL Server)에서 데드락을 확인하고 해소하는 방법, 그리고 예방 전략에 대해 설명드리겠습니다.데드락 발생 원리 (간단 예시)트랜잭션 1이 테이블 A의 행 1에 쓰기 락(Exclusive Lock)을 겁니다.트랜잭션 2가 테이블 B의 행 5에 쓰기 락을 겁니다.트랜잭션 1이 이어서 테이블 B의 행 5에 락을 걸려고 시도합니다. 하지만 트랜잭션 2가 이미 락을 점유하고 있으므로 대기합니다.트랜잭션 2가 이어서 테이블 A의 행 1에 락을 걸려고 시도합니다. 하지만 트랜잭션 1이 이미 락을 점유하고 있으므로 대기합니다.결과적으로, 트랜잭션 1은 트랜잭션 2가 락을 놓기를 기다리고, 트랜잭션 2는 트랜잭션 1이 락을 놓기를 기다리는 ..
핵심 개념:동시성 문제: 여러 트랜잭션(작업 단위)이 동시에 같은 데이터를 접근하고 수정할 때, 데이터의 일관성이 깨지거나 예상치 못한 결과가 발생하는 문제입니다. 예를 들어, 두 사용자가 동시에 상품 재고를 1개씩 감소시키려 할 때, 최종 재고가 예상과 다르게 1개만 줄어드는 경우가 생길 수 있습니다.락(Lock): 이런 동시성 문제를 해결하기 위해 특정 데이터나 자원에 대해 동시에 접근하는 것을 제어하는 메커니즘입니다.1. 비관적 락 (Pessimistic Lock)개념:이름 그대로 동시성 충돌이 발생할 것이라고 "비관적으로" 가정하고 시작합니다.데이터를 읽거나 수정하기 전에 먼저 해당 데이터에 락을 겁니다.락을 건 트랜잭션이 종료될 때까지 다른 트랜잭션은 해당 데이터에 접근(읽기 또는 쓰기, 락 종..
- Total
- Today
- Yesterday
- Heap Area
- MCP
- 일급 객체
- 언리얼엔진5
- RESTfull
- 도커
- ai통합
- 언리얼엔진
- method Area
- 코틀린
- JVM
- 디자인패턴
- react.js
- 코프링
- 스브링부트
- generated_body()
- JAVA 프로그래밍
- Java
- vite
- cqrs
- 자바
- springai
- unreal engjin
- 카프카 개념
- Stack Area
- First-class citizen
- 타입 안전성
- model context protocol
- redis
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |