diff --git "a/\354\265\234\354\212\271\354\227\260/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/DI\353\245\274 \354\234\204\355\225\234 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264 \354\236\221\354\204\261.md" "b/\354\265\234\354\212\271\354\227\260/vol1/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/DI\353\245\274 \354\234\204\355\225\234 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264 \354\236\221\354\204\261.md"
similarity index 99%
rename from "\354\265\234\354\212\271\354\227\260/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/DI\353\245\274 \354\234\204\355\225\234 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264 \354\236\221\354\204\261.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/DI\353\245\274 \354\234\204\355\225\234 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264 \354\236\221\354\204\261.md"
index 231a8d5..5ad1b3a 100644
--- "a/\354\265\234\354\212\271\354\227\260/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/DI\353\245\274 \354\234\204\355\225\234 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264 \354\236\221\354\204\261.md"
+++ "b/\354\265\234\354\212\271\354\227\260/vol1/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/DI\353\245\274 \354\234\204\355\225\234 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264 \354\236\221\354\204\261.md"
@@ -25,7 +25,7 @@ BeanDefinition이란?
```
#### 동작 방식
-
+
1. `빈 설정 메타정보`가 담긴 xml 파일 or 애노테이션 같은 리소스를 전용 리더를 통해 읽는다
2. BeanDefinition 타입의 오브젝트로 변환한다
3. IoC 컨테이너는 이 BeanDefinition 메타정보를 이용해 빈을 생선한다
diff --git "a/\354\265\234\354\212\271\354\227\260/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/\352\267\270\353\246\2741-8 \354\273\250\355\205\214\354\235\264\353\204\210\352\260\200 \355\231\234\354\232\251\355\225\230\353\212\224 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264.png" "b/\354\265\234\354\212\271\354\227\260/vol1/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/\352\267\270\353\246\2741-8 \354\273\250\355\205\214\354\235\264\353\204\210\352\260\200 \355\231\234\354\232\251\355\225\230\353\212\224 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/\352\267\270\353\246\2741-8 \354\273\250\355\205\214\354\235\264\353\204\210\352\260\200 \355\231\234\354\232\251\355\225\230\353\212\224 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/10\354\236\245 Ioc\354\273\250\355\205\214\354\235\264\353\204\210\354\231\200 DI/1_2 IOC/\352\267\270\353\246\2741-8 \354\273\250\355\205\214\354\235\264\353\204\210\352\260\200 \355\231\234\354\232\251\355\225\230\353\212\224 \353\271\210 \354\204\244\354\240\225 \353\251\224\355\203\200\354\240\225\353\263\264.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_1\354\264\210\353\202\234\352\260\220 DAO~1_3DAO\354\235\230 \355\231\225\354\236\245.md" "b/\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_1\354\264\210\353\202\234\352\260\220 DAO~1_3DAO\354\235\230 \355\231\225\354\236\245.md"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_1\354\264\210\353\202\234\352\260\220 DAO~1_3DAO\354\235\230 \355\231\225\354\236\245.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_1\354\264\210\353\202\234\352\260\220 DAO~1_3DAO\354\235\230 \355\231\225\354\236\245.md"
diff --git "a/\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_4\354\240\234\354\226\264\354\235\230 \354\227\255\354\240\204 ~ 1.8 XML\354\235\204 \354\235\264\354\232\251\355\225\234 \354\204\244\354\240\225.md" "b/\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_4\354\240\234\354\226\264\354\235\230 \354\227\255\354\240\204 ~ 1.8 XML\354\235\204 \354\235\264\354\232\251\355\225\234 \354\204\244\354\240\225.md"
similarity index 97%
rename from "\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_4\354\240\234\354\226\264\354\235\230 \354\227\255\354\240\204 ~ 1.8 XML\354\235\204 \354\235\264\354\232\251\355\225\234 \354\204\244\354\240\225.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_4\354\240\234\354\226\264\354\235\230 \354\227\255\354\240\204 ~ 1.8 XML\354\235\204 \354\235\264\354\232\251\355\225\234 \354\204\244\354\240\225.md"
index 6dd4df2..fce867c 100644
--- "a/\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_4\354\240\234\354\226\264\354\235\230 \354\227\255\354\240\204 ~ 1.8 XML\354\235\204 \354\235\264\354\232\251\355\225\234 \354\204\244\354\240\225.md"
+++ "b/\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/1_4\354\240\234\354\226\264\354\235\230 \354\227\255\354\240\204 ~ 1.8 XML\354\235\204 \354\235\264\354\232\251\355\225\234 \354\204\244\354\240\225.md"
@@ -40,7 +40,7 @@ main() 메소드와 같이 프로그램이 시작되는 지점에서 다음에
## 오브젝트 수준의 단순한 예제
-
+
``` java
public class DaoFactory {
@@ -81,7 +81,7 @@ public class UserDaoTest {
- DI: 스프링이 제공하는 차별적인 IoC방식인 `의존관계 주입`을 나타내는 용어
### 애플리케이션 컨텍스트 동작 방식
-
+
**방식 1- java 클래스 파일로 설정**
``` java
diff --git "a/\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\274 1-8 \354\230\244\353\270\214\354\240\235\355\212\270 \355\214\251\355\206\240\353\246\254\353\245\274 \355\231\234\354\232\251\355\225\234 \352\265\254\354\241\260.png" "b/\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\274 1-8 \354\230\244\353\270\214\354\240\235\355\212\270 \355\214\251\355\206\240\353\246\254\353\245\274 \355\231\234\354\232\251\355\225\234 \352\265\254\354\241\260.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\274 1-8 \354\230\244\353\270\214\354\240\235\355\212\270 \355\214\251\355\206\240\353\246\254\353\245\274 \355\231\234\354\232\251\355\225\234 \352\265\254\354\241\260.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\274 1-8 \354\230\244\353\270\214\354\240\235\355\212\270 \355\214\251\355\206\240\353\246\254\353\245\274 \355\231\234\354\232\251\355\225\234 \352\265\254\354\241\260.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\274 1-9 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\273\250\355\205\215\354\212\244\355\212\270\352\260\200 \353\217\231\354\236\221\355\225\230\353\212\224 \353\260\251\354\213\235.png" "b/\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\274 1-9 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\273\250\355\205\215\354\212\244\355\212\270\352\260\200 \353\217\231\354\236\221\355\225\230\353\212\224 \353\260\251\354\213\235.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\274 1-9 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\273\250\355\205\215\354\212\244\355\212\270\352\260\200 \353\217\231\354\236\221\355\225\230\353\212\224 \353\260\251\354\213\235.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\274 1-9 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\273\250\355\205\215\354\212\244\355\212\270\352\260\200 \353\217\231\354\236\221\355\225\230\353\212\224 \353\260\251\354\213\235.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\2741-12 \355\201\264\353\236\230\354\212\244_\354\275\224\353\223\234 \353\240\210\353\262\250\354\235\230 \354\235\230\354\241\264\352\264\200\352\263\204.png" "b/\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\2741-12 \355\201\264\353\236\230\354\212\244_\354\275\224\353\223\234 \353\240\210\353\262\250\354\235\230 \354\235\230\354\241\264\352\264\200\352\263\204.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\2741-12 \355\201\264\353\236\230\354\212\244_\354\275\224\353\223\234 \353\240\210\353\262\250\354\235\230 \354\235\230\354\241\264\352\264\200\352\263\204.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\2741-12 \355\201\264\353\236\230\354\212\244_\354\275\224\353\223\234 \353\240\210\353\262\250\354\235\230 \354\235\230\354\241\264\352\264\200\352\263\204.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\2741-13 \353\237\260\355\203\200\354\236\204 \354\213\234\354\235\230 \354\235\230\354\241\264\352\264\200\352\263\204 \354\243\274\354\236\205\352\263\274 \354\202\254\354\232\251 \354\235\230\354\241\264\352\264\200\352\263\204.png" "b/\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\2741-13 \353\237\260\355\203\200\354\236\204 \354\213\234\354\235\230 \354\235\230\354\241\264\352\264\200\352\263\204 \354\243\274\354\236\205\352\263\274 \354\202\254\354\232\251 \354\235\230\354\241\264\352\264\200\352\263\204.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\2741-13 \353\237\260\355\203\200\354\236\204 \354\213\234\354\235\230 \354\235\230\354\241\264\352\264\200\352\263\204 \354\243\274\354\236\205\352\263\274 \354\202\254\354\232\251 \354\235\230\354\241\264\352\264\200\352\263\204.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/1\354\236\245 \354\230\244\353\270\214\354\240\235\355\212\270\354\231\200 \354\235\230\354\241\264\352\264\200\352\263\204/\352\267\270\353\246\2741-13 \353\237\260\355\203\200\354\236\204 \354\213\234\354\235\230 \354\235\230\354\241\264\352\264\200\352\263\204 \354\243\274\354\236\205\352\263\274 \354\202\254\354\232\251 \354\235\230\354\241\264\352\264\200\352\263\204.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/2\354\236\245 \355\205\214\354\212\244\355\212\270/2_1UserDaoTest \353\213\244\354\213\234\353\263\264\352\270\260~2_5\355\225\231\354\212\265 \355\205\214\354\212\244\355\212\270\353\241\234 \353\260\260\354\232\260\353\212\224 \354\212\244\355\224\204\353\247\201.md" "b/\354\265\234\354\212\271\354\227\260/vol1/2\354\236\245 \355\205\214\354\212\244\355\212\270/2_1UserDaoTest \353\213\244\354\213\234\353\263\264\352\270\260~2_5\355\225\231\354\212\265 \355\205\214\354\212\244\355\212\270\353\241\234 \353\260\260\354\232\260\353\212\224 \354\212\244\355\224\204\353\247\201.md"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/2\354\236\245 \355\205\214\354\212\244\355\212\270/2_1UserDaoTest \353\213\244\354\213\234\353\263\264\352\270\260~2_5\355\225\231\354\212\265 \355\205\214\354\212\244\355\212\270\353\241\234 \353\260\260\354\232\260\353\212\224 \354\212\244\355\224\204\353\247\201.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/2\354\236\245 \355\205\214\354\212\244\355\212\270/2_1UserDaoTest \353\213\244\354\213\234\353\263\264\352\270\260~2_5\355\225\231\354\212\265 \355\205\214\354\212\244\355\212\270\353\241\234 \353\260\260\354\232\260\353\212\224 \354\212\244\355\224\204\353\247\201.md"
diff --git "a/\354\265\234\354\212\271\354\227\260/2\354\236\245 \355\205\214\354\212\244\355\212\270/\352\267\270\353\246\2742-4_JUnit\354\235\230_\355\205\214\354\212\244\355\212\270_\353\251\224\354\206\214\353\223\234_\354\213\244\355\226\211_\353\260\251\353\262\225.png" "b/\354\265\234\354\212\271\354\227\260/vol1/2\354\236\245 \355\205\214\354\212\244\355\212\270/\352\267\270\353\246\2742-4_JUnit\354\235\230_\355\205\214\354\212\244\355\212\270_\353\251\224\354\206\214\353\223\234_\354\213\244\355\226\211_\353\260\251\353\262\225.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/2\354\236\245 \355\205\214\354\212\244\355\212\270/\352\267\270\353\246\2742-4_JUnit\354\235\230_\355\205\214\354\212\244\355\212\270_\353\251\224\354\206\214\353\223\234_\354\213\244\355\226\211_\353\260\251\353\262\225.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/2\354\236\245 \355\205\214\354\212\244\355\212\270/\352\267\270\353\246\2742-4_JUnit\354\235\230_\355\205\214\354\212\244\355\212\270_\353\251\224\354\206\214\353\223\234_\354\213\244\355\226\211_\353\260\251\353\262\225.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/3\354\236\245 \355\205\234\355\224\214\353\246\277/3_1\353\213\244\354\213\234\353\263\264\353\212\224 \354\264\210\353\202\234\352\260\220 DAO_3_6\354\212\244\355\224\204\353\247\201JdbcTemplate.md" "b/\354\265\234\354\212\271\354\227\260/vol1/3\354\236\245 \355\205\234\355\224\214\353\246\277/3_1\353\213\244\354\213\234\353\263\264\353\212\224 \354\264\210\353\202\234\352\260\220 DAO_3_6\354\212\244\355\224\204\353\247\201JdbcTemplate.md"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/3\354\236\245 \355\205\234\355\224\214\353\246\277/3_1\353\213\244\354\213\234\353\263\264\353\212\224 \354\264\210\353\202\234\352\260\220 DAO_3_6\354\212\244\355\224\204\353\247\201JdbcTemplate.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/3\354\236\245 \355\205\234\355\224\214\353\246\277/3_1\353\213\244\354\213\234\353\263\264\353\212\224 \354\264\210\353\202\234\352\260\220 DAO_3_6\354\212\244\355\224\204\353\247\201JdbcTemplate.md"
diff --git "a/\354\265\234\354\212\271\354\227\260/4\354\236\245 \354\230\210\354\231\270/4_1\354\202\254\353\235\274\354\247\204 SQLException_4_2\354\230\210\354\231\270 \354\240\204\355\231\230.md" "b/\354\265\234\354\212\271\354\227\260/vol1/4\354\236\245 \354\230\210\354\231\270/4_1\354\202\254\353\235\274\354\247\204 SQLException_4_2\354\230\210\354\231\270 \354\240\204\355\231\230.md"
similarity index 99%
rename from "\354\265\234\354\212\271\354\227\260/4\354\236\245 \354\230\210\354\231\270/4_1\354\202\254\353\235\274\354\247\204 SQLException_4_2\354\230\210\354\231\270 \354\240\204\355\231\230.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/4\354\236\245 \354\230\210\354\231\270/4_1\354\202\254\353\235\274\354\247\204 SQLException_4_2\354\230\210\354\231\270 \354\240\204\355\231\230.md"
index fe03241..f282bd4 100644
--- "a/\354\265\234\354\212\271\354\227\260/4\354\236\245 \354\230\210\354\231\270/4_1\354\202\254\353\235\274\354\247\204 SQLException_4_2\354\230\210\354\231\270 \354\240\204\355\231\230.md"
+++ "b/\354\265\234\354\212\271\354\227\260/vol1/4\354\236\245 \354\230\210\354\231\270/4_1\354\202\254\353\235\274\354\247\204 SQLException_4_2\354\230\210\354\231\270 \354\240\204\355\231\230.md"
@@ -1,4 +1,4 @@
-# 범위
+g# 범위
4장 예외
4.1 사라진 SQLException
diff --git "a/\354\265\234\354\212\271\354\227\260/4\354\236\245 \354\230\210\354\231\270/dataaccessexception\354\230\210\354\231\270_\352\263\204\354\270\265\353\217\204.png" "b/\354\265\234\354\212\271\354\227\260/vol1/4\354\236\245 \354\230\210\354\231\270/dataaccessexception\354\230\210\354\231\270_\352\263\204\354\270\265\353\217\204.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/4\354\236\245 \354\230\210\354\231\270/dataaccessexception\354\230\210\354\231\270_\352\263\204\354\270\265\353\217\204.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/4\354\236\245 \354\230\210\354\231\270/dataaccessexception\354\230\210\354\231\270_\352\263\204\354\270\265\353\217\204.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/4\354\236\245 \354\230\210\354\231\270/\354\230\210\354\231\270\355\201\264\353\236\230\354\212\244_\352\263\204\354\270\265\353\217\204.png" "b/\354\265\234\354\212\271\354\227\260/vol1/4\354\236\245 \354\230\210\354\231\270/\354\230\210\354\231\270\355\201\264\353\236\230\354\212\244_\352\263\204\354\270\265\353\217\204.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/4\354\236\245 \354\230\210\354\231\270/\354\230\210\354\231\270\355\201\264\353\236\230\354\212\244_\352\263\204\354\270\265\353\217\204.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/4\354\236\245 \354\230\210\354\231\270/\354\230\210\354\231\270\355\201\264\353\236\230\354\212\244_\352\263\204\354\270\265\353\217\204.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/5_1\354\202\254\354\232\251\354\236\220\353\240\210\353\262\250\352\264\200\353\246\254\352\270\260\353\212\245\354\266\224\352\260\200_5_4\353\251\224\354\235\274\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224.md" "b/\354\265\234\354\212\271\354\227\260/vol1/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/5_1\354\202\254\354\232\251\354\236\220\353\240\210\353\262\250\352\264\200\353\246\254\352\270\260\353\212\245\354\266\224\352\260\200_5_4\353\251\224\354\235\274\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224.md"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/5_1\354\202\254\354\232\251\354\236\220\353\240\210\353\262\250\352\264\200\353\246\254\352\270\260\353\212\245\354\266\224\352\260\200_5_4\353\251\224\354\235\274\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/5_1\354\202\254\354\232\251\354\236\220\353\240\210\353\262\250\352\264\200\353\246\254\352\270\260\353\212\245\354\266\224\352\260\200_5_4\353\251\224\354\235\274\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224.md"
diff --git "a/\354\265\234\354\212\271\354\227\260/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-2UserService\354\231\200UserDao\354\235\230\355\212\270\353\236\234\354\236\255\354\205\230\354\262\230\353\246\254\352\263\274\354\240\225.png" "b/\354\265\234\354\212\271\354\227\260/vol1/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-2UserService\354\231\200UserDao\354\235\230\355\212\270\353\236\234\354\236\255\354\205\230\354\262\230\353\246\254\352\263\274\354\240\225.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-2UserService\354\231\200UserDao\354\235\230\355\212\270\353\236\234\354\236\255\354\205\230\354\262\230\353\246\254\352\263\274\354\240\225.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-2UserService\354\231\200UserDao\354\235\230\355\212\270\353\236\234\354\236\255\354\205\230\354\262\230\353\246\254\352\263\274\354\240\225.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-3\355\212\270\353\236\234\354\236\255\354\205\230\353\217\231\352\270\260\355\231\224\353\245\274\354\202\254\354\232\251\355\225\230\353\212\224\352\262\275\354\232\260\354\235\230\354\236\221\354\227\205\355\235\220\353\246\204.png" "b/\354\265\234\354\212\271\354\227\260/vol1/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-3\355\212\270\353\236\234\354\236\255\354\205\230\353\217\231\352\270\260\355\231\224\353\245\274\354\202\254\354\232\251\355\225\230\353\212\224\352\262\275\354\232\260\354\235\230\354\236\221\354\227\205\355\235\220\353\246\204.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-3\355\212\270\353\236\234\354\236\255\354\205\230\353\217\231\352\270\260\355\231\224\353\245\274\354\202\254\354\232\251\355\225\230\353\212\224\352\262\275\354\232\260\354\235\230\354\236\221\354\227\205\355\235\220\353\246\204.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-3\355\212\270\353\236\234\354\236\255\354\205\230\353\217\231\352\270\260\355\231\224\353\245\274\354\202\254\354\232\251\355\225\230\353\212\224\352\262\275\354\232\260\354\235\230\354\236\221\354\227\205\355\235\220\353\246\204.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-6\354\212\244\355\224\204\353\247\201\354\235\230\355\212\270\353\236\234\354\236\255\354\205\230\354\266\224\354\203\201\355\231\224\352\263\204\354\270\265.png" "b/\354\265\234\354\212\271\354\227\260/vol1/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-6\354\212\244\355\224\204\353\247\201\354\235\230\355\212\270\353\236\234\354\236\255\354\205\230\354\266\224\354\203\201\355\231\224\352\263\204\354\270\265.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-6\354\212\244\355\224\204\353\247\201\354\235\230\355\212\270\353\236\234\354\236\255\354\205\230\354\266\224\354\203\201\355\231\224\352\263\204\354\270\265.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/5\354\236\245 \354\204\234\353\271\204\354\212\244 \354\266\224\354\203\201\355\231\224/\352\267\270\353\246\2745-6\354\212\244\355\224\204\353\247\201\354\235\230\355\212\270\353\236\234\354\236\255\354\205\230\354\266\224\354\203\201\355\231\224\352\263\204\354\270\265.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/6\354\236\245 AOP/6_5\354\212\244\355\224\204\353\247\201 AOP.md" "b/\354\265\234\354\212\271\354\227\260/vol1/6\354\236\245 AOP/6_5\354\212\244\355\224\204\353\247\201 AOP.md"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/6\354\236\245 AOP/6_5\354\212\244\355\224\204\353\247\201 AOP.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/6\354\236\245 AOP/6_5\354\212\244\355\224\204\353\247\201 AOP.md"
diff --git "a/\354\265\234\354\212\271\354\227\260/6\354\236\245 AOP/6_6\355\212\270\353\236\234\354\236\255\354\205\230\354\206\215\354\204\261~6_8\355\212\270\353\236\234\354\236\255\354\205\230\354\247\200\354\233\220\355\205\214\354\212\244\355\212\270.md" "b/\354\265\234\354\212\271\354\227\260/vol1/6\354\236\245 AOP/6_6\355\212\270\353\236\234\354\236\255\354\205\230\354\206\215\354\204\261~6_8\355\212\270\353\236\234\354\236\255\354\205\230\354\247\200\354\233\220\355\205\214\354\212\244\355\212\270.md"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/6\354\236\245 AOP/6_6\355\212\270\353\236\234\354\236\255\354\205\230\354\206\215\354\204\261~6_8\355\212\270\353\236\234\354\236\255\354\205\230\354\247\200\354\233\220\355\205\214\354\212\244\355\212\270.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/6\354\236\245 AOP/6_6\355\212\270\353\236\234\354\236\255\354\205\230\354\206\215\354\204\261~6_8\355\212\270\353\236\234\354\236\255\354\205\230\354\247\200\354\233\220\355\205\214\354\212\244\355\212\270.md"
diff --git "a/\354\265\234\354\212\271\354\227\260/6\354\236\245 AOP/\352\267\270\353\246\2746-20_\353\271\210\355\233\204\354\262\230\353\246\254\352\270\260\353\245\274\354\235\264\354\232\251\355\225\234\355\224\204\353\241\235\354\213\234\354\236\220\353\217\231\354\203\235\354\204\261.png" "b/\354\265\234\354\212\271\354\227\260/vol1/6\354\236\245 AOP/\352\267\270\353\246\2746-20_\353\271\210\355\233\204\354\262\230\353\246\254\352\270\260\353\245\274\354\235\264\354\232\251\355\225\234\355\224\204\353\241\235\354\213\234\354\236\220\353\217\231\354\203\235\354\204\261.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/6\354\236\245 AOP/\352\267\270\353\246\2746-20_\353\271\210\355\233\204\354\262\230\353\246\254\352\270\260\353\245\274\354\235\264\354\232\251\355\225\234\355\224\204\353\241\235\354\213\234\354\236\220\353\217\231\354\203\235\354\204\261.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/6\354\236\245 AOP/\352\267\270\353\246\2746-20_\353\271\210\355\233\204\354\262\230\353\246\254\352\270\260\353\245\274\354\235\264\354\232\251\355\225\234\355\224\204\353\241\235\354\213\234\354\236\220\353\217\231\354\203\235\354\204\261.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_1SQL\352\263\274DAO\354\235\230\353\266\204\353\246\254~7_2\354\235\270\355\204\260\355\216\230\354\235\264\354\212\244\354\231\200\354\236\220\352\270\260\354\260\270\354\241\260\353\271\210.md" "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_1SQL\352\263\274DAO\354\235\230\353\266\204\353\246\254~7_2\354\235\270\355\204\260\355\216\230\354\235\264\354\212\244\354\231\200\354\236\220\352\270\260\354\260\270\354\241\260\353\271\210.md"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_1SQL\352\263\274DAO\354\235\230\353\266\204\353\246\254~7_2\354\235\270\355\204\260\355\216\230\354\235\264\354\212\244\354\231\200\354\236\220\352\270\260\354\260\270\354\241\260\353\271\210.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_1SQL\352\263\274DAO\354\235\230\353\266\204\353\246\254~7_2\354\235\270\355\204\260\355\216\230\354\235\264\354\212\244\354\231\200\354\236\220\352\270\260\354\260\270\354\241\260\353\271\210.md"
diff --git "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_3\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224\354\240\201\354\232\251.md" "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_3\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224\354\240\201\354\232\251.md"
similarity index 98%
rename from "\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_3\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224\354\240\201\354\232\251.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_3\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224\354\240\201\354\232\251.md"
index 6ea87a2..3bcda62 100644
--- "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_3\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224\354\240\201\354\232\251.md"
+++ "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_3\354\204\234\353\271\204\354\212\244\354\266\224\354\203\201\355\231\224\354\240\201\354\232\251.md"
@@ -140,7 +140,7 @@ public class OxmTest {
- `SqlReader`는 스프링의 OXM 언마샬러를 이용해야함
### 의도
-
+
SqlReader 구현 오브젝트에 대한 의존관계를 `OxmSqlService` 에 고정시키기
-> SQL 을 읽는 방법을 OXM으로 제한해서 사용성 극대화
@@ -187,7 +187,7 @@ public class OxmSqlService implements SqlService {
- OxmSqlService 와 BaseSqlService 는 SqlService의 핵심 메서드(`loadSql`, `getSql`) 구현이 중복된다
### 의도
-
+
OxmSqlService는 일종의 설정과 기본 구성을 변경해주기 위한 어댑터와 같은 개념이므로, SqlService의 핵심 메서드는 `BaseSqlService` 로 위임하기
diff --git "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_4 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\235\204 \355\206\265\355\225\234 \354\225\210\354\240\204\355\225\234 \352\270\260\353\212\245 \355\231\225\354\236\245.md" "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_4 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\235\204 \355\206\265\355\225\234 \354\225\210\354\240\204\355\225\234 \352\270\260\353\212\245 \355\231\225\354\236\245.md"
similarity index 98%
rename from "\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_4 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\235\204 \355\206\265\355\225\234 \354\225\210\354\240\204\355\225\234 \352\270\260\353\212\245 \355\231\225\354\236\245.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_4 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\235\204 \355\206\265\355\225\234 \354\225\210\354\240\204\355\225\234 \352\270\260\353\212\245 \355\231\225\354\236\245.md"
index d42458e..edb9038 100644
--- "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_4 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\235\204 \355\206\265\355\225\234 \354\225\210\354\240\204\355\225\234 \352\270\260\353\212\245 \355\231\225\354\236\245.md"
+++ "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_4 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\235\204 \355\206\265\355\225\234 \354\225\210\354\240\204\355\225\234 \352\270\260\353\212\245 \355\231\225\354\236\245.md"
@@ -65,7 +65,7 @@ B2라는 인터페이스가 그려주는 창으로 B를 바라보는 다른 종
- 기능: 어플리케이션을 새로 시작하지 않고, 특정 SQL의 내용만 변경하기
### 의도
-
+
SQL 변경을 하는 `UpdatableSqlRegistry` 인터페이스를 추가하기
-> 기존 SqlRegistry 인터페이스에 정의된 메서드도 사용할 필요가 있으니, 이 인터페이스를 상속받은 형태
diff --git "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_5DI\353\245\274 \354\235\264\354\232\251\355\225\264 \353\213\244\354\226\221\355\225\234 \352\265\254\355\230\204 \353\260\251\353\262\225 \354\240\201\354\232\251\355\225\230\352\270\260.md" "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_5DI\353\245\274 \354\235\264\354\232\251\355\225\264 \353\213\244\354\226\221\355\225\234 \352\265\254\355\230\204 \353\260\251\353\262\225 \354\240\201\354\232\251\355\225\230\352\270\260.md"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_5DI\353\245\274 \354\235\264\354\232\251\355\225\264 \353\213\244\354\226\221\355\225\234 \352\265\254\355\230\204 \353\260\251\353\262\225 \354\240\201\354\232\251\355\225\230\352\270\260.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/7_5DI\353\245\274 \354\235\264\354\232\251\355\225\264 \353\213\244\354\226\221\355\225\234 \352\265\254\355\230\204 \353\260\251\353\262\225 \354\240\201\354\232\251\355\225\230\352\270\260.md"
diff --git "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/interface\354\236\245\354\240\220\354\204\244\353\252\205.png" "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/interface\354\236\245\354\240\220\354\204\244\353\252\205.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/interface\354\236\245\354\240\220\354\204\244\353\252\205.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/interface\354\236\245\354\240\220\354\204\244\353\252\205.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\274 7-11 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\234\250 \354\235\264\354\232\251\355\225\234 \355\231\225\354\236\245\352\265\254\354\241\260.png" "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\274 7-11 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\234\250 \354\235\264\354\232\251\355\225\234 \355\231\225\354\236\245\352\265\254\354\241\260.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\274 7-11 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\234\250 \354\235\264\354\232\251\355\225\234 \355\231\225\354\236\245\352\265\254\354\241\260.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\274 7-11 \354\235\270\355\204\260\355\216\230\354\235\264\354\212\244 \354\203\201\354\206\215\354\234\250 \354\235\264\354\232\251\355\225\234 \355\231\225\354\236\245\352\265\254\354\241\260.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\274 7-9 \354\234\204\354\236\204\354\235\204 \355\206\265\355\225\234 BaseSqIService\354\235\230 \354\236\254\354\202\254\354\232\251.png" "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\274 7-9 \354\234\204\354\236\204\354\235\204 \355\206\265\355\225\234 BaseSqIService\354\235\230 \354\236\254\354\202\254\354\232\251.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\274 7-9 \354\234\204\354\236\204\354\235\204 \355\206\265\355\225\234 BaseSqIService\354\235\230 \354\236\254\354\202\254\354\232\251.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\274 7-9 \354\234\204\354\236\204\354\235\204 \355\206\265\355\225\234 BaseSqIService\354\235\230 \354\236\254\354\202\254\354\232\251.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\2747-7 OxmSqlReader\353\245\274 \353\251\244\353\262\204\353\241\234 \352\260\226\353\212\224 OxmSqlService\355\201\264\353\236\230\354\212\244 \352\265\254\354\241\260.png" "b/\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\2747-7 OxmSqlReader\353\245\274 \353\251\244\353\262\204\353\241\234 \352\260\226\353\212\224 OxmSqlService\355\201\264\353\236\230\354\212\244 \352\265\254\354\241\260.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\2747-7 OxmSqlReader\353\245\274 \353\251\244\353\262\204\353\241\234 \352\260\226\353\212\224 OxmSqlService\355\201\264\353\236\230\354\212\244 \352\265\254\354\241\260.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/7\354\236\245 \354\212\244\355\224\204\353\247\201 \355\225\265\354\213\254 \352\270\260\354\210\240\354\235\230 \354\235\221\354\232\251/\352\267\270\353\246\2747-7 OxmSqlReader\353\245\274 \353\251\244\353\262\204\353\241\234 \352\260\226\353\212\224 OxmSqlService\355\201\264\353\236\230\354\212\244 \352\265\254\354\241\260.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/9_3 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\225\204\355\202\244\355\205\215\354\262\230.md" "b/\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/9_3 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\225\204\355\202\244\355\205\215\354\262\230.md"
similarity index 96%
rename from "\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/9_3 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\225\204\355\202\244\355\205\215\354\262\230.md"
rename to "\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/9_3 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\225\204\355\202\244\355\205\215\354\262\230.md"
index 000b55b..586a4b5 100644
--- "a/\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/9_3 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\225\204\355\202\244\355\205\215\354\262\230.md"
+++ "b/\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/9_3 \354\225\240\355\224\214\353\246\254\354\274\200\354\235\264\354\205\230 \354\225\204\355\202\244\355\205\215\354\262\230.md"
@@ -74,7 +74,7 @@ DAO 계층을 호출하고, 이를 활용해서 비즈니스 로직 작성
- 속성+행위 둘다 있음 -> 풍부한 도메인 오브젝트 방식
### 빈약한 도메인 오브젝트 방식(흔히 쓰이는 방식)
-
+
도메인 오브젝트에는 오직 정보만 담겨 있고, 정보를 활용하는 아무런 기능도 갖고 있지 않음.
- 비즈니스 로직은 서비스 계층에 존재함.
@@ -82,7 +82,7 @@ DAO 계층을 호출하고, 이를 활용해서 비즈니스 로직 작성
### 풍부한/영리한 도메인 오브젝트 방식(DDD)
-
+
도메인 오브젝트 안에 비즈니스 로직을 담아둠 -> 스프링 빈으로 등록할 수 없음. DI될 수도, 받을 수도 없음
서비스 계층에서는, 여러 종류의 도메인 오브젝트의 기능을 조합해서 복잡한 비즈니스 로직을 처리하는 로직 작성
diff --git "a/\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-13 3\352\263\204\354\270\265 \354\225\204\355\202\244\355\205\215\354\262\230.png" "b/\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-13 3\352\263\204\354\270\265 \354\225\204\355\202\244\355\205\215\354\262\230.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-13 3\352\263\204\354\270\265 \354\225\204\355\202\244\355\205\215\354\262\230.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-13 3\352\263\204\354\270\265 \354\225\204\355\202\244\355\205\215\354\262\230.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-20 \353\271\210\354\225\275\355\225\234 \353\217\204\353\251\224\354\235\270 \354\230\244\353\270\214\354\240\235\355\212\270 \353\260\251\354\213\235.png" "b/\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-20 \353\271\210\354\225\275\355\225\234 \353\217\204\353\251\224\354\235\270 \354\230\244\353\270\214\354\240\235\355\212\270 \353\260\251\354\213\235.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-20 \353\271\210\354\225\275\355\225\234 \353\217\204\353\251\224\354\235\270 \354\230\244\353\270\214\354\240\235\355\212\270 \353\260\251\354\213\235.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-20 \353\271\210\354\225\275\355\225\234 \353\217\204\353\251\224\354\235\270 \354\230\244\353\270\214\354\240\235\355\212\270 \353\260\251\354\213\235.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-21 \355\222\215\354\204\261\355\225\234 \353\217\204\353\251\224\354\235\270 \354\230\244\353\270\214\354\240\235\355\212\270 \353\260\251\354\213\235.png" "b/\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-21 \355\222\215\354\204\261\355\225\234 \353\217\204\353\251\224\354\235\270 \354\230\244\353\270\214\354\240\235\355\212\270 \353\260\251\354\213\235.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-21 \355\222\215\354\204\261\355\225\234 \353\217\204\353\251\224\354\235\270 \354\230\244\353\270\214\354\240\235\355\212\270 \353\260\251\354\213\235.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-21 \355\222\215\354\204\261\355\225\234 \353\217\204\353\251\224\354\235\270 \354\230\244\353\270\214\354\240\235\355\212\270 \353\260\251\354\213\235.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-22 \353\217\204\353\251\224\354\235\270 \352\263\204\354\270\265 \353\260\251\354\213\235.png" "b/\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-22 \353\217\204\353\251\224\354\235\270 \352\263\204\354\270\265 \353\260\251\354\213\235.png"
similarity index 100%
rename from "\354\265\234\354\212\271\354\227\260/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-22 \353\217\204\353\251\224\354\235\270 \352\263\204\354\270\265 \353\260\251\354\213\235.png"
rename to "\354\265\234\354\212\271\354\227\260/vol1/9\354\236\245 \354\212\244\355\224\204\353\247\201 \355\224\204\353\241\234\354\240\235\355\212\270 \354\213\234\354\236\221\355\225\230\352\270\260/\352\267\270\353\246\2749-22 \353\217\204\353\251\224\354\235\270 \352\263\204\354\270\265 \353\260\251\354\213\235.png"
diff --git "a/\354\265\234\354\212\271\354\227\260/vol2/2\354\236\245 \353\215\260\354\235\264\355\204\260 \354\225\241\354\204\270\354\212\244 \352\270\260\354\210\240/2_6 \355\212\270\353\236\234\354\236\255\354\205\230.md" "b/\354\265\234\354\212\271\354\227\260/vol2/2\354\236\245 \353\215\260\354\235\264\355\204\260 \354\225\241\354\204\270\354\212\244 \352\270\260\354\210\240/2_6 \355\212\270\353\236\234\354\236\255\354\205\230.md"
new file mode 100644
index 0000000..2f50bad
--- /dev/null
+++ "b/\354\265\234\354\212\271\354\227\260/vol2/2\354\236\245 \353\215\260\354\235\264\355\204\260 \354\225\241\354\204\270\354\212\244 \352\270\260\354\210\240/2_6 \355\212\270\353\236\234\354\236\255\354\205\230.md"
@@ -0,0 +1,227 @@
+# 범위
+2.6 트랜잭션
+2.6.1 트랜잭션 추상화와 동기화
+2.6.2 트랜잭션 경계설정 전략
+2.6.3 트랜잭션 속성
+2.6.4 데이터 액세스 기술 트랜잭션의 통합
+2.6.5 JTA를 이용한 글로벌/분산 트랜잭션
+
+# 2.6 트랜잭션
+스프링이 제공하는 트랜잭션 서비스는?
+2가지 측면이 있다.
+1. 트랜잭션 추상화
+2. 트랜잭션 동기화
+
+[이 velog](https://velog.io/@jakeseo_me/%ED%86%A0%EB%B9%84%EC%9D%98-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%A0%95%EB%A6%AC-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-5.2-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%B6%94%EC%83%81%ED%99%94) 에서 잘 설명중이니 참고할 것..
+
+# 2.6.1 트랜잭션 추상화와 동기화
+## 트랜잭션 동기화
+트랜잭션을 시작하기 위해 생성한 Connection 객체를 별도의 특별한 공간에 보관하고, 이 커넥션이 필요할 때 (ex. DAO) 꺼내쓰는 방식이다.
+
+``` java
+ public void upgradeLevels() throws SQLException{
+ // 트랜잭션 동기화 관리자를 이용해 동기화 작업을 초기화
+ TransactionSynchronizationManager.initSynchronization();
+ // DB 커넥션을 생성하고 트랜잭션을 시작한다.
+ // 이후의 DAO 작업은 모두 여기서 시작한 트랜잭션 안에서 진행된다.
+ // 아래 두 줄이 DB 커넥션 생성과 동기화를 함께 해준다.
+ Connection c = DataSourceUtils.getConnection(dataSource);
+ c.setAutoCommit(false);
+
+ try {
+ List users = userDao.getAll();
+ for (User user : users) {
+ if (canUpgradeLevel(user)) {
+ upgradeLevel(user);
+ }
+ }
+
+ c.commit();
+ }catch(Exception e) {
+ c.rollback();
+ throw e;
+ } finally {
+ // 스프링 DataSourceUtils 유틸리티 메소드를 통해 커넥션을 안전하게 닫는다.
+ DataSourceUtils.releaseConnection(c, dataSource);
+ // 동기화 작업 종료 및 정리
+ TransactionSynchronizationManager.unbindResource(this.dataSource);
+ TransactionSynchronizationManager.clearSynchronization();
+ }
+ }
+```
+
+## 트랜잭션 추상화
+
+`PlatformTransactionManager` 인터페이스를 통해, JDBC / JTA / Hibernate 같은 기술에 종속되지 않은채로 트랜잭션 경계설정을 가능하게 한다.
+
+```java
+ public void upgradeLevels() {
+ // 트랜잭션 시작
+ TransactionStatus status =
+ transactionManager.getTransaction(new DefaultTransactionDefinition());
+
+ //setAutoCommit(false) 같은거 할 필요 없음
+ try {
+ List users = userDao.getAll();
+ for (User user : users) {
+ if (canUpgradeLevel(user)) {
+ upgradeLevel(user);
+ }
+ }
+
+ transactionManager.commit(status);
+ }catch(Exception e) {
+ transactionManager.rollback(status);
+ throw e;
+ }
+ }
+```
+
+# 2.6.2 트랜잭션 경계 설정 전략
+## 코드에 의한 트랜잭션 경계설정
+거의 안쓰이는 방법이라 예제 코드만 첨부합니다..
+```java
+public class EmbeddedDbSqlRegistry implements UpdatableSqlRegistry {
+ SimpleJdbcTemplate jdbc;
+ TransactionTemplate transactionTemplate;
+
+ public void setDataSource(DataSource dataSource) {
+ jdbc = new SimpleJdbcTemplate(dataSource);
+
+ //DataSource로 TranscationManager를 만들고 이를 이용해 TranscationTemplate을 생성한다.
+ transactionTemplate = new TranscationTemplate(
+ new DataSourceTranscationManager(dataSource));
+ }
+
+ @Override
+ public void updateSql(final Map sqlmap) throws SqlUpdateFailureException {
+ transactionTemplate.execute(new TransactionCallbackWithoutResult() {
+ // 트랜잭션 템플릿이 만드는 트랜잭션 경계 안에서 동작할 코드를 콜백 형태로 만들고
+ // execute() 메소드에 전달한다.
+ @Override
+ protected void doInTransactionWithoutResult(TransactionStatus status) {
+ for (Map.Entry entry : sqlmap.entrySet()) {
+ updateSql(entry.getKey(), entry.getValue());
+ }
+ }
+ });
+ }
+}
+```
+
+## 선언적 트랜잭션 경계설정
+선언적 트랜잭션을 이용하면 코드에는 전혀 영향을 주지 않으면서,
+- 특정 메소드 실행 전 후에 트랜잭션이 시작되고 종료되거나
+- 기존 트랜잭션에 참여하도록 만들 수 있다.
+
+어떻게 코드에 전혀 영향을 주지 않을 수 있을까?
+✨AOP의 형태로 동작하기 때문이다.✨
+
+AOP로 동작하려면 `포인트컷(적용대상) + 어드바이스(부가기능)` 이 필요하다.
+
+구현 방식에는 2가지가 있다.
+
+### tx 네임스페이스
+`txAdvice`를 통해 스프링의 트랜잭션 관리 기능을 제공한다.
+```xml
+
+
+
+
+
+
+
+
+
+
+
+```
+
+### @Transactional
+위 방식처럼 설정파일에 명시적으로 포인트컷과 어드바이스를 정의하지 않는다.
+
+간단하게 @Transactional을 사용한다는 설정만 추가하면 된다.
+```java
+@Configuration
+@EnableTransactionManagement
+public class AppConfig {
+ // ...
+}
+```
+이러게 config 파일에 추가하거나
+
+```xml
+
+```
+설정파일에 이 한줄을 추가해준다.
+
+이 어노테이션은 선언된 위치에 따라 우선순위가 결정된다.
+```
+(높) 클래스의 메소드 > 클래스 > 인터페이스의 메소드 > 인터페이스 (낮)
+```
+구체적일수록 우선순위가 높다고 생각하면 된다.
+
+### 프록시 모드: 인터페이스와 클래스
+스프링의 프록시 팩토리는 상황에 맞게 동적 프록시 기술을 선택한다.
+- 대상에 인터페이스가 있을 경우: `JDK 동적 프록시`(인터페이스 기반)
+- 대상에 인터페이스가 없을 경우: `CGLIB`(구체 클래스 기반)
+
+트랜잭션의 경우, 디폴트로 `JDK 동적 프록시` 로 동작한다.
+클래스만 있을 경우엔 어떻게 해야할까?
+
+``` java
+proxyTargetClass=true
+
+또는
+
+@Configuration
+@EnableTransactionManagement(proxyTargetClass = true)
+public class AppConfig {
+ // ...
+}
+```
+이 옵션을 추가해서 무조건 `CGLIB` 기반으로 동작하게 한다.
+(책에는 별말 없지만, 매번 인터페이스를 만들지 않으므로 거의 이 옵션을 주고 사용한다)
+
+### 프록시 방식의 AOP 한계
+프록시를 사용하면 메서드 내부 호출에는 프록시를 적용할 수 없다.
+내부 호출을 할 때는, 프록시 객체의 메서드가 아닌 실제 타겟 객체의 메서드가 호출되기 때문이다.
+
+# 2.6.3 트랜잭션 속성
+## propagation (전파 동작)
+메소드가 이미 실행 중인 트랜잭션 내에서 실행될 때 어떻게 동작할지를 정의한다.
+- `REQUIRED`: 미리 시작된 트랜잭션이 있음 참여하고, 없으면 새로 시작
+- `SUPPORTS`: 이미 시작한 트랜잭션이 있음 참여하고, 없으면 트랜잭션 없이 진행
+- `MANDATORY`: 미리 시작된 트랜잭션이 있음 참여하고, 없으면 예외 발생
+- `REQUIRES_NEW`: 항상 새로운 트랜잭션 시작한다. 이미 시작한 트랜잭션이 있다면 보류시킴
+- `NOT_SUPPORTED`: 트랜잭션을 사용하지 않게 한다. 이미 시작한 트랜잭션이 있다면 보류시킴
+- `NEVER`: 트랜잭션을 사용하지 않도록 강제함. 이미 시작한 트랜잭션이 있으면 예외 발생
+- `NESTED`: 이미 진행중인 트랜잭션이 있으면 중첩 트랜잭션을 시작함. 부모 트랜잭션은 자식의 영향을 받지 않고, 자식 트랜잭션은 부모의 영향을 받음.
+
+
+## isolation (격리 수준)
+트랜잭션의 격리 수준을 지정한다.
+ex. DEFAULT (데이터베이스 기본값), READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
+
+## timeout
+트랜잭션의 최대 실행 시간을 초 단위로 지정한다. 초과할 경우 트랜잭션은 롤백된다.
+
+## readOnly
+트랜잭션에서 데이터베이스를 읽기 전용으로 처리할지 여부를 지정한다. 읽기 전용으로 설정할 경우 성능이 향상될 수 있다.
+
+## rollbackFor
+명시적으로 롤백되어야 하는 예외의 타입을 지정한다. 지정한 예외 또는 해당 예외의 서브클래스가 발생할 경우 트랜잭션이 롤백된다.
+
+참고) RuntimeException 은 디폴트로 롤백된다. Exception은 디폴트로 커밋된다.
+
+## noRollbackFor
+롤백되지 않아야 하는 예외의 타입을 지정한다. 지정한 예외 또는 해당 예외의 서브클래스가 발생해도 트랜잭션이 롤백되지 않는다.
+
+# 2.6.4 데이터 액세스 기술 트랜잭션의 통합
+스프링은 두 개 이상의 데이터 액세스 기술로 만든 DAO를 하나의 트랜잭션으로 묶어서 사용하는 방법을 제공한다.
+- ORM과 비ORM 기술을 함께 사용할 땐 주의해야 한다.
+ - ORM은 트랜잭션이 커밋되기 전까지 실제 DB에 cud를 하지 않으므로... 적절히 flush 해야한다
+
+# 2.6.5 JTA를 이용한 글로벌/분산 트랜잭션
+한 개 이상의 DB나 JMS의 작업을 하나의 트랜잭션 안에서 동작하게 하려면 서버가 제공히는 트랜잭션 매니저를 JTA를 통해 사용해야 한다.
+스프링에서는 서버에 설정해둔 XA DataSource와 트랜잭션 매니저 그리고 UserTransaction 등을 JNDI를 통해 가져와 모든 데이터 액세스 기술에서 사용할 수 있다.
\ No newline at end of file
diff --git "a/\354\265\234\354\212\271\354\227\260/vol2/2\354\236\245 \353\215\260\354\235\264\355\204\260 \354\225\241\354\204\270\354\212\244 \352\270\260\354\210\240/img.png" "b/\354\265\234\354\212\271\354\227\260/vol2/2\354\236\245 \353\215\260\354\235\264\355\204\260 \354\225\241\354\204\270\354\212\244 \352\270\260\354\210\240/img.png"
new file mode 100644
index 0000000..92233fc
Binary files /dev/null and "b/\354\265\234\354\212\271\354\227\260/vol2/2\354\236\245 \353\215\260\354\235\264\355\204\260 \354\225\241\354\204\270\354\212\244 \352\270\260\354\210\240/img.png" differ