728x90
반응형

 

트랜잭션의 정의 

 

트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.

 

 

예시)

A라는 사람이 B라는 사람에게 사과 1개를 주고  B가 그 사과를 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 사과를 건네 주었으나 B는 사과를 받지 못했다면 그 거래는 성립되지 않는다. 이처럼 A가 사과를 주는 행위와 B가 사과를 받는 행위는 별개로 분리될 수 없으며 하나의 거래내역으로 처리되어야 하는 단일 거래이다. 이런 거래의 최소 단위를 트랜잭션이라고 한다. 

 

트랜잭션의 4가지 특성

1. Atomicity (원자성)

  • 트랜잭션의 연산은 반드시 모두 반영되도록 완료되거나, 아니면 전혀 반영되지 않도록 복구되어야한다.
  • (ALL OR NOTHING)

2. Consistency (일관성)

  • 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

3. Isolation (독립성, 격리성)

  • 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.

4. Durablility (영속성, 지속성) 

  • 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

 

@Transactional 어노테이션

  • 클래스나 메서드에서 사용할 경우, 해당 범위 내 매서드가 트랜잭션이 되도록 보장해준다. 
  • @Transactional으로 생성된 프록시 객체는 @Transactional이 적용된 메소드가 호출될 경우,
  • PlatformTransactionManager를 사용하여 트랜잭션을 시작하고, 정상 여부에 따라 Commit/Rollback 동작을 수행한다.

 

 

 

 

참고

출처: https://data-make.tistory.com/738 [Data Makes Our Future:티스토리]

https://hanamon.kr/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98%EC%9D%98-acid-%EC%84%B1%EC%A7%88/

 

[데이터베이스] 트랜잭션의 ACID 성질 - 하나몬

트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛을 말한다. 데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다. ACID는 데이터베이스 내에서 일어나는 하나의 트랜잭션(transaction)의 안

hanamon.kr

http://wiki.hash.kr/index.php/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98

 

트랜잭션 - 해시넷

트랜잭션(transaction)이란 "쪼갤 수 없는 업무 처리의 최소 단위"를 말한다. 거래내역이라고도 한다. '트렌젝션'이 아니라 '트랜잭션'이 올바른 표기법이다. 영어로 간략히 Tx라고 표기하기도 한다.

wiki.hash.kr

 

728x90
반응형

'IT Diary > # JPA' 카테고리의 다른 글

JPA ( Java Persistence API ) 의 정의  (0) 2022.01.08
728x90
반응형

 

1. JPA의 정의

 

JPA(Java Persistence API)는 ORM(Object-Relation Mapping) 전문가가 참여한 EJB 3.0(Enterprise Java Beans) 스펙 작업에서 기존 EJB ORM 표준으로 사용되던 엔티티빈(Entity Bean) 을 대체하여 나온 ORM 표준이다. 기존 엔티티빈이 EJB 컨테이너에 의존하던것에 비해 POJO 방식 프레임워크로 개발되었으며, 이로인해 Java EE 뿐 아니라 JAVA SE 에서도 사용 가능하며 활용도가 높다.

 

2. JPA 동작원리

 

 

 

자바 ORM 기술에 대한 표준명세 

ORM ( Objecet Relational Mapping )  객체-관계 맵핑의 줄임말 

OOP(Object Oriented Programming) 에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB(Relation Database) 에서 쓰이는 데이터인 테이블을 자동으로 매핑하는것을 의미

 

DB와 객체는 엄연히 다른 존재이므로 DB를 객체화 시켜서 사용할 수 있게 하는게 JPA의 장점이라고 생각한다. 

 

DB  <-  mapping -> Object 필드 

 

 

 

 

참조: https://geonlee.tistory.com/207

 

ORM(Object Relational Mapping)이 뭘까? 🤔

ORM이란? ORM은 Object Relational Mapping 즉, 객체-관계 매핑의 줄임말이다. 객체-관계 매핑을 풀어서 설명하자면 우리가 OOP(Object Oriented Programming)에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB(R..

geonlee.tistory.com

참조: https://velog.io/@adam2/JPA%EB%8A%94-%EB%8F%84%EB%8D%B0%EC%B2%B4-%EB%AD%98%EA%B9%8C-orm-%EC%98%81%EC%86%8D%EC%84%B1-hibernate-spring-data-jpa

 

JPA는 도대체 뭘까? (orm, 영속성, hibernate, spring-data-jpa)

JPA는 도대체 무엇일까요? orm, jdbc, 영속성, hibernate, ... 관련 지식까지 모두 파해쳐봅니다.

velog.io

 

728x90
반응형

'IT Diary > # JPA' 카테고리의 다른 글

@Transactional 어노테이션  (0) 2022.07.27

+ Recent posts