+ 서킷브레이커 패턴
+
+ 서킷브레이커는 장애가 발생했을 때 단순 예외처리를 하는것이 아니고, 특정 가용률 아래로 떨어지면 잠시동안 아예 시도를 하지 않는다.
+ 레디스를 예로들면 레디스 서버가 다운되어서 접근이 불가능하면, 잠시 레디스의 접근 자체를 하지 않는 방식으로 장애 전파를 차단한다.
+
+
+
+
+2. 메모리 관리
- 싱글 스레드의 특성상, 한 번에 하나의 명령만 처리할 수 있기 때문에, 처리하는데 시간이 오래 걸리는 요청, 명령은 피해야 한다.
+ - 인메모리 데이터 스토어이므로 메모리 부족현상이 일어날 수 있다.
+ - 따라서 하나의 인스턴스에 서버 어플리케이션, db어플리케이션, 레디스를 한 번에 두면 메모리 부족이 일어날 수 있으므로 따로 두는 것이 좋다.
+3. 정합성 관리
+ - 레디스 뿐만 아니라 캐시를 사용하는 경우, 실제 데이터베이스와는 다른 데이터가 조회될 수 있는 문제가 발생할 수 있다.
+ - 비즈니스 요구사항에 맞춰 어느정도까지 실시간성을 맞출지 고려하여 적절하게 설정하는 전략이 필요하다.
+
+### 캐시 이외에 Redis가 주로 쓰이는 곳
+1. 세션 스토어 : 사용자 세션 정보를 관리
+2. 메시지 브로커 : 여러 시스템 간에 메시지를 전달하는 기능
+
diff --git "a/CS Deep Dive/Database/\355\212\270\353\236\234\354\236\255\354\205\230 \352\262\251\353\246\254 \354\210\230\354\244\200(Transaction Isolation Level).md" "b/CS Deep Dive/Database/\355\212\270\353\236\234\354\236\255\354\205\230 \352\262\251\353\246\254 \354\210\230\354\244\200(Transaction Isolation Level).md"
index 56b9cfd0..020f4709 100644
--- "a/CS Deep Dive/Database/\355\212\270\353\236\234\354\236\255\354\205\230 \352\262\251\353\246\254 \354\210\230\354\244\200(Transaction Isolation Level).md"
+++ "b/CS Deep Dive/Database/\355\212\270\353\236\234\354\236\255\354\205\230 \352\262\251\353\246\254 \354\210\230\354\244\200(Transaction Isolation Level).md"
@@ -16,16 +16,22 @@
- 트랜잭션 A가 문제가 생겨 ROLLBACK을 해도 B는 계속 로직을 수행한다.
- 데이터 부정합이 발생한다.
-**2. Non-Repeatable Read**
+**2. Dirty Write**
+
+**3. Read Skew1**
- 트랜잭션 A가 같은 쿼리를 반복해서 수행하는 도중, 트랜잭션 B가 A의 실행에 사용하는 값을 변경한다.
- 트랜잭션 A가 같은 쿼리를 수행하는데에도 B에 의해 다른 결과가 나온다.
- 같은 쿼리문에 대해 일관된 결과값이 나와야하는 `REPEATABLE READ` 정합성을 만족하지 못한다.
-**3. Phantom Read**
+**4. Lost Update**
- 한 트랜잭션 내에서 같은 쿼리를 두 번 실행했는데, 첫 번째 쿼리에서 없던 유령(Phantom) 레코드가 두 번째 쿼리에서 나타나는 현상이다.
+**5. Read Skew2**
+
+
+