일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- GIT
- fetch
- RequestParam
- 백엔드
- java version
- git push
- 빌드
- docker
- axios
- vue life cycle
- VUE
- transaction
- 도커
- RequestBody
- 프론트엔드
- Java
- Vue.js
- Spring AOP
- PathVariable
- 트랜잭션
- maven
- 비동기통신
- github
- 개발자
- 자바 버전
- aop
- gradle
- Today
- Total
미소의 세상
트랜잭션 쉽게 이해하기 본문
* 트랜잭션(Transaction)
- 트랜잭션이란 '거래'라는 뜻으로 데이터베이스 내에서 하나의 그룹으로 처리되어야 하는 명령문들을 모아 놓은 논리적인 작업 단위이다.
- 데이터베이스 응용 프로그램은 트랜잭션들의 집합으로 정의 할 수 있다.
- 여러 단계의 처리를 하나의 처리처럼 다루는 기능이다.
- 여러 개의 명령어의 집합이 정상적으로 처리되면 정상 종료된다.
- 하나의 명령어라도 잘못되면 전체 취소된다.
- 트랜잭션을 쓰는 이유는 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위함이다.
* 트랜잭션 필요성
1. 트랜잭션은 '거래'라는 뜻으로, 은행에서 입금과 출금을 하는 그 거래를 뜻한다.
2. A 은행에서 출금하여 B은행으로 송금한다고 가정하자.
3. 송금한느 중에 알 수 없는 오류가 발생하여 A은행 계좌에서 돈이 빠져 나갔는데 B은행 계좌에 입금되지 않았다.
4. 이때, 우리는 A은행 계좌의 출금을 취소하거나, 출금된 금액만큼 B은행 계좌로 다시 송금하면 된다.
5. 하지만 이 방법은 번거롭고 더 심한 오류를 발생시킬수 있다.
6. 그래서 생각해낸 해결책이, 거래가 성공적으로 모두 끝난 후에야 이를 완전한 거래로 승인하고, 거래 도중 뭔가 오류가 발생했을 때는 이 거래를 아예 처음부터 없었던 거래로 되돌리는 것이다.
7. 이렇게 거래의 안전성을 확보하는 방법이 트랜잭션이다.
8. 데이터베이스에선 테이블에서 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나 갱신, 삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌린다.
9. 데이터베이스에선 처리 과정이 모두 성공했을 때만 최종적으로 데이터베이스에 반영한다.
'SQL' 카테고리의 다른 글
오라클 CASE WHEN 예제 (0) | 2022.06.03 |
---|---|
Mybatis forEach 사용 예시 (0) | 2022.06.03 |
Mybatis resultMap 사용하는 법 (0) | 2022.06.03 |
프로시저의 장단점 (0) | 2022.05.11 |
Mybatis #, $ 차이 (0) | 2022.05.04 |