3.7.1 트랜잭션

yeonseong Jo·2023년 7월 7일
0

SEB_BE_45

목록 보기
39/47
post-thumbnail

DB와 SQL에 대해 배울 때
트랜잭션도 잠깐 배웠었다.

jpa에 트랜잭션을 적용, 활용하기 위해
이 트랜잭션에 대해 좀 더 알아보고자 한다.


Transaction

트랜잭션은 기본적으로
All or Nothing의 구조를 가지고 있다
한 트랜잭션에 얼마나 많은 작업이 포함되어있든간에
모두 통과해야 성공하는 걸로 간주한다는 것이다.

반대로 작업중 하나라도 실패한다면
전후 작업과 관계없이 트랜잭션은 실패다.

트랜잭션이
DB에서만 한정된 키워드는 아니라는 것을 명심 해야 한다.

(포스팅과 알림기능, 좋아요와 알림기능 등)

commit

  • 트랜잭션에 모든 작업을 최종적으로 DB에 반영하는 명령어로
    commit 명령을 수행하면, 트랜잭션은 종료된다.

rollback

  • 작업 중 오류가 발생했을 때,
    이전 작업들의 수행내용을 취소한다.

ACID

이 트랜잭션은
ACID라는4개의 원칙을 따른다.

Atomicity

atomicity는 원자성으로
작업을 더이상 쪼갤 수 없기에,
트랜잭션의 기본 원칙인 All or Nothing을 의미한다.

Consistency

consistency는 일관성으로
트랜잭션이 성공적으로 종료될 때,
비지니스 로직에서 정의한 규칙대로
일관성 있게 DB에 반영이 된다는 것을 의미한다.

Isolation

isolation은 격리성으로
여러개의 트랜잭션이 동시에 실행되더라도
각 트랜잭션은 독립적이어서
서로 영향을 주지 않는 다는 것을 의미한다.

Durability

durability는 지속성으로
트랜잭션이 성공적으로 종료되면
해당 변경사항은 DB에 저장되어
지속적으로 유지된다는 것을 의미한다.

profile
뒤(back)끝(end)있는 개발자

0개의 댓글