- MySQL ์คํ
- JDBC ๋๋ผ์ด๋ฒ ์ถ๊ฐ
- Spring โ / Tomcat โ
- 1-1. DriverManager๋ก MySQL ์ฐ๊ฒฐ
- 1-2. Connection ํ๋ ์ก๊ธฐ
- 1-3. Statement / PreparedStatement ์ฌ์ฉ
- 1-4. CRUD ์ฟผ๋ฆฌ ์ง์ ์คํ
- 1-5. autoCommit on/off ์คํ
- 1-6. commit / rollback ์ง์ ํธ์ถ
๐ฏ ๋ชฉํ
- โํธ๋์ญ์ = Connection ๋จ์โ ์ฒด๊ฐ
- JDBC ๋ฐ๋ณต ์์ ๊ฒฝํ
๋ ธ๊ฐ๋ค ์ ๊ฑฐ ๋จ๊ณ
- 2-1. ๋ฐ๋ณต๋๋ JDBC ์ฝ๋ ์ ๋ฆฌ
- 2-2. Connection์ ๋๋๊ธฐ -> DataSource TrasactionManager๋ฅผ ๊ฑฐ์น๋ฉฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์์จ ๊ฒ
- 2-3. PreparedStatement ์คํ ๋ก์ง ์บก์ํ
- 2-4. ResultSet โ ๊ฐ์ฒด ๋งคํ ๋ถ๋ฆฌ
๐ฏ ๋ชฉํ
JdbcTemplate์ ๊ตฌํํ๋ฉฐ Repository ๋ด์ ๋ฐ๋ณต ์์ ์ต์ํ
์ปค๋ฅ์ ์์ฑ ์ฑ ์ ๋ถ๋ฆฌ
- 3-1. DataSource ์ธํฐํ์ด์ค ์ ์
- 3-2. DriverManager ๊ธฐ๋ฐ ๊ตฌํ์ฒด
- 3-3. JdbcTemplate์ด DataSource๋ง ์์กดํ๋๋ก ๋ณ๊ฒฝ
๐ฏ ๋ชฉํ
โConnection ์์ฑ์ ์ธํ๋ผ ์ฑ ์โ
ํต์ฌ ๊ตฌ๊ฐ
- 4-1. startTransaction, commit, rollback์ ์ ๊ณตํ๋ TransactionManager ์์ฑ (with ThreadLocal)
- 4-2. ThreadLocal์ ๊ด๋ฆฌํ๋ ConnectionThreadLocal ์์ฑ
- 4-3. DataSource์์ ํธ๋์ญ์ ์ ์ง์ํ๋๋ก ๊ตฌํ
- 4-4. ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์์ Connection ์ฝ๋ ์ ๊ฑฐ
- 4-5. MyJdbcTemplate์์ ์ปค๋ฅ์ ์ ์ง์ ๋ฐ์ง ์๊ณ MyDataSource๋ฅผ ๋ฐ๋๋ก ๋ณ๊ฒฝ
๐ฏ ๋ชฉํ
โํธ๋์ญ์ ์ ์ํฅ์ ์ ๊ฑฐํด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์ Connection ์ฝ๋๋ฅผ ์ ๊ฑฐํ๊ธฐโ
"MyJdbcTemplate ๋ด๋ถ์์ DataSource๋ฅผ ์ง์ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝํ๊ธฐ"
์ ์ธ์ ํธ๋์ญ์
- 5-1. @MyTransactional ์ ์
- 5-2. ์ด๋ ธํ ์ด์ ๊ฐ์ง ๋ก์ง ์ถ๊ฐ
- 5-3. ํธ๋์ญ์ Proxy ๋ก์ง ์ถ๊ฐ
- 5-4. ํธ๋์ญ์ ์ ์ฉ
๐ฏ ๋ชฉํ
โํธ๋์ญ์ ํ๋ก์ ๋ก์ง ์ ์ฉ ๊ณผ์ ์ดํดโ
์น์ ์ค์ฒด
- 6-1. Socket ๊ธฐ๋ฐ HTTP ์๋ฒ
- 6-2. Request Line ํ์ฑ
- 6-3. Header / Body ํ์ฑ
- 6-4. Response ์ง์ ์์ฑ
๐ฏ ๋ชฉํ
โHTTP๋ ๋ฌธ์์ด ํ๋กํ ์ฝโ
์น + ํธ๋์ญ์ ์ฐ๊ฒฐ ์ค๋น
- 7-1. ์์ฒญ 1๊ฐ = ์ค๋ ๋ 1๊ฐ
- 7-2. ExecutorService ์ฌ์ฉ
๐ฏ ๋ชฉํ
โ์ ThreadLocal์ด ๋จนํ๋์งโ
Spring MVC ํต์ฌ
- 8-1. ๋ชจ๋ ์์ฒญ์ ๋จ์ผ ์ง์ ์
- 8-2. URL โ Handler ๋งคํ
- 8-3. Controller ๋ฉ์๋ ํธ์ถ
๐ฏ ๋ชฉํ
โDispatcherServlet์ ๋ณธ์งโ
Spring MVC ๋ผ๋
- 9-1. Controller
- 9-2. Argument Resolver (๊ฐ๋จํ)
- 9-3. Interceptor
๐ฏ ๋ชฉํ
โ์น ์์ฒญ ํ๋ฆ ์์ ์ดํดโ
์ต์ข ํผ์ฆ
- 10-1. ์์ฒญ ์์ โ Transaction begin
- 10-2. Controller ์คํ
- 10-3. ์์ธ ์ rollback
- 10-4. ์ ์ ์ commit
๐ฏ ๋ชฉํ
โ@Transactional + Spring MVC ๊ตฌ์กฐ ์ฒด๋โ
์ฑ๋ฅ & ์์ ๊ด๋ฆฌ ๋จ๊ณ
- 4-1. ์ปค๋ฅ์ ๋ฏธ๋ฆฌ ์์ฑ
- 4-2. idle / active pool ๊ด๋ฆฌ
- 4-3. max size ์ ํ
- 4-4. ์ปค๋ฅ์ ๋ฐ๋ฉ ์ฒ๋ฆฌ
- 4-5. Pool ๊ธฐ๋ฐ DataSource ๊ตฌํ
๐ฏ ๋ชฉํ
โ์ ์ปค๋ฅ์ ํ ์์ผ๋ฉด ์๋น์ค๊ฐ ์ฃฝ๋์งโ
๐ฅ ์ต์ข ์ํ
HTTP ์์ฒญ
โ Thread
โ Dispatcher
โ Interceptor
โ @Transactional
โ TransactionManager
โ Connection Pool
โ DataSource
โ JDBC
โ MySQL