본문 바로가기

transaction2

Transaction의 이해 - PostgreSQL 트랜잭션이란? 아주 심플하게 보통 일의 최소 단위를 트랜잭션이라고 정의한다. 즉, 여러 개의 수정작업이 하나의 작업처럼 전부 처리되거나 아예 전부 처리가 안 되도록 하기 위한 것이다. 계좌이체를 할 때, 현금잔고를 확인하고 이체 비밀번호와 보안카드 코드값을 입력받아 최종 이체가 완료되는 순간까지를 트랜잭션 단위라고 할 수 있다. 트랜잭션은 다음과 같은 특징을 가진다. 원자성(Atomicity) : 더 이상 분해 불가능한 최소한의 업무단위를 말한다.일관성(Consistency) : 트랜잭션이 실행을 성공적으로 완료했다면, 언제나 일관성 있는 데이터베이스 상태로 변환한다. 격리성(Isolation) : 트랜잭션이 실행 중에 생성하는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 없다.영속성(Durabilit.. 2018. 7. 4.
Java Synchronized을 이용한 트랜잭션 예제 Java Synchronized(동기화)란 여러 개의 Thread가 한 개의 자원을 사용하고자 할 때, 해당 Thread만 제외하고 나머지는 접근을 못하도록 막는 것이다.이를 응용해서, 은행 ATM 의 Transaction 예를 만들어보자. 시나리오1. User01이 ATM에서 돈을 인출하려 함.2. User02가 User01이 인출하고 있는 도중에, 돈을 인출할 수 없어야 함.3. User01의 인출이 끝날때 까지 기다려야 함.* 인출의 행위는 Thread간 상호 배타적으로 동작해야 함. package com.augustine.threadtest3; import java.util.concurrent.atomic.AtomicInteger; class SyncThreadTest { public static.. 2018. 4. 26.
반응형