티스토리 뷰

Backend/Spring

#25 트랜잭션 - 이론

RadderNepa 2023. 9. 25. 00:24

- 예전에 배우긴 했는데 오랜만에 다시 한 번 복습하는 느낌으로 강의를 들었다.

트랜잭션 : 쪼갤 수 없는 업무의 최소 단위

ex) 쇼핑몰 사이트에서 고객이 상품을 주문하면 아래와 같은 일련의 과정이 필요하다.

1. 주문 기록 저장
2. 포인트 저장
3. 결제 기록 저장

인프런 - 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지!(최태현)


- 만약 위의 3가지 과정을 진행하는 도중 error가 발생하면 어떻게 될까?   ex) 주문 기록과 포인트 저장까지는 잘 됐는데 결제 기록을 저장하는 도중 오류가 발생

- 고객 입장에서는 주문도 됐고 포인트까지 저장됐는데 정작 결제 기록을 찾을 수 없는 황당한 상황이 발생한다.


- 이러한 문제를 어떻게 해결할 수 있을까?

- 업무(비즈니스 로직)와 관련된 모든 SQL을 성공시키거나  →  모두 다 성공하거나
- 그 중 하나라도 실패하면 모두 실패시킨다.  →  모두  실패한다.

- 위와 같이 쪼갤 수 없는 하나의 업무 단위를 트랜잭션이라고 한다.

[MySQL 기준]
트랜잭션 시작 : start transaction;
트랜잭션 정상 종료(SQL 반영) : commit;
트랜잭션 실패 처리(SQL 미반영) : rollback;

인프런 - 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지!(최태현)

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

#27 영속성 컨텍스트  (1) 2023.09.28
#26 JPA를 이용해 SQL 날리기 with Spring Data JPA2  (0) 2023.09.26
#24 JPA를 이용해 SQL 날리기 with Spring Data JPA  (0) 2023.09.19
#23 Entity Class  (0) 2023.09.10
#22 JPA - 등장  (0) 2023.09.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함