트랜잭션과 @Transactional

혜지·2024년 6월 2일
0

트랜잭션

  • 데이터베이스에서 여러 개의 작업을 하나의 논리적인 단위로 묶어서 처리하는 개념

트랜잭션은 크게 4가지로 분류됨

  • 독립성: 동시에 실행되는 여러 트랜잭션은 서로 영향을 미치지 않고, 각각 독립적으로 실행.
  • 일관성: 트랜잭션이 실행 전후에 데이터베이스는 일관된 상태를 유지하고, 일관성 규칙을 준수.
  • 원자성: 모든 작업은 성공 또는 실패로 전체적인 트랜잭션의 결과가 결정되며, 실패 시 롤백하여 이전 상태로 복구.
  • 영속성: 트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 저장되고 시스템 장애가 발생해도 보존.

스프링 부트에서 트랜잭션

  • 스프링 부트에서 트랜잭션은 데이터베이스 작업을 논리적으로 묶어서 안정성과 일관성을 유지하는 기능.
  • 여러 개의 데이터베이스 작업이 하나의 단위로 실행되며, 모두 성공하거나 실패할 때 롤백되어 이전 상태로 돌아감.

@Transactional

  • 트랜잭션을 사용하기 위한 어노테이션.
  • 메서드 레벨 또는 클래스 레벨에 적용.
  • 해당 어노테이션을 붙이면 트랜잭션 경계 내에서 실행되며, 메서드가 호출될 때 트랜잭션이 시작되고, 메서드가 완료될 때 트랜잭션이 커밋되거나 롤백됨.
  • 별도의 트랜잭션 관리 코드를 작성하지 않고도 트랜잭션을 선언적으로 사용할 수 있음.
  • 여러 데이터베이스 작업을 하나의 트랜잭션으로 묶을 수 있어 데이터 일관성을 유지하고 예외 처리를 간편하게 할 수 있음.

2개의 댓글

comment-user-thumbnail
2024년 6월 2일

쌤 저 구글,네이버,카카오 로그인 성공했어요!><

1개의 답글