트랜잭션
- 데이터베이스에서 여러 개의 작업을 하나의 논리적인 단위로 묶어서 처리하는 개념
트랜잭션은 크게 4가지로 분류됨
- 독립성: 동시에 실행되는 여러 트랜잭션은 서로 영향을 미치지 않고, 각각 독립적으로 실행.
- 일관성: 트랜잭션이 실행 전후에 데이터베이스는 일관된 상태를 유지하고, 일관성 규칙을 준수.
- 원자성: 모든 작업은 성공 또는 실패로 전체적인 트랜잭션의 결과가 결정되며, 실패 시 롤백하여 이전 상태로 복구.
- 영속성: 트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 저장되고 시스템 장애가 발생해도 보존.
스프링 부트에서 트랜잭션
- 스프링 부트에서 트랜잭션은 데이터베이스 작업을 논리적으로 묶어서 안정성과 일관성을 유지하는 기능.
- 여러 개의 데이터베이스 작업이 하나의 단위로 실행되며, 모두 성공하거나 실패할 때 롤백되어 이전 상태로 돌아감.
@Transactional
- 트랜잭션을 사용하기 위한 어노테이션.
- 메서드 레벨 또는 클래스 레벨에 적용.
- 해당 어노테이션을 붙이면 트랜잭션 경계 내에서 실행되며, 메서드가 호출될 때 트랜잭션이 시작되고, 메서드가 완료될 때 트랜잭션이 커밋되거나 롤백됨.
- 별도의 트랜잭션 관리 코드를 작성하지 않고도 트랜잭션을 선언적으로 사용할 수 있음.
- 여러 데이터베이스 작업을 하나의 트랜잭션으로 묶을 수 있어 데이터 일관성을 유지하고 예외 처리를 간편하게 할 수 있음.
쌤 저 구글,네이버,카카오 로그인 성공했어요!><