ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 패스트캠퍼스 챌린지 5일차
    JAVA/Spring 2021. 11. 5. 22:27

    1. Transaction

    트랜잭션의 특징을 정의한 말로 ACID라는 말이 있다.

    • Atomic : 원자성
      트랜잭션의 원자성 덕분에 은행 입출금 시, 한 쪽에서는 돈이 빠져나갔는데 다른 쪽에서 돈을 받지 못하는 등의 문제가 발생하지 않는다. 트랜잭션의 가장 중요한 덕목 중 하나이다.
    • Consistency :  일관성
      모든 DB 테이블의 자료들은 정해진 규칙에 맞춰서 자료가 저장되어야만 한다. 트랜잭션이 종료되는 지점에는 꼭 자료들의 일관성이 맞춰져있어야만 한다.

      예를 들어, '일반적인 은행 계좌의 잔액은 0원 이하로 될 수 없다' 등의 규칙이 트랜잭션이 끝난 후에 꼭 지켜져 있어야만 한다.
    • Isolation : 고립성 
      DB를 처리하는 방법들에 따라서 Isolation 레벨이 달라진다. Isolation 레벨이 높아지면 DB에 접근하기가 까다롭고 자료를  다루기가 힘들다. 그러나 Isolation 레벨이 너무 낮아지게 되면 DB의 정확도에 문제가 생긴다.
      위와 같은 이유로 DB의 쓰임에 따라 Isolation 레벨을 적정한 수준으로 맞추는 로직을 짜주어야 한다.
    • Durability : 내구성, 지속성
      DB에 데이터를 튼튼하게 저장해준다는 의미로 사용. Durability는 Commit이 되는 시점에서 Commit 이력을 무조건 남기게끔 하며 DB에 데이터를 저장할 때 우선적으로 로그를 남긴 후에 데이터를 저장한다. 로그를 남기고 데이터 저장 중에 오류가 나게 되면 로그는 그대로 남아있게 된다. 이 로그에 대한 처리가 수행되기 전까지 해당 DB에 대해서는 어떠한 작업도 할 수 없다.

     

    @Service
    @RequiredArgsConstructor
    public class DMakerService {
        private final DeveloperRepository developerRepository;
    
        // @Transactional 어노테이션을 달아서 데이터 손상을 보호한다.
        @Transactional
        public void createDeveloper(){
            Developer developer = Developer.builder()
                    .developerLevel(DeveloperLevel.JUNIOR)
                    .developerSkillType(DeveloperSkillType.FRONT_END)
                    .experienceYears(2)
                    .name("Harry")
                    .age(31)
                    .build();
    
            developerRepository.save(developer);
        }
    }

     

     

    본 포스팅은 패스트 캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
    https://bit.ly/3FVdhDa

     

    수강료 100% 환급 챌린지 | 패스트캠퍼스

    딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

    fastcampus.co.kr

     

    'JAVA > Spring' 카테고리의 다른 글

    패스트캠퍼스 챌린지 8일차  (0) 2021.11.08
    패스트캠퍼스 챌린지 7일차  (0) 2021.11.07
    패스트캠퍼스 챌린지 6일차  (0) 2021.11.06
    패스트캠퍼스 챌린지 4일차  (0) 2021.11.04
    패스트캠퍼스 챌린지 3일차  (0) 2021.11.03

    댓글

Designed by Tistory.