Загружаем каталог…
Загружаем каталог…
계좌 A에서 20을 빼고 B에 20을 더하는 상황을 가정하겠습니다. 첫 UPDATE만 성공하면 합계가 사라집니다. 이번에는 여러 변경을 한 작업으로 묶고, 취소하면 원래 상태를 유지하는 이유 를 살펴보겠습니다. 실제 금융 서비스 설계가 아닌 합성 데이터 예제입니다. 문장 하나씩 성공하는 것과 업무가 성공하는 것 트랜잭션은 여러 단계를 하나의 전부 또는 전무 작업으로 묶습니다. BEGIN 으로 시작해 성공한 변경을 COMMIT 하고, 취소하면 ROLLBACK 합니다. PostgreSQL의 기본 설명은 공식 트랜잭션 문서 를 참고했습니다. 그림은 논리적 변경 범위를 설명합니다. 디스크 쓰기 순서나 장애 복구 로그의 구현 그림은 아닙니다. 메모리 DB에서 취소를 확인하기 아래 SQL을 SQLite의 독립 메모리 DB 에서 실행했습니다. PostgreSQL 서버를 테스트한 결과는 아닙니다. 이 SQL 부분집합으로 취소되는 상태를 확인합니다. CREATE TABLE account (id INTEGER PRIMARY KEY, balance INTEGER NOT NULL); INSERT INTO account VALUES (1, 100), (2, 50); BEGIN; UPDATE account SET balance = balance - 20 WHERE id = 1; UPDATE account SET balance = balance + 20 WHERE id = 2; SELECT id, balance FROM account ORDER BY id; ROLLBACK; SELECT id, balance FROM account ORDER BY id; 트랜잭션 안에서는 (1, 80), (2, 70) 을 읽었습니다. ROLLBACK 뒤에는 (1, 100), (2, 50) 으로 돌아왔습니다. 실제 영구 저장, 장애 복구와 동시 접속은 이 실험의 검증 범위가 아닙니다. ACID를 보장 목록만으로 외우지 않기 원자성은 변경을 한 단위로 취급하는 성질, 일관성은 정의한 규칙을 만족하는 상태 유지, 격리는 동시 작업의 상호작용을 제한하는 성질, 지속성은 완료된 변경을 보존하는 성질로 생각할 수 있습니다. 하지만 업무 규칙은 제약과 애플리케이션에도 구현해야 합니다. 트랜잭션을 썼다고 “잔액 음수 금지”가 자동 생성되지는 않습니다. PostgreSQL의 Read Committed에서는 한 트랜잭션의 두 SELECT가 다른 시점의 커밋된 값을 볼 수 있습니다. 격리 수준에 따라 허용되는 현상이 다르므로 트랜잭션이면 모든 경쟁 문제가 사라진다고 보면 안 됩니다. PostgreSQL 18 격리 수준 확인 문제 두 UPDATE를 각각 자동 커밋하면 하나의 취소 단위일까요? 위 코드에서 ROLLBACK을 COMMIT으로 바꾸면 잔액은 어떻게 될까요? 메모리 DB의 ROLLBACK 성공으로 정전 후 지속성을 입증할 수 있을까요? 답과 해설 아닙니다. 업무 단위에 맞는 트랜잭션 경계를 정해야 합니다. 이 합성 예제에서는 80과 70을 유지합니다. 아닙니다. 영구 저장과 실제 장애 복구는 별도 검증 대상입니다. 오늘은 실패할 수 있는 단계와 취소 범위를 적어보겠습니다. 내일은 잔액 조건을 추가하고, 일주일 뒤에는 동시 작업의 격리 수준을 비교해보면 좋겠습니다. 다음은 조회할 행을 찾는 인덱스입니다. 자료 확인 기준: PostgreSQL 18 공식 문서, 2026-10-04. SQL 실행은 독립 SQLite 메모리 DB의 원자적 취소만 확인합니다. 예제 검증 환경: Python 3.13.13의 SQLite 3.51.2, 독립 :memory: DB.
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
두 번의 UPDATE를 한 작업으로: 트랜잭션과 ROLLBACK. 계좌 A에서 20을 빼고 B에 20을 더하는 상황을 가정하겠습니다. 첫 UPDATE만 성공하면 합계가 사라집니다. 이번에는 여러 변경을 한 작업으로 묶고, 취소하면 원래 상태를 유지하는 이유 를 살펴보겠습니다. 실제 금융 서비스 설계가 아닌 합성 데이터 예제입니다. 문장 하나씩 성공하는 것과 업무가 성공하는 것 트랜잭션은 여러 단계를 하나의 전부 또는 전무 작업으로 묶습니다. BEGIN 으로 시작해 성공한 변경을 COMMIT 하고, 취소하면 ROLLBACK 합니다. PostgreSQL의 기본 설명은 공식 트랜잭션 문서 를 참고했습니다. 그림은 논리적 변경 범위를 설명합니다. 디스크 쓰기 순서나 장애 복구 로그의 구현 그림은 아닙니다. 메모리…