나의 개발일지



· Database
ACID ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어입니다. 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계를 트랜잭션이라고 합니다. 예를 들어, 은행에서의 계좌이체를 트랜잭션이라고 할 수 있는데 계좌이체 자체의 구현은 내부적으로 여러 단계로 이루어질 수 있지만 전체적으로는 '송신자 계좌의 금액 감소', '수신자 계좌의 금액 증가'가 한 동작으로 이루어져야 하는 것을 의미합니다. "읽기와 쓰기를 하나의 논리적 단위로 묶는 방법" 이라고 정의할 수 있습니다. 또한, 묶여진 단위는 commit 되거나 rollback 이라는 기능이 보장되어야 합니다. 1️⃣ Atomicity ACID에서 원자성이라고 하면, client가 쓰기 몇 개의 작업을 수행하고자 ..
· Database
혹시 보기만 해도 답답해지는 고스트의 락다운을 생각하셨나요..? 락(Lock)이란? Database에서 사용하는 개념으로 트랜잭션의 순차성을 보장하기 위한 방법 중 하나입니다. 트랜잭션이란 데이터베이스의 상태를 변화시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 이러한 Database의 특징을 Atomic하다고 말합니다. 락을 획득한다는 것은 자원을 사용해도 된다는 의미이며, 다른 프로세스는 현재 락을 획득한 프로세스가 잠금을 건 자원에 대해서 사용할 수 없음을 의미합니다. 추가적으로, 락을 획득한다는 것은 "락이 존재하는지 확인한다", "존재하지 않는다면 락을 획득한다" 라는 두 연산이 atomic하게 이루어져야 합니다. ✔️ Ato..
?name=euichan
'Database' 카테고리의 글 목록