์ฃผ๊ด์ ์ธ ์ธํ๋ฐ ๊ฐ์ ๋ฆฌ๋ทฐ(๐ฑ๊น์ํ๋ ์คํ๋ง)
by JiwonDev๋์๋ ๊ฑฐ์ง์ง๋ง ์ํ๋ ๊ฐ์๋ ์ ๊ตฌ๋งค ํ์๊ฐ(?)ํ๋ ์ ์ ์ฃผ๊ด์ ์ธ ๋ฆฌ๋ทฐ์ ๋๋ค.
๐ท์ธํ๋ฐ ๊น์ํ๋
์ ๊ฐ ์๊ฐํ๋ ๊น์ํ๋์ ๊ฐ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฌ๋ฐ์ต๋๋ค. ์ฝ๊ฐ ๊ณต๋ถ์ํ๋ ํ์ด ๊ฐ์ํด์ฃผ๋ ๋๋๐คฃ
- ๊ฐ๋จํ ์ฝ๋๋ฅผ ํ๋์ฉ ๊ฐ์ ์ํค๋ฉฐ ์ด๋ป๊ฒ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ค๊ฒ ๋์๋์ง๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช ํฉ๋๋ค.
- ์๋ถ๋ถ์ ์๋ฆฌ๋ฅผ ๊ธธ๊ฒ ์ค๋ช ํ๊ณ , ์ค์ ์ฌ์ฉ๋ฒ์ ํ๋ฐ๋ถ์ ๋์ค๊ธฐ ๋๋ฌธ์ ์์๋๋ก ๊ฐ์๋ฅผ ๋ณด๋ฉด ๋ต๋ตํ ์ ์์ต๋๋ค.
๊ฐ์ฌ๋์ด ์ด๋ค๋ถ์ธ์ง ๊ถ๊ธํ๋ฉด, ๊ฐ๋ฐ๋ฐ๋ฅ ์ ํ๋ธ๋ฅผ ๋ณด์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค.
๐คซ ๊ฐ์๋ฅผ ์ด๋ป๊ฒ ๊ณจ๋ผ๋ด์ผํ ๊น์?
๋ ๋ง๊ณ ๋ฐฑ์๋ผ์ ์๊ฐ ๋น๊ฒ์ด์ธ ๋ผ๋ฉด ๋ชจ๋ ๊ฐ์๋ฅผ ๋ค ๊ตฌ๋งคํด์ ๋ณด์๋๊ฒ ์ ์ผ ์ข์ต๋๋ค. ๊ทธ๊ฒ ์๋๋ผ๋ฉด ์ธํ๋ฐ์ ๊ฑฐ์ ๋งค๋ฌ๋ง๋ค ๋ค์ํ ์ด์ ๋ก 20~30% ํ ์ธ์ ํ๋ ํ์ํ ๊ฐ์๋ค์ ํ ์ธ๊ธฐ๊ฐ์ ์ฌ์๋๊ฑธ ์ถ์ฒ๋๋ ค์.
์๋ฐ์ ์คํ๋ง์ ์ต์ํ๊ณ ์น์ ๋ํ ๊น์ด์๋ ํ์ต์ ์ํด์.
PDF๋ฅผ ๋จผ์ ํ์ด๋ณด๋ฉด์ ๋๋ฌด ๊ธฐ์ด์ ์ธ ์ฌ์ฉ๋ฒ์ ๋ํ ์ค๋ช ์ ์คํตํ๋ฉด์ ๋ณด๋๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค.
- 1๏ธโฃ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP
์ง์ ์ฐพ์๋ณด์ง์์ผ๋ฉด ์ค๋ฌด์์ ํฌ๊ฒ ๋ฐฐ์ธ ์ผ ์๋ HTTP ์ ์น ์๋ฒ์ ๋ํ ๊ธฐ์ด์ง์์ ์์ต๋๋ค. - 2๏ธโฃ ์คํ๋ง MVC 1ํธ
์น ๊ฐ๋ฐ ๊ธฐ์ด์ ํจ๊ป MVC ํ๋ ์์ํฌ๋ฅผ ์ง์ ๋ง๋ค์ด๋ณด๋ฉด์ Spring MVC๊ฐ ์ด๋ค์์ผ๋ก ์ค๊ณ๋์๋์ง๋ฅผ ๋ฐฐ์๋๋ค. - 3๏ธโฃ JPA ํ์ฉ 2ํธ
JPA ์ฑ๋ฅํ๋์ ๊ดํ ๋ด์ฉ์ ๋๋ค. ๋ค๋ง ์์ฝํ๋ฉด ๋ด์ฉ์ด ์งง์์ ๊ตฌ๊ธ์ ๋ด์ฉ์ ๊ฒ์ํด์ ๋ด๋ ๋ฌด๋ฐฉํฉ๋๋ค. - 4๏ธโฃ ์คํ๋ง ํต์ฌ์๋ฆฌ 2ํธ
๋ก๊ทธ ๊ธฐ๋ฅ์ ๋ฐ์ ์์ผ๋๊ฐ๋ฉฐ ์คํ๋ง AOP์ ๋น ํ์ฒ๋ฆฌ๊ธฐ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง์ ๋ํด ๊น๊ฒ ๋ฐฐ์๋๋ค.
์ฝ๋ฉ์ ์ต์ํ์ง๋ง ์คํ๋ง ์น ๊ฐ๋ฐ์ ์ฒ์์ด์์
- 1๏ธโฃ (๋ฌด๋ฃ) ์คํ๋ง ์
๋ฌธ
์๊ฐ์ ๋น์ฐ๊ณ ๋ฌด์ง์ฑ์ผ๋ก ๋ฐ๋ผํ๋ ๊ฑธ ์ถ์ฒํฉ๋๋ค. ์ผ๋จ ์คํ๋ง ์ฝ๋์ ์ต์ํด์ ธ์ผ ์ด๋ก ์ด ์ฌ์์ง๋๋ค. - 2๏ธโฃ ์คํ๋ง MVC 1ํธ
๊ธฐ๋ณธ์ ์ธ ์น ๊ฐ๋ฐ์ ๋ํด ๋ฐฐ์๋๋ค. ๋ด์ฉ์ ๋ค ์ดํดํ์ง ๋ชปํ๋๋ผ๋ ์คํ๋ง MVC ๊ธฐ๋ฅ์ ํ๋์ฉ ์จ๋ณด๋ฉฐ ์ต์ํด์ง๋๋ค. - 3๏ธโฃ ์คํ๋ง ํต์ฌ์๋ฆฌ ๊ธฐ๋ณธํธ
๊ฐ์ฒด์งํฅ๊ณผ ์คํ๋ง ์ฝ์ด(๋น ์ปจํ ์ด๋)๊ฐ ๋ฌด์์ธ์ง ํ์ตํฉ๋๋ค. - 4๏ธโฃ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP
HTTP์ ์น ๊ฐ๋ฐ ๊ธฐ์ด์ ๋ํด ํ์ตํฉ๋๋ค. - 5๏ธโฃ ์ค์ ! ์คํ๋ง DB ์ ๊ทผ๊ธฐ์ 2ํธ
์ค๋ฌด์์ ๋ง์ด์ฐ๋ DB ๊ธฐ์ ์ ๋ํด ๊ฐ๋จํ ์ฌ์ฉ๋ฒ์ ๋ฐฐ์ฐ๊ณ , ์คํ๋ง ํธ๋์ญ์ ์๋ฆฌ์ ๋ํด ํ์ตํฉ๋๋ค.
์ด ์ ๋๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์ฌ์ฉ๋ฒ๋ ๋ชจ๋ฅด๋ ์ํ๋ก ์ด๋ก ์ ์ธ ๋ด์ฉ์ ๋ฐฐ์ฐ๋ฉด ๊ธ๋ฐฉ ์ง์น๊ธฐ ๋๋ฌธ์ ์ค์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์ฝ๋ ์์ฑ์ ์ถฉ๋ถํ ์ต์ํด์ง ๋ค์ ๋๋จธ์ง ๊ฐ์๋ฅผ ๋ค์ผ์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค.
์๋ฌด๊ฒ๋ ๋ชฐ๋ผ์.
- 1๏ธโฃ (๋ฌด๋ฃ) ๊น์ํ์ ์๋ฐ ์
๋ฌธ - ์ฝ๋๋ก ์์ํ๋ ์๋ฐ ์ฒซ ๊ฑธ์
์คํ๋ง๋ถํฐ ๋ณด์ง๋ง๊ณ ์ปดํจํฐ ์ธ์ด์ ๋ํ ๊ธฐ์ด๋ฅผ Java๋ก ๋ฐฐ์ฐ๊ณ , ์ฌ์ด ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ต์ํด์ง๋๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค. ์ฐธ๊ณ ๋ก ์๋ฐ ๊ฐ์๋ ๊ผญ ์ํ๋ ๊ฐ์๊ฐ ์๋๋๋ผ๋ ์๋ฐ์ ์ ์ ์ ํ๋ธ์ ๊ฐ์ด ์ข์ ๊ฐ์๋ค์ด ๋ง์ต๋๋ค. - 2๏ธโฃ (๋ฌด๋ฃ) ์คํ๋ง ์
๋ฌธ
์๊ฐ์ ๋น์ฐ๊ณ ๋ฌด์ง์ฑ์ผ๋ก ๋ฐ๋ผํ๋ ๊ฑธ ์ถ์ฒํฉ๋๋ค. ์ผ๋จ ์คํ๋ง ์ฝ๋์ ์ต์ํด์ ธ์ผ ์ด๋ก ์ด ์ฌ์์ง๋๋ค. - 3๏ธโฃ ์ค์ ์คํ๋ง ๋ถํธ์ JPA ํ์ฉ1
์ด๋์ ๋ ์์ฑ๋ ์๋ ํ๋ก์ ํธ๋ฅผ ๋ฐ๋ผ ๋ง๋ค์ด๋ด ๋๋ค. ๋ชจ๋ฅด๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ง๋ฌธ/๋ต๋ณ์ด๋ ๊ตฌ๊ธ๋ง์ ํตํด ์ด๋ป๊ฒ๋ ์์ฃผํฉ๋๋ค.
์ด ์ ๋ ์งํํ๋ฉด์ ์๋ฐ์ ์ต์ํด์ก๋ค๋ฉด ๊ทธ ์ดํ๋ ์์ ๋์ผํฉ๋๋ค. ๊ฐ๋ฐ์ ํ๋ฒ๋ ํด๋ณด์์ง ์์๋ค๋ฉด ๋ด๊ฐ ์ ์ฑ์ ๋ง๋์ง๋ ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์คํฐ๋๋ ํ ์ด ํ๋ก์ ํธ๋ฅผ ๋ฐ๋ผ ๋ง๋ค์ด๋ณด๋ฉฐ ๋จผ์ ๊ฐ๋ฐ์ ์ต์ํด์ง๊ณ ๊ทธ ์ดํ๋ฅผ ์ ํํ์๋๊ฑธ ์ถ์ฒ๋๋ ค์.
๐ญ ์คํ๋ง ์ ๋ฌธ
- ๋ฌด๋ฃ ๊ฐ์์ด๊ณ , ์คํ๋ง์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฝ๋๋ก ์ณ๋ณด๋ฉด์ ์ ์ฒด์ ์ผ๋ก ํ์ด์ค๋๋ค.
๐ญ ๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP (โญ๊ฐ์ถโญ)
- ์ธํฐ๋ท์ ์๋ฆฌ, ์๋ธ๋ฆฟ, ์น์๋ฒ๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง๋ฅผ ๊ฐ๋ตํ๊ฒ ์ค๋ช ํฉ๋๋ค.
- HTTP ํน์ฑ๊ณผ ๊ทธ์ ๋ฐ๋ฅธ API ์ค๊ณ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค. ๋ฐฑ์๋ ๊ฐ๋ฐ์๊ฐ ์๋๋๋ผ๋ ๋ค์ด๋๋ฉด ์ข์ ๊ฐ์
๐ญ ์คํ๋ง ํต์ฌ์๋ฆฌ ๊ธฐ๋ณธํธ
- ๊ฐ์ฒด์งํฅ๊ณผ ํด๋ฆฐ์ฝ๋์ ๋ํด ์ค๋ช ํ๊ณ , ๊ฐ์ฒด์ ์์กด์ฑ, ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ๊ฐ ์ ์ด๋ ค์ด์ง๋ฅผ ๋จ๊ณ์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์คํ๋ง์ ์ด๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์๋ ค์ฃผ๊ณ , ์คํ๋ง ์ปจํ ์ด๋์ ์คํ๋ง ๋น์ ๋ํด ์์ธํ๊ฒ ์ค๋ช ํฉ๋๋ค.
- ๊ฐ์๊ฐ ์ฌ๋ฏธ์๊ธด ํ์ง๋ง, ์คํ๋ง ์ ๋ฌธ์์๊ฒ ๋ด์ฉ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ํด๋ณด๊ณ ๋ฃ๋ ๊ฑธ ์ถ์ฒ
๐ญ ์คํ๋ง ํต์ฌ์๋ฆฌ ๊ณ ๊ธํธ
- ์คํ๋ง์์ ์ฌ์ฉ๋๋ ๋์์ธํจํด๋ค์ '๋ก๊ทธ๋ฅผ ๋ด๋นํ๋ ๊ฐ์ฒด' ๋ฅผ ํ๋จ๊ณ์ฉ ๋ฐ์ ์์ผ๊ฐ๋ฉฐ ๋ฐฐ์๋๋ค.
- ์์์ ๋ฐฐ์ด ์ง์์ ๋ฐํ์ผ๋ก ์คํ๋ง AOP, ๋น ํ์ฒ๋ฆฌ๊ธฐ์ ๋์๊ณผ ์๋ฆฌ์ ๋ํด ์๋ ค์ค๋๋ค.
- ๋ชฐ๋ผ๋ ํฐ ์๊ด์์ง๋ง, ์์๋๋ฉด ์ข์ ์ง์๋ค์ด๋ฉฐ ์คํ๋ง์ ์ต์ํ์ง ์๋ค๋ฉด ์ดํดํ๊ธฐ ์ด๋ ต์ต๋๋ค.
๐ญ ์คํ๋ง MVC 1ํธ (โญ๊ฐ์ถโญ)
- ์๋ธ๋ฆฟ์ ๋ํ ์ค๋ช ์ ์์์ผ๋ก, ์น ์๋น์ค๋ฅผ ๋ฐ๋ผ ๋ง๋ค์ด๋ด ๋๋ค.
- ํ๋จ๊ณ์ ์ฝ๋๋ฅผ ๊ฐ์ ์ํค๋ฉฐ ์ต์ข ์ ์ผ๋ก ์คํ๋ง MVC์ Dispatcher Servlet์ ์์ฑ์ํต๋๋ค.
- ๊ฐ์์ ๊ธฐ์น์ ๊ฒฐ์ด ์๋ฒฝํฉ๋๋ค. ์คํ๋ง์ด ์๋๋๋ผ๋, ์น ๊ฐ๋ฐ์ ํ๋ฉฐ ๊ผญ ํ์ํ ์ง์๋ค์ ํจ๊ป ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๐ญ ์คํ๋ง MVC 2ํธ
- ์คํ๋ง MVC์ ์ ๊ณต๋๋ ๊ธฐ๋ฅ๋ค์ ๋ค ํ์ด์ฃผ๋ฉฐ ์๋ฆฌ๋ฅผ ์ค๋ช ํด์ค๋๋ค.
- ์ธํฐ์ ํฐ, ๊ตญ์ ํ, Validation, ์์ธ์ฒ๋ฆฌ, ํ์ ์ปจ๋ฒํฐ, ํ์ผ์ ๋ก๋ ๋ฑ์ ์๋ฆฌ๋ฅผ ์์ธํ๊ฒ ์ค๋ช ํฉ๋๋ค.
- ๋ค๋ง ์๋ฆฌ์ ๋นํด ์คํ๋ง์ด ์ ๊ณตํ๋ ์ฌ์ฉ๋ฒ์ ๊ฐ๋จํด์ ๊ณต๋ถํ ๋ค ํํ๊ฐ ์ฌ ์์์ต๋๋ค.
- ์ด๊ฒ๋ ์คํ๋ง์ ์๋ ๊ธฐ๋ฅ๋ค์ ํ๋ฒ์ฉ ์จ๋ณด๊ณ ๋ฃ๋ ๊ฑธ ์ถ์ฒ
๐ญ JPA ๊ธฐ๋ณธํธ (โญ๊ฐ์ถโญ)
- ์ํ๋์ JPA ์ฑ ๊ณผ ๋ด์ฉ์ด ๊ฐ์ต๋๋ค. JPA์ ์๋ฆฌ์ ์ฌ์ฉ๋ฒ์ ๋ํด ์์ธํ๊ฒ ๋ค๋ฃน๋๋ค.
- ๋ค๋ง ์ด๊ฒ๋ JPA๋ฅผ ์ฌ์ฉํด๋ณด๊ณ ์๋ฆฌ๋ฅผ ๋ฐฐ์ฐ๋๊ฑธ ์ถ์ฒํฉ๋๋ค. ์ฒ์๋ถํฐ ์๋ฆฌ๋ฅผ ๊น๊ฒ ๋ฐฐ์ฐ๋ฉด ํ๋ญ๋๋ค.
๐ญ JPA ํ์ฉ 1ํธ (JPA ์ฌ์ฉ)
- JPA์ ์ฌ์ฉํด ๊ฐ๋จํ ์คํ๋ง ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ญ๋๋ค.
- JPA๋ฅผ ๋ค์ํ๊ฒ ํ์ฉํ์ง๋ง, ์๋ฆฌ๋ฅผ ๊ธฐ๋ณธํธ๋งํผ ์์ธํ๊ฒ ์ค๋ช ํ์ง๋ ์์ต๋๋ค.
- ์ฐธ๊ณ ๋ก ํ์ฉํธ์ ๋ฃ๊ณ (ํน์ ๊ฐ์ธ ํ๋ก์ ํธ์์ JPA๋ฅผ ์จ๋ณด๊ณ ) ๊ธฐ๋ณธํธ์ ๋ค์ผ๋ฉด ๊ฐ์ ๋ด์ฉ์ด ์ข ๋ ์ฝ๊ฒ ์ดํด๋ฉ๋๋ค.
๐ญ JPA ํ์ฉ 2ํธ (JPA ์ฑ๋ฅ์ต์ ํ)
- ์ค๋ฌด์์ JPA์ฌ์ฉ ์ ์์ฃผ ๋ฐ์ํ๋ ์ค์์ JPA ๋ด์์ ์ฑ๋ฅ์ ์ฌ๋ฆด ์ ์๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํด์ค๋๋ค.
- ํจ์น์กฐ์ธ, DTO๋ก ๋ฐ๋ก ์กฐํํ๊ธฐ, ํ์ด์ง ์ฟผ๋ฆฌ ์ต์ ํ๋ฑ์ ๋ค๋ฃน๋๋ค.
- ์ค๋ช ์ ์ ๋ง ์ํด์ฃผ์์ง๋ง, ๊ฒฐ๋ก ์ ์ ๋ฆฌํ๋ฉด ๋ด์ฉ์ด ์ผ๋ง ์๋ฉ๋๋ค. ๊ตฌ๊ธ์ ๊ฐ์ ๋ด์ฉ์ ๊ฒ์ํด์ ๋ด๋ ๋ฌด๋ฐฉํฉ๋๋ค.
- ๋ฌผ๋ก ์ ๋ ๋ฌด์ง์ฑ์ผ๋ก ๊ตฌ๋งคํ์ต๋๋ค. ๋ฏฟ๊ณ ๋ณด๋ ์ํ๋ ๊ฐ์๋๊น์ ๐คฃ
๐ญ ์ค์ QueryDSL
- ๋ค๋ฅธ ๊ฐ์์์ ๋ง์ด ์ธ๊ธํ๋ QueryDSL + JPA ์กฐํฉ์ ๋ค์ํ ์ผ์ด์ค๋ค์ ์์ธํ๊ฒ ์ค๋ช ํฉ๋๋ค.
- ์คํ๋ง์์ QueryDSL + JPA ํ์ฉ ๋ฐฉ๋ฒ๊ณผ ์ค์ ํ๋ก์ ํธ์์ ๋ฌด์จ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ข์์ง ์๋ ค์ค๋๋ค.
- ๋ค๋ง ๋ณธ์ธ์ด ์ด๋ฏธ JPA์ DB SQL์ ์ต์ํ๋ค๋ฉด, ๊ตณ์ด ๊ฐ์๋ฅผ ๋ณด์ง์์๋ ๊ตฌ๊ธ๋ง-๊ณต์๋ฌธ์๋ง์ผ๋ก๋ ์ถฉ๋ถํ๊ธด ํฉ๋๋ค.
๐ญ ์ค์ ์คํ๋ง ๋ฐ์ดํฐ JPA
- JPA์์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๋ค์ ์คํ๋ง์ด ์ด๋ป๊ฒ ์ถ์ํ์์ผฐ๋์ง์ ์ฌ์ฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
- ์ค๋ฌด์์ ์์ฃผ ์ฐ๋ ๊ธฐ๋ฅ๊ณผ, ๊ฑฐ์ ์ฐ์ง ์๋ ๊ธฐ๋ฅ๋ค์ ์ค๋ช ํด์ฃผ๊ณ ๊ทธ ์ด์ ๋ฅผ ์๋ ค์ค๋๋ค.
- ์ด๊ฒ๋ ๊ฐ์๋ฅผ ๋จผ์ ๋ณด๊ธฐ๋ณด๋ค๋, SpringDataJpa๋ฅผ ํ๋ก์ ํธ์ ์ฌ์ฉํด๋ณด๊ณ ๊ฐ์๋ฅผ ๋ณด๋๊ฒ ์ดํดํ๊ธฐ ๋ ์ฝ์ต๋๋ค.
๐ญ ์ค์ ! ์คํ๋ง DB ์ ๊ทผ ๊ธฐ์ 1ํธ
- JDBC ๊ธฐ์ด( Connection, DataSource, Query )์ ๋ํด ์ฒ์๋ถํฐ ํ์ตํฉ๋๋ค.
- ํธ๋์ญ์ ๊ณผ DB ์์ธ์ฒ๋ฆฌ์ ๋ฐ๋ฅธ ์ด๋ ค์์ ํ์ตํ๊ณ ์คํ๋ง์ด ์ด๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ํ๋์ฉ ํํค์ณ๋ด ๋๋ค.
- Spring Data ์ ๊ทผ ๊ธฐ์ ์ด๋ AOP์ ๋ํ ์ธ๊ธ์ ์์ผ๋ ์ด๋ฅผ ์์ธํ๊ฒ ๋ค๋ฃจ์ง๋ ์์ต๋๋ค.
- ๊ธฐ๋ณธ ์ง์์ ์ฑ์๊ฐ๋ ๊ฐ์๋ผ์ ์ด๋ฏธ Java๋ก DB๋ฅผ ๋ง์ด ๋ค๋ค๋ณด์๊ฑฐ๋ ์ต์ํ๋ค๋ฉด ๋ค์ ํ์๋ ์์ต๋๋ค.
๐ญ ์ค์ ! ์คํ๋ง DB ์ ๊ทผ ๊ธฐ์ 2ํธ
- ์ค๋ฌด์์ ์ฌ์ฉํ๋ DB ๊ธฐ์ ๋ค์ ์ข ๋ฅ๋ณ๋ก ๋ค ์จ๋ด ๋๋ค ๊ฐ ๊ธฐ์ ์ ๊น์ด์๊ฒ ํ์ง๋ ์๊ณ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ ์ ๋๋ก๋ง ์๋ ค์ค๋๋ค. ( JdbcTemplate, MyBatis, JPA, QueryDsl)
- ๊ทธ๋์ ์ด๋ฏธ ์จ๋ดค๋ค๋ฉด ์๋ถ๋ถ์์ ํฌ๊ฒ ์ป์ด๊ฐ๊ฑด ์๊ธดํฉ๋๋ค. ์คํตํ๊ณ ํ๋ฐ๋ถ ์คํ๋ง ํธ๋์ญ์ ๋ถ๋ถ๋ง ๋ฃ๋ ๊ฒ๋ ์ถ์ฒ๋๋ฆฝ๋๋ค.
- ํ๋ฐ๋ถ์๋ ์คํ๋ง ํธ๋์ญ์ ์ ๋ํด ๊น์ด์๊ฒ ๋ค๋ฃน๋๋ค. โญ๏ธ @Transactional ์ ๋์์๋ฆฌ์ ๋ํด ๋ชจ๋ฅธ๋ค๋ฉด ๋ฐ๋์ ๋ค์ด์ผ ํ ๊ฐ์!
๐ญ ์คํ๋ง ๋ถํธ - ํต์ฌ ์๋ฆฌ์ ํ์ฉ
ํ ๋น๋์ ์คํ๋ง ๋ถํธ ๊ฐ์์ ํจ๊ป ์ด์ฌํ ๋ฃ๋ ์ค.. (2024 ํ๊ธฐ ์์ฑ ์์ )
'๐๊ธฐ๋ณธ ์ง์ > Java ๊ธฐ๋ณธ์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Java ์์ ์๊ฐ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ (Instant.now(), LocalDate.now()) (1) | 2023.01.28 |
---|---|
์์์ ํ๋ฆ๋๋ก ์จ๋ณด๋ DB ํธ๋์ญ์ ์ด์ผ๊ธฐ (0) | 2022.08.15 |
์๋ฐ์ NIO (java.nio) (1) | 2022.03.08 |
์๋ฐ์ ๋์์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋์๊ตฌ์กฐ (Atomic, Adder, Accumulator) (0) | 2022.03.08 |
์ค๋ธ์ ํธ ๋์์ธ ์คํ์ผ #1 ๊ฐ์ฒด์งํฅ, ์๋น์ค ์์ฑํ๊ธฐ (0) | 2021.10.04 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev