Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

์Šคํ”„๋ง ์ž…๋ฌธ - ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ, ์›น MVC, DB ์ ‘๊ทผ ๊ธฐ์ˆ 

์Šคํ”„๋ง ์ž…๋ฌธ์ž๊ฐ€ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋ฉด์„œ ์Šคํ”„๋ง ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์ „๋ฐ˜์„ ๋น ๋ฅด๊ฒŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Thumbnail
๊น€์˜ํ•œ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

์Šคํ”„๋ง DB 2ํŽธ - ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ํ™œ์šฉ ๊ธฐ์ˆ  ์˜คํ”ˆ ์˜ˆ์ • ์†Œ์‹!

์•ˆ๋…•ํ•˜์„ธ์š”. ์—ฌ๋Ÿฌ๋ถ„^^!
๋“œ๋””์–ด ์Šคํ”„๋ง DB 2ํŽธ ๊ฐ•์˜๊ฐ€ ์˜คํ”ˆ ์ค€๋น„์— ๋Œ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋žœ๊ธฐ๊ฐ„ ๊ธฐ๋‹ค๋ ค์ฃผ์‹œ๊ณ  ์‘์›ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ถœ์‹œ ์˜ˆ์ •์ผ์€ ๋‹ค์Œ์ฃผ 5์›” 30์ผ(์›”) ~ 6์›” 3(๊ธˆ) ์‚ฌ์ด์— DB 2ํŽธ์ด ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค^^!

 - ๊ฐ•์˜๋ช…: ์Šคํ”„๋ง DB 2ํŽธ - ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ํ™œ์šฉ ๊ธฐ์ˆ 
 - ๊ฐ•์˜ ์ˆ˜: 85๊ฐ•
 - ๊ฐ•์˜ ์ž๋ฃŒ PDF:  250์žฅ
 - ๊ฐ•์˜ ์ž๋ฃŒ PPT: 173์žฅ

์ž์„ธํ•œ ๊ฐ•์˜ ์†Œ๊ฐœ๋Š” ๋‹ค์Œ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๊ฐ•์˜ ์†Œ๊ฐœ

๋ฐฑ์—”๋“œ DB ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์˜ ์™„์„ฑ

๋ฐฑ์—”๋“œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๋Œ€๋กœ ๊ฐœ๋ฐœํ•˜๋ ค๋ฉด HTTP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ MVC์™€ DB๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์ด๋ผ๋Š” 2๊ฐ€์ง€ ํฐ ์ถ•์„ ์™„์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•ž์„  ๊ฐ•์˜๋ฅผ ํ†ตํ•ด HTTP์™€ ์Šคํ”„๋ง MVC๋ฅผ ์™„์„ฑํ–ˆ๊ณ , ์ด์ œ ๋‚จ์€ ํ•˜๋‚˜์˜ ์ถ•์ธ ์Šคํ”„๋ง DB ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์„ ์™„์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์Šคํ”„๋ง DB1ํŽธ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด DB ์ ‘๊ทผ ๊ธฐ์ˆ ์˜ ํ•ต์‹ฌ ์›๋ฆฌ์™€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์Šคํ”„๋ง DB 2ํŽธ์—์„œ๋Š” 1ํŽธ์˜ ๊ธฐ๋ฐ˜ ์œ„์— ์‹ค๋ฌด์— ๊ผญ ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ํ™œ์šฉ ๊ธฐ์ˆ ๋“ค์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. 2ํŽธ์€ ํฌ๊ฒŒ 3๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ  ์ดํ•ด
JdbcTemplate, MyBatis, JPA, Spring Data JPA, Querydsl ๊ฐ™์€ ์‹ค๋ฌด์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ๋“ค์„ ์‹ค์ „ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์ ์ง„์ ์œผ๋กœ ๋ฐœ์ „์‹œํ‚ค๋ฉด์„œ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ๊ฐ๊ฐ์˜ ๊ธฐ์ˆ ๋“ค์ด ์™œ ํ•„์š”ํ•œ์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๊ธฐ์ˆ ๋“ค์˜ ์žฅ๋‹จ์ ์„ ์ฝ”๋“œ๋กœ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ๊ณผ ํ…Œ์ŠคํŠธ
๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์€ ๊ฒฐ๊ตญ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์ด ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๋™ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€์ง€ ๋‹จ๊ณ„์ ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์˜ ๊นŠ์€ ์ดํ•ด
์Šคํ”„๋ง DB1ํŽธ์—์„œ๋Š” ์Šคํ”„๋ง์ด ์ œ๊ณตํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋Šฅ์ด ์™œ ํ•„์š”ํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋‚ด๋ถ€ ์›๋ฆฌ๋ฅผ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์„ ๋งค์šฐ ๊นŠ์ด์žˆ๊ฒŒ ํ•™์Šตํ•˜๊ณ , ์‹ค๋ฌด ํ™œ์šฉ ๋ฐฉ์•ˆ์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

