Java

[Java Spring] 트랜잭션 (Transaction)

씬프 2021. 4. 14. 11:07
반응형

트랜잭션이란 데이터 베이스 상태를 변환시키는 작업의 단위를 말한다.

데이터베이스 상태를 변환시키는 것은 SQL로 DB에 접근하는 행위를 말한다.

작업의 단위는 개발자가 설계하는 것으로, 하나의 논리적 기능을 수행하기 위한 단위를 말한다.

 

예를 들어, 게시판에 글을 작성하면 등록된 글이 조회되는 하나의 논리적 기능이 있다고 하면

글을 작성할 때, DB에 INSERT로 데이터를 입력하고, SELECT을 통해 조회하여 사용자에게 출력할 것이다.

INSERT부터 SELECT까지 작업의 단위가 되는 것이다.

 

좋은 개발자는 좋은 트랜잭션 설계가 필요하다.

특징

트랜잭션은 4가지 특징을 갖는다.

 

1) 원자성 : 트랜잭션이 DB에 반영될 때, 모두 반영되거나 전혀 반영되지 않아야 한다. 부분적으로 반영되면 안된다.

2) 일관성 : 항상 일관성 있는 처리가 되어야 한다.

3) 독립성 : 하나의 트랜잭션이 수행될 때, 다른 트랜잭션이 끼어들 수 없다.

4) 지속성 : 트랜잭션이 성공적으로 완료되면 영구적으로 반영되어야 한다.

 

Commit, Rollback

Commit : 트랜잭션이 성공적으로 완료되었음을 보여준다.

Rollback : 트랜잭션이 비정상적으로 종료될 경우 트랜잭션을 처음부터 다시 하거나, 부분적으로 완료된 것을 취소시킨다.

 

 

참조글

"트랜잭션이란?", 2021년 4월 14일, mommoo.tistory.com/62

'Java' 카테고리의 다른 글

[Java Spring] TestRestTemplate  (0) 2021.04.19
[Java Spring] 빈 생명주기 (Bean Life cycle)  (0) 2021.04.16
[Java] 롬복 Lombok  (0) 2021.04.13
[Java Spring] JPA Auditing  (0) 2021.04.10
[Java Spring] 컨테이너와 IoC, DI  (0) 2021.04.08