[DB] 군대로 알아보는 트랜잭션 - 4. 지속성 편

5972 단어 DatabaseDatabase

드디어 ACID의 마지막인 Durability, 지속성입니다.
그런데 지속성은 사실 별로 다룰 내용이 없습니다. 트랜잭션을 통해 DB에 반영된 내용은 유지되어야 한다는 이야기입니다.

그래도 유종의 미를 거두기 위해 짧은 코드를 살펴보겠습니다.

public class MilitaryEx1 {
    public static void main(String[] args) throws InterruptedException {
        MilitaryDB militaryDB = new MilitaryDB();

        militaryDB.입대("Jake");
        militaryDB.입대("Sam");
        militaryDB.입대("Kim");
        militaryDB.입대("Park");
        militaryDB.입대("Lee");

        militaryDB.훈련소로_입장();
    }
}

class MilitaryDB{
    int idx = 0;
    HashMap<Integer, String> newSoldiers = new HashMap<>();

    public void 입대(String name) {
        newSoldiers.put(idx++, name);
    }

    public void 훈련소로_입장() {
        System.out.println("훈련병들은 차례로 훈련소로 입장한다, 실시!");

        for (String name : newSoldiers.values()) {
            System.out.println(name + " 훈련병, 훈련소로 입장!");
        }

    }

}

  • 훈련소로 입소한 훈련병들 목록은 한 번 반영된 후에는 계속해서 유지되어야 합니다
  • 훈련소로_입장() 메서드를 언제 실행하더라도, 새로운 트랜잭션이 발생하지 않는 한 동일한 결과를 얻을 수 있어야 합니다
  • 즉, DB에 반영된 트랜잭션은 계속해서 DB에 남아있어야 합니다

좋은 웹페이지 즐겨찾기