* ํŠธ๋žœ์žญ์…˜ AOP ์‚ฌ์šฉ์‹œ ์‹ค๋ฌด ์ฃผ์˜์‚ฌํ•ญ
* ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์˜ ๋‹ค์–‘ํ•œ ์˜ต์…˜
* ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜๊ณ  ๋กค๋ฐฑ๋˜๋Š” ๋‚ด๋ถ€ ์›๋ฆฌ
* ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ ์˜ต์…˜๊ณผ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹

๊ฐ•์˜ ๋ชฉํ‘œ

 - ๋ชฉํ‘œ: ์‹ค๋ฌด ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐฉ๋Œ€ํ•œ DB ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์„ ์™„์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ด ๊ฐ•์˜์˜ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค
 - ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค๋ฌด๊นŒ์ง€: ์‹ค๋ฌด ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋‚ด์šฉ์ด ๋งŽ์ง€๋งŒ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์—†๋Š” ๊ฐœ๋ฐœ์ž๋„ ์ ์‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋‹จ๊ณ„์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์Šคํ”„๋ง DB 1ํŽธ์„ ๋จผ์ € ๋“ฃ๊ณ  ์Šคํ”„๋ง DB 2ํŽธ์„ ํ•™์Šตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
 - ๊ฐœ๋…๋ถ€ํ„ฐ ํ™œ์šฉ๊นŒ์ง€: ๋‹จ์ˆœํžˆ ๊ธฐ์ˆ ์˜ ์‚ฌ์šฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ด ๊ธฐ์ˆ ์ด ์™œ ํ•„์š”ํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ๋‚˜์™”๋Š”์ง€ ํ•ต์‹ฌ ์›๋ฆฌ์™€ ํ™œ์šฉ ๋ฐฉ์•ˆ์„ ํ•จ๊ป˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
 - ์‹ค๋ฌด ์˜ˆ์ œ ์ค‘์‹ฌ: ์‹ค๋ฌด์—์„œ ์Šคํ”„๋ง์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์„ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ•™์Šตํ•˜๋ฉฐ, ์‹ค๋ฌด ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค๋ฅผ ์ „์ˆ˜ํ•ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.
 - ๊ฐ„๊ฒฐํ•จ: ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์˜ค๋ž˜๋œ ๊ธฐ๋Šฅ์€ ๊ณผ๊ฐํ•˜๊ฒŒ ์ œ์™ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ์‹ค๋ฌด์— ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด์šฉ ์ค‘์‹ฌ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ  - JdbcTemplate
