반응형

ACID 2

💸 [1일 1CS] 서버가 터졌다고? DB 트랜잭션과 ACID

1. 끔찍한 상상: 쪼개지면 안 되는 작업증권사 앱에서 미국 주식 ETF를 매수한다고 가정해 봅시다. 내부적으로는 두 단계가 있습니다내 계좌에서 100달러 차감내 포트폴리오에 ETF 1주 추가그런데 1번만 성공하고 서버가 꺼져버리면? 돈은 사라졌는데 주식은 들어오지 않는 대참사가 발생합니다.이런 상황을 막기 위해 데이터베이스는 트랜잭션(Transaction)이라는 개념을 제공합니다.즉, “이 두 작업은 무조건 하나로 묶어서 처리해!”라는 것입니다.2. All or Nothing (모 아니면 도)트랜잭션은 중간이 없습니다.성공 (COMMIT): 모든 작업이 완벽히 끝났을 때만 영구 반영실패 (ROLLBACK): 중간에 오류가 나면 모든 작업을 취소하고 원래 상태로 되돌림덕분에 서버가 중간에 터져도 “돈만 ..

ACID에 대해서 설명해주세요.

ACID에 대해서 설명해주세요.백엔드와 관련된 질문이에요.ACID는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)의 약자이며, 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 의미합니다.각 속성은 어떤 의미를 가지나요? 🤔원자성(Atomicity) 은 트랜잭션 내부 연산들이 부분적으로 실행되고 중단되지 않는 것을 보장합니다. 쉽게 말하자면, 트랜잭션은 전체 성공과 전체 실패 중 한 가지만 수행한다는 것입니다. 예를 들면 계좌 이체 트랜잭션은 다음과 같은 연산으로 이루어져 있습니다. 이때 2번 과정에서 에러가 발생하면 1번 과정을 취소해야 합니다.1. A 계좌에 3000원 출금2. B 계좌에 3000원 입금 일관..

반응형