본문 바로가기

Spring/JPA

JPA- Transaction

트랜잭션

 트랜잭션은 데이터 베이스의 상태를 바꾸기 위해서 수행하는 작업의 단위이다. 그리고 데이터 베이스의 상태를 바꾸는 것은 SQL(select, insert, update, delete)문을 사용하여 데이터 베이스에 접근하는 것을 의미한다.

 

 게시판을 예로 들어보자.

 게시판 사용자는 게시글을 작성하고, 올리기 버튼을 누른다. 그 후에 다시 게시판에 돌아왔을때, 게시판은 자신의 글이 포함된 업데이트된 게시판을 보게 된다.

이러한 상황을 데이터베이스 작업으로 옮기면, 사용자가 올리기 버튼을 눌렀을 시, Insert 문을 사용하여

사용자가 입력한 게시글의 데이터를 옮긴다. 그 후에, 게시판을 구성할 데이터를 다시 Select 하여 최신 정보로

유지한다. 여기서 작업의 단위는 insert문과 select문 둘다 를 합친것이다. 이러한 작업단위를 하나의 트랜잭션이라 한다.

 

트랜잭션의 커밋

 커밋은 하나의 트랜잭션이 끝났고, 데이터 베이스가 일관성있는 상태를 유지할 때, 하나의 트랜잭션이 종료되었음을 알려주는 연산이다. 커밋 연산을 사용하면 트랜잭션 내역이 로그에 남게 되고, 후에 롤백 연산을 수행했던 트랜잭션 단위로 수행하는데 도움을 준다.

 

'Spring > JPA' 카테고리의 다른 글

JPA- flush와 영속성 관리  (0) 2023.02.28
JPA- 영속성 컨텍스트  (0) 2023.02.28
JPA- EntityManager.find()로 조회하기  (0) 2023.02.16
JPA- 관련 개념 정리  (0) 2023.02.16
JPA- 지연 로딩과 즉시 로딩  (0) 2023.02.16