본문 바로가기
[패스트캠퍼스] Spring

패스트캠퍼스 챌린지 20일차

by 엑츄얼리 2022. 2. 12.

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>

 

----------------------------------------------------------------------------------------------------------------------------------

 

 

https://bit.ly/37BpXic

댓글