๐ŸŒฑ JPA๋ž€?

@Grinยท February 05, 2025 ยท 1 min read

JPA๋ž€?

1. JPA๋Š” ๊ฐœ๋ฐœ์ž์˜ sql ์ฟผ๋ฆฌ ์ž‘์—…์„ ์ตœ์†Œํ™” ํ•ด์ค€๋‹ค.

2. ์ปฌ๋Ÿผ ์ถ”๊ฐ€ ์‹œ ์ฟผ๋ฆฌ๋ฌธ์„ ์ผ๊ด„ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์„ ํ•ด๊ฒฐํ•ด์ค€๋‹ค.

3. CRUD ์ฟผ๋ฆฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค

4. ๊ฐ์ฒด๋ฅผ ์ž๋ฐ” ์ปฌ๋ ‰์…˜์— ์ €์žฅํ•˜ ๋“ฏ DB์— ์ €์žฅํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค.

Java Persistence API

์ž๋ฐ” ์ง„์˜์˜ ORM ๊ธฐ์ˆ  ํ‘œ์ค€

  • Object-Relational Mapping(๊ฐ์ฒด ๊ด€๊ณ„ ๋งคํ•‘)

    • ๊ฐ์ฒด๋Š” ๊ฐ์ฒด๋Œ€๋กœ ์„ค๊ณ„
    • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Œ€๋กœ ์„ค๊ณ„
    • ORM ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ค‘๊ฐ„์—์„œ ๋งคํ•‘

JPA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • SQL ์ค‘์‹ฌ ๊ฐœ๋ฐœ์—์„œ ๊ฐ์ฒด ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœ

    • ORM์ด ์ค‘๊ฐ„์—์„œ ๋ฌธ์ œ ํ•ด๊ฒฐ
    • ์ž๋ฐ” ๊ฐ์ฒด ์ปฌ๋ ‰์…˜ ์กฐํšŒํ•˜๋“ฏ ๋˜์ง€๋ฉด ๋œ๋‹ค.
  • ์ƒ์‚ฐ์„ฑ

    • SQL ๋ฐ˜๋ณต ์ž‘์—…์„ ํ•˜์ง€ ์•Š์Œ
  • ์œ ์ง€๋ณด์ˆ˜

    • JPA๊ฐ€ ์ง์ ‘ SQL ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ์žฅ์ ์ด ์žˆ์Œ
  • ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๋ถˆ์ผ์น˜ ํ•ด๊ฒฐ
  • ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์ถ”์ƒํ™”์™€ ๋ฒค๋” ๋…๋ฆฝ์„ฑ

    • JPA๋Š” ์ถ”์ƒํ™”๋œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ณ„์ธต์„ ์ œ๊ณตํ•ด ํŠน์ • ๋ฒค๋”์— ์ข…์†์ ์ด์ง€ ์•Š์Œ
    • ์–ด๋–ค DB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ง€ ์„ค์ •๋งŒ ํ•ด์ฃผ๋ฉด ๋จ

์œ ์ง€๋ณด์ˆ˜

  • JPA ํ•„๋“œ๋งŒ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด SQL์€ JPA๊ฐ€ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.
  • ํŠธ๋žœ์ ์…˜ ์•ˆ์—์„œ ์กฐํšŒํ›„ ๋ณ€๊ฒฝ ์ง„ํ–‰ํ•˜๋ฉด ํŠธ๋žœ์ ์…˜ ๋ณ€๊ฒฝ ์‹œ์ ์—์„œ ์—…๋ฐ์ดํŠธ ์ฟผ๋ฆฌ๊ฐ€ ์ง„ํ–‰๋˜๋ฉฐ ์ปค๋ฐ‹์ด ์ง„ํ–‰๋œ๋‹ค.

    public class Member {
    private String memberId;
    private String name;
    private String tel;  // ์ถ”๊ฐ€๋œ ํ•„๋“œ
    }
@Grin
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