[Real MySQL 8.0] 트랜잭션과 잠금
·
개발서적
트랜잭션 : 작업의 완전성 보장논리적인 작업 셋을 모두 완벽하게 처리처리하지 못할 경우, 원 상태로 복구작업의 일부만 적용되는 현상(Partial update) X데이터의 정합성을 보장하기 위한 기능잠금 : 동시성을 제어하기 위한 기능한 시점에서 하나의 커넥션만 자원 변경 가능📌  트랜잭션논리적인 작업 셋 자체가 100% 적용되거나 아무것도 적용되지 않아야 함을 보장쿼리 중 일부라도 오류가 발생하면 전체를 원 상태로 만든다.1) 처리 시작 - 데이터베이스 커넥션 생성 - 트랜잭션 시작2) 로그인 여부 확인3) 글쓰기 내용 오류 확인4) 입력 내용 DBMS에 저장5) 첨부 파일 정보 DBMS에 저장6) 저장된 내용 또는 기타 정보 DBMS에서 조회7) 게시글 등록에 대한 알림 메일 발송8) 알림 메일 발..
SELECT 작업에 트랜잭션은 필요할까?
·
스프링
우선 트랜잭션은 간단하게 설명하면, 하나의 안전한 작업을 보장합니다.계좌이체를 예시로 들어보겠습니다.A 잔고 5000원 감소B 잔고 5000원 증가A 잔고에서 5000원이 감소하고 나서, B 잔고가 5000원 증가하기 전에 이 과정이 실패했다고 가정해봅시다. 그러면 A 잔고에서만 5000원이 감소하는 문제가 발생합니다.이 때 데이터베이스가 제공하는 트랜잭션 기능을 사용하면, 둘 다 함께 성공해야 저장하고, 중간에 실패한다면 이전의 상태로 돌아갑니다. 이 때 데이터베이스에 정상 반영하는 것을 커밋(Commit), 작업 중 하나라도 실패해서 이전 상태로 돌아가는 것을 롤백(Rollback)이라고 합니다.스프링에서는 @Transactional 을 통해 트랜잭션을 수행합니다.그런데 ‘단순히 DB에 조회하는 작업..