SQL์„ ์ง์ ‘ ์‚ฌ์šฉํ•  ๋•Œ ์Šคํ”„๋ง์ด ์ œ๊ณตํ•˜๋Š” JdbcTemplate์€ ์ข‹์€ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ JDBC๋ฅผ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  JDBC๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ˜๋ณต ์ž‘์—…์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.
* ๊ฐœ๋ฐœ์ž๋Š” SQL์„ ์ž‘์„ฑํ•˜๊ณ , ์ „๋‹ฌํ•  ํŒŒ๋ฆฌ๋ฏธํ„ฐ๋ฅผ ์ •์˜ํ•˜๊ณ , ์‘๋‹ต ๊ฐ’์„ ๋งคํ•‘ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
* ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ˜๋ณต ์ž‘์—…์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.
๊ฐ•์˜์—์„œ๋Š” ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— JdbcTemplate์„ ์ง์ ‘ ์ฝ”๋“œ๋กœ ์ ์šฉํ•˜๋ฉด์„œ ํ•ด๋‹น ๊ธฐ์ˆ ์˜ ์žฅ๋‹จ์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ  - MyBatis
MyBatis๋Š” ์•ž์„œ ์„ค๋ช…ํ•œ JdbcTemplate๋ณด๋‹ค ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
JdbcTemplate๊ณผ ๋น„๊ตํ•ด์„œ MyBatis์˜ ๊ฐ€์žฅ ๋งค๋ ฅ์ ์ธ ์ ์€ SQL์„ XML์— ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ณ  ๋˜ ๋™์  ์ฟผ๋ฆฌ๋ฅผ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.
๊ฐ•์˜์—์„œ๋Š” ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— MyBatis๋ฅผ ์ง์ ‘ ์ฝ”๋“œ๋กœ ์ ์šฉํ•˜๋ฉด์„œ ํ•ด๋‹น ๊ธฐ์ˆ ์˜ ์žฅ๋‹จ์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ  - JPA
์Šคํ”„๋ง๊ณผ JPA๋Š” ์ž๋ฐ” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ(๊ธฐ์—…) ์‹œ์žฅ์˜ ์ฃผ๋ ฅ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.
์Šคํ”„๋ง์ด DI ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํฌํ•จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค๋ฉด, JPA๋Š” ORM ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
JPA๋Š” ์Šคํ”„๋ง ๋งŒํผ์ด๋‚˜ ๋ฐฉ๋Œ€ํ•˜๊ณ , ํ•™์Šตํ•ด์•ผํ•  ๋ถ„๋Ÿ‰๋„ ๋งŽ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•œ๋ฒˆ ๋ฐฐ์›Œ๋‘๋ฉด ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์—์„œ ๋งค์šฐ ํฐ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ JdbcTemplate์ด๋‚˜ MyBatis ๊ฐ™์€ SQL ๋งคํผ ๊ธฐ์ˆ ์€ SQL์„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•˜์ง€๋งŒ, JPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SQL๋„ ๋งŽ์€ ๋ถ€๋ถ„ JPA๊ฐ€ ๋Œ€์‹  ์ž‘์„ฑํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ด์ค๋‹ˆ๋‹ค.
์‹ค๋ฌด์—์„œ๋Š” JPA๋ฅผ ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA์™€ Querydsl์ด๋ผ๋Š” ๊ธฐ์ˆ ์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
JPA, ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA, Querydsl์€ ๊ฐ๊ฐ ๋ณ„๋„์˜ ๊ฐ•์˜๋กœ ๋‹ค๋ฃฐ ์ •๋„๋กœ ๋งค์šฐ ๋ฐฉ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํ•ด๋‹น ๊ธฐ์ˆ ๋“ค์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๊ณผ, ํ•ด๋‹น ๊ธฐ์ˆ ์„ ์™œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ๊ณผ ์ „์ฒด ํฐ ๊ทธ๋ฆผ์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ  - ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA
์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA๋Š” JPA๋ฅผ ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.
์‰ฝ๊ฒŒ ์ด์•ผ๊ธฐํ•ด์„œ ๊ธฐ๋ณธ์ ์ธ CRUD ๊ธฐ๋Šฅ๋“ค์„ ๋ชจ๋‘ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ฐœ๋ฐœ ์ฝ”๋“œ๋ฅผ ํ˜์‹ ์ ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ•์˜์—์„œ๋Š” ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์Šคํ”„๋ง ๋ฐ์ดํ„ฐ JPA๋ฅผ ์ง์ ‘ ์ฝ”๋“œ๋กœ ์ ์šฉํ•˜๋ฉด์„œ ํ•ด๋‹น ๊ธฐ์ˆ ์˜ ์žฅ๋‹จ์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ  - Querydsl
JPA๋Š” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋‚˜, ๋™์  ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. Querydsl์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ JPA๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ผญ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ถ”์ฒœ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.
๊ฐ•์˜์—์„œ๋Š” ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— Querydsl๋ฅผ ์ง์ ‘ ์ฝ”๋“œ๋กœ ์ ์šฉํ•˜๋ฉด์„œ ํ•ด๋‹น ๊ธฐ์ˆ ์˜ ์žฅ๋‹จ์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ  - ํ…Œ์ŠคํŠธ
๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์€ ๊ฒฐ๊ตญ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ธฐ์ˆ ์ด ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ•์˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๋™ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€์ง€ ๋‹จ๊ณ„์ ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๋™ํ•˜๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š”์ง€ ์„ค๋ช…ํ•˜๊ณ , ํ…Œ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” @Transactional, ์ž„๋ฒ ๋””๋“œ ๋ชจ๋“œ DB๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์ฝ”๋“œ๋กœ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜ ์ดํ•ด
DB1ํŽธ์—์„œ๋Š” ์Šคํ”„๋ง์ด ์ œ๊ณตํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ ๊ธฐ๋Šฅ์ด ์™œ ํ•„์š”ํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋‚ด๋ถ€ ์›๋ฆฌ๋ฅผ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜ AOP ์‚ฌ์šฉ์‹œ ์‹ค๋ฌด ์ฃผ์˜์‚ฌํ•ญ, ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์˜ ๋‹ค์–‘ํ•œ ์˜ต์…˜, ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜๊ณ  ๋กค๋ฐฑ๋˜๋Š” ๋‚ด๋ถ€ ์›๋ฆฌ์™€ ๊ฐ™์ด ์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜์ด ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๊นŠ์ด์žˆ๊ฒŒ ์ž์„ธํžˆ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์Šคํ”„๋ง ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ
์Šคํ”„๋ง์˜ ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ๋ฅผ ๋งค์šฐ ๊นŠ์ด์žˆ๊ฒŒ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€ ์ดํ•ดํ•˜๊ณ , ๋‹ค์–‘ํ•œ ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ ์˜ต์…˜, ์ „ํŒŒ ์˜ต์…˜์— ๋”ฐ๋ฅธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ์‹ค๋ฌด์—์„œ ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ์˜ ์ฃผ์˜์ ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๋Œ“๊ธ€

๋ฌด๋ฃŒ