Part 1. Spring Framework
Ch 03. 예제를 만들며 이해하는 스프링 웹 어플리케이션 핵심 기술
06. 트랜잭션의 개념
- ACID
Atomic - ex) A라는 사람의 계좌에서 B라는 사람의 계좌에 돈을 송금할 때 두 작업이 모두 이뤄지지 못했다면,
모든 과정을 롤백함
Consistency - 일관성, 모든 DB Table의 자료는 정해진 규칙에 맞춰 저장이 되어있어야함.
Transaction이 종료되는 시점에서는 Consistency가 일치해야함
ex) 계좌의 잔액은 0원 이하일 수 없으므로 commit이 끝난 상태에서 계좌 잔액이 0원 미만일 수 없다.
Isolation - 고립성
Durability - 지속성, commit이력은 항상 기록됨.
package com.fastcampus.programmin.dmaker.service;
import com.fastcampus.programmin.dmaker.Repository.DeveloperRepository;
import com.fastcampus.programmin.dmaker.entity.Developer;
import com.fastcampus.programmin.dmaker.type.DeveloperLevel;
import com.fastcampus.programmin.dmaker.type.DeveloperSkillType;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
@Service
@RequiredArgsConstructor
public class dMakerService {
private final DeveloperRepository developerRepository;
@Transactional
public void createDeveloper(){
Developer developer = Developer.builder()
.developerLevel(DeveloperLevel.JUNIOR)
.developerSkillType(DeveloperSkillType.FRONT_END)
.experienceYears(2)
.name("Olaf")
.age(5)
.build();
developerRepository.save(developer);
}
}
<DMakerService.java>
----------------------------------------------------------------------------------------------------------------------------------
'[패스트캠퍼스] Spring' 카테고리의 다른 글
패스트캠퍼스 챌린지 22일차 (0) | 2022.02.14 |
---|---|
패스트캠퍼스 챌린지 21일차 (0) | 2022.02.13 |
패스트캠퍼스 챌린지 19일차 (0) | 2022.02.11 |
패스트캠퍼스 챌린지 18일차 (0) | 2022.02.10 |
패스트캠퍼스 챌린지 17일차 (0) | 2022.02.09 |
댓글