๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JPA2

[Spring] ๊ฐ„๋‹จํ•œ ์‡ผํ•‘๋ชฐ ์˜ˆ์ œ ๋„๋ฉ”์ธ ์„ค๊ณ„ ํšŒ์› ๊ธฐ๋Šฅ ํšŒ์› ๋“ฑ๋ก ํšŒ์› ์กฐํšŒ ์ƒํ’ˆ ๊ธฐ๋Šฅ ์ƒํ’ˆ ๋“ฑ๋ก ์ƒํ’ˆ ์ˆ˜์ • ์ƒํ’ˆ ์กฐํšŒ ์ฃผ๋ฌธ ๊ธฐ๋Šฅ ์ƒํ’ˆ ์ฃผ๋ฌธ ์ฃผ๋ฌธ ๋‚ด์—ญ ์กฐํšŒ ์ฃผ๋ฌธ ์ทจ์†Œ ๊ธฐํƒ€ ์š”๊ตฌ์‚ฌํ•ญ ์ƒํ’ˆ์˜ ์žฌ๊ณ  ๊ด€๋ฆฌ ์ƒํ’ˆ ์ข…๋ฅ˜๋กœ๋Š” ๋„์„œ, ์Œ๋ฐ˜, ์˜ํ™” (์นดํ…Œ๊ณ ๋ฆฌ) ์ƒํ’ˆ ์ฃผ๋ฌธ์‹œ ๋ฐฐ์†ก ์ •๋ณด ์ž…๋ ฅ ๋„๋ฉ”์ธ ๋ชจ๋ธ๊ณผ ํ…Œ์ด๋ธ” ์„ค๊ณ„ ํšŒ์›, ์ฃผ๋ฌธ, ์ƒํ’ˆ์˜ ๊ด€๊ณ„ : ํšŒ์›์€ ์—ฌ๋Ÿฌ ์ƒํ’ˆ ์ฃผ๋ฌธ ๊ฐ€๋Šฅ (์ฃผ๋ฌธ ↔๏ธ ์ƒํ’ˆ ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„) ํ•˜์ง€๋งŒ ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—”ํ‹ฐํ‹ฐ์—์„œ ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ฃผ๋ฌธ ์ƒํ’ˆ์ด๋ผ๋Š” ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ผ๋Œ€๋‹ค, ๋‹ค๋Œ€์ผ ๊ด€๊ณ„๋กœ ํ’€์–ด๋‚ธ๋‹ค. ์ƒํ’ˆ ๋ถ„๋ฅ˜ : ๋„์„œ, ์Œ๋ฐ˜, ์˜ํ™”๋Š” ์ƒํ’ˆ์ด๋ผ๋Š” ๊ณตํ†ต ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ƒ์† ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ํšŒ์›(Member): ์ด๋ฆ„๊ณผ ์ž„๋ฒ ๋””๋“œ ํƒ€์ž…์ธ ์ฃผ์†Œ(Address), ๊ทธ๋ฆฌ๊ณ  ์ฃผ๋ฌธ(orders) ๋ฆฌ์ŠคํŠธ.. 2023. 7. 23.
Spring - DB์ ‘๊ทผ5 (JPA) JPA๋Š” ๊ธฐ์กด์˜ ๋ฐ˜๋ณต ์ฝ”๋“œ๋Š” ๋ฌผ๋ก ์ด๊ณ , ๊ธฐ๋ณธ์ ์ธ SQL๋„ JPA๊ฐ€ ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ•ด์ค€๋‹ค. JPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, SQL๊ณผ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์˜ ์„ค๊ณ„์—์„œ ๊ฐ์ฒด ์ค‘์‹ฌ์˜ ์„ค๊ณ„๋กœ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ „ํ™˜์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. JPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. JPA๋Š” ์ž๋ฐ” ์ง„์˜์—์„œ ORM(Object-Relational Mapping) ๊ธฐ์ˆ  ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ์ด๋‹ค. ๊ทธ ๋ง์€ ์ฆ‰, ์‹ค์ œ์ ์œผ๋กœ ๊ตฌํ˜„๋œ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ตฌํ˜„๋œ ํด๋ž˜์Šค์™€ ๋งคํ•‘์„ ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. JPA๋ฅผ ๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์˜คํ”ˆ์†Œ์Šค๋กœ๋Š” Hibernate๊ฐ€ ์žˆ๋‹ค. ORM(Object-Relational Mapping) ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜ ์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ Class์™€ RDB(Relational DataBase)์˜ ํ…Œ์ด๋ธ”์„ ๋งค.. 2023. 7. 4.