π[Spring] Spring Data JPAλ λΌμ΄λΈλ¬λ¦¬(Library)κ° μλ λͺ¨λ(Module)μΈκ°μ?
-
Spring Data JPAλ Spring Data νλ‘μ νΈμ νμ λͺ¨λ(Module)λ‘, μ΄λ₯Ό λͺ¨λ(Module)μ΄λΌκ³ λΆλ₯΄λ κ²μ΄ λ μ νν©λλ€.
- λ€λ§, λΌμ΄λΈλ¬λ¦¬(Library)λΌλ μ©μ΄μλ μ’ μ’ νΌμ©λμ΄ μ¬μ©λκ³€ ν©λλ€.
- λ μ©μ΄ κ°μ μ½κ°μ μ°¨μ΄κ° μμ§λ§, κ°λ°μλ€μ΄ Spring Data JPAλ₯Ό μ΄μΌκΈ°ν λλ μ£Όλ‘ λͺ¨λ(Module)λ‘μμ μλ―Έλ₯Ό κ°μ‘°ν©λλ€.
1οΈβ£ λͺ¨λ(Module)κ³Ό λΌμ΄λΈλ¬λ¦¬(Library)μ μ°¨μ΄.
1οΈβ£ λͺ¨λ(Module)
- λͺ¨λ(Module)μ νΉμ κΈ°λ₯μ΄λ λͺ©μ μ μ€μ¬μΌλ‘ ꡬμ±λ μ»΄ν¬λνΈλ₯Ό μλ―Ένλ©°, λ ν° μμ€ν μ μΌλΆλΆμΌλ‘ λμν©λλ€.
- Spring Data JPAλ Spring DataλΌλ λ ν° νλ‘μ νΈμ μΌλΆλΆμ΄λ©°, λ°μ΄ν° μ κ·Ό κ³μΈ΅μμ JPA(Java Persistence API)μ Hibernateλ₯Ό μ½κ² μ¬μ©ν μ μλλ‘ νλ κΈ°λ₯μ μ 곡ν©λλ€.
- μ΄ μ μμ Spring Data JPAλ λͺ¨λ(Module)λ‘ λ³Ό μ μμ΅λλ€.
πββοΈ λͺ¨λκ³Ό μ»΄ν¬λνΈλ₯Ό λ κ³ λΈλ‘μ λΉμ ν΄λ³΄λ©΄?!
πββοΈ μννΈμ¨μ΄ 곡νμμμ μ»΄ν¬λνΈ.
πββοΈ μννΈμ¨μ΄ 곡νμμμ λͺ¨λ.
2οΈβ£ λΌμ΄λΈλ¬λ¦¬(Library)
- λΌμ΄λΈλ¬λ¦¬(Library)λ μ¬μ¬μ© κ°λ₯ν μ½λ μ§ν©μΌλ‘, κ°λ°μκ° νΉμ κΈ°λ₯μ μ½κ² ꡬνν μ μλλ‘ λμμ€λλ€.
- Spring Data JPAλ μμ‘΄μ±μΌλ‘ μΆκ°νλ©΄ νλ‘μ νΈμμ μ¬μ© κ°λ₯ν μ½λ μ§ν©μ μ 곡νκΈ° λλ¬Έμ λΌμ΄λΈλ¬λ¦¬(Library)λ‘ λ³Ό μλ μμ΅λλ€.
- νμ§λ§, λ ν° λ§₯λ½μμ λͺ¨λ(Module)μ λ ν° μμ€ν μ μΌλΆλ‘ λμνλ λ°λ©΄, λΌμ΄λΈλ¬λ¦¬(Library)λ λ 립μ μΌλ‘ μ¬μ¬μ© κ°λ₯ν μ½λ μ§ν©μ΄λΌλ μ μμ μ°¨μ΄κ° μμ΅λλ€.
πββοΈ λΌμ΄λΈλ¬λ¦¬(Library)μ νλ μμν¬(Framework)μ μ°¨μ΄μ .
2οΈβ£ Spring Data νλ‘μ νΈμ ꡬ쑰.
-
Spring Dataλ λ°μ΄ν° μ κ·Όμ λ¨μννκΈ° μν΄ λ§λ€μ΄μ§ νλ‘μ νΈλ‘, λ€μν λ°μ΄ν° μ μ₯μμ μ½κ² μ κ·Όν μ μλλ‘ μ¬λ¬ λͺ¨λ(Module)λ‘ κ΅¬μ±λμ΄ μμ΅λλ€.
- μ΄ νλ‘μ νΈλ λ€μν λͺ¨λ(Module)μ ν¬ν¨νκ³ μμΌλ©°, κ° λͺ¨λ(Module)μ νΉμ λ°μ΄ν° μ μ₯μμ λν κΈ°λ₯μ μ 곡ν©λλ€.
- μλ₯Ό λ€μ΄
- Spring Data JPA : JPAλ₯Ό μ¬μ©ν κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μ κ·Όμ μν λͺ¨λ
- Spring Data MongoDB : MongoDBλ₯Ό μ¬μ©ν NoSQL λ°μ΄ν°λ² μ΄μ€ μ κ·Όμ μν λͺ¨λ
- Spring Data Redis : Redis λ°μ΄ν° μ μ₯μ μ κ·Όμ μν λͺ¨λ
- Spring Data Elasticsearch : Elasticsearch μ κ·Όμ μν λͺ¨λ
- μλ₯Ό λ€μ΄
- μ΄ νλ‘μ νΈλ λ€μν λͺ¨λ(Module)μ ν¬ν¨νκ³ μμΌλ©°, κ° λͺ¨λ(Module)μ νΉμ λ°μ΄ν° μ μ₯μμ λν κΈ°λ₯μ μ 곡ν©λλ€.
- μ΄μ²λΌ Spring Data JPAλ Spring Data νλ‘μ νΈμ μ¬λ¬ λͺ¨λ μ€ νλλ‘, JPA(Java Persistence API)λ₯Ό κΈ°λ°μΌλ‘ νλ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database)μμ μνΈμμ©μ λ¨μννλ κΈ°λ₯μ μ 곡νλ μν μ ν©λλ€.
3οΈβ£ Spring Data JPAλ₯Ό λͺ¨λ(Module)λ‘ λ³΄λ μ΄μ .
-
Spring μνκ³μ μΌλΆλΆ
- Spring Data JPAλ Spring Data νλ‘μ νΈμ νμ λͺ¨λλ‘, Springμ μΌκ΄λ ꡬ쑰μ μ€νμΌμ λ°λ₯΄λ©°, λ€λ₯Έ Spring λͺ¨λκ³Ό μμ°μ€λ½κ² ν΅ν©λ©λλ€.
-
νΉμ κΈ°λ₯μ μ§μ€
- Spring Data JPAλ JPAλ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€μ μνΈμμ©νλ κΈ°λ₯μ νΉνλμ΄ μμΌλ©°, μ΄λ¬ν μν μ μ΄μ μ λ§μΆ λ 립μ μΈ λͺ¨λλ‘ μ€κ³λμμ΅λλ€.
-
μμ‘΄μ± κ΄λ¦¬
- Maven λλ Gradleμ μμ‘΄μ±μΌλ‘ μΆκ°ν λ, Spring Data JPA λͺ¨λμ μΆκ°ν¨μΌλ‘μ¨ JPA κΈ°λ° λ°μ΄ν° μ κ·Ό κ³μΈ΅μ μ½κ² ꡬνν μ μμ΅λλ€.
4οΈβ£ μμ½.
- Spring Data JPAλ Spring Data νλ‘μ νΈμ νμ λͺ¨λλ‘μ, JPA κΈ°λ°μ λ°μ΄ν° μ κ·Όμ μ½κ² ν μ μλλ‘ λμμ£Όλ κΈ°λ₯μ μ 곡ν©λλ€.
- μ΄ λͺ¨λμ λ ν° Spring Data μνκ³μ μΌλΆλ‘ λμνλ©°, JPAλ₯Ό μ¬μ©νλ μ ν리μΌμ΄μ μμ λ°μ΄ν°λ² μ΄μ€μμ μνΈμμ©μ λ¨μννλ μν μ ν©λλ€.
- κ°λ°μλ€μ΄ λΌμ΄λΈλ¬λ¦¬μ λͺ¨λμ΄λΌλ μ©μ΄λ₯Ό νΌμ©ν΄ μ¬μ©νκΈ°λ νμ§λ§, Spring Data JPAλ μλ°ν λ§νλ©΄ λͺ¨λλ‘ λ³΄λ κ²μ΄ λ§μ΅λλ€.