본문 바로가기

Programming/Java

[Java]자바 트랜잭션 java transaction 설명 개념 / 방법 처리

반응형
SMALL
 
트랜잭션이란
 
insert, update, delete 등 DB 변경에 해당하는 명령이 있는       SQL 구문을 트랜잭션이라고 함
 
 
Commit  트랜잭션의 결과를 DB에 반영
 
Rollback  트랜잭션 결과를 DB에 미반영
 
 
 
-------------------------------------------------------------
트랜잭션 처리가 필요한 잉 ㅠ
 
1. 김상현이 김용남에게 100만원을 빌림
2. 일주일 뒤에 갚겠다고 약속함
3. 일주일 후 김상현이 돈이 생김
4. 국민은행에서 100만원을 계좌 이체하려고 함
5. 인출 과정
   (김상현 계좌 -> 잔액 - 100만원 update -> 김용남 계좌 -> 잔액 + 100만원 update)
6. 하지만 김상현 계좌에서 -100만원 update 후 전산
1. 김상현이 김용남에게 100만원을 빌림
2. 일주일 뒤에 갚겠다고 약속함
3. 일주일 후 김상현이 돈이 생김
4. 국민은행에서 100만원을 계좌 이체하려고 함
5. 인출 과정
    (김상현 계좌 -> 잔액 - 100만원 update -> 김용남 계좌 -> 잔액 + 100만원 update)
6. 하지만 김상현 계좌에서 -100만원 update 후 전산장애 ?
7. 김상현은 돈 100만원은 어디로 ?
 
5번은 과정을 한 개의 작업으로 만드는 것이 트랜잭션 처리
 
-------------------------------------------------------------------------
 
트랜잭션의 기본 개념
 
 
 원자성, 일관성, 격리성, 지속성
 
 
 
1. 원자성(Atomicity) - 트랜잭션 내에 있는 모든 작업이 완료되거나 모든 작업이 완료되지 않아야 한다. 즉, 트랜잭션 내의 작업 중 하나라도 에러가 발생하면 트랜잭션 내의 모든 작업은 롤백(rollback)되어야 합니다.
 
 
 
2. 일관성(Consistency) - 트랜잭션 중에 오류 없이 유효한 데이터만 데이터베이스에 저장되어야 합니다.
 
 
 
3. 격리성(Isolation) - 트랜잭션 중에 변경된 내용이 트랜잭션이 완료되기 전까지 다른 트랜잭션에 영향을 미쳐서는 안됩니다.
 
 
 
4. 지속성(Durability) - 트랜잭션이 완료된 경우 시스템 고장이나 네트워크 에러 등으로 데이터가 유실되지 않고 정상적으로 기록되어야 한다.
 
---------------------------------------------------------------------------
 
트랜잭션 처리 하는 방법 (자바단에서 )
 
뭐 더 설명은 필요 없을 듯 ㅋㅋ
setAutoCommit(true); 이게 커밋이고
이걸 위임하지 않고 사용자가 정의 하려면
fasle를 넘겨주고 컨넥션객체에 con.commit();
이런식으로 해주어야 함
 
 
핵심포인트 / 주의사항
 
1. 디폴트는 autocommit(true); 이다.
 
2. autocommit(false); 를 선언한후 작업이 다 완료되면
       자동위탁모드를 다시 true로 바꿔야 한다.
 
3. catch 구문에서 rollback를 해주어야 한다.
 
4. commit or rollback를 호출하여 Connection 객체가 현재 보관 유지하는 데이터베이스 락을 해제합니다.
 
 
원자성, 일관성, 격리성, 지속성을 고려해서 트랜잭션처리를 구현해야 함.
 
트랜잭션처리 방법은 무수히 많다.
    대표적으로 가장 좋은 방법으로 뽑히고 있는 방법은 Spring기반의 방법이 추천되고 있으며
    어떠한 프레임워크 기반인지 어떠한 DB인지 여러 상황을 고려해서 트랜잭션처리를 선택해야 함.

 

https://blog.naver.com/0131v/110105753252

 

자바 트랜잭션 java transaction 설명 개념 / 방법 처리

  n트랜잭션이란   insert, update, delete 등 DB 변경에 해당하는 명령이 있는  &n...

blog.naver.com

 

반응형
LIST