2021-05-25(Tue)
Facts (μ¬μ€, κ°κ΄)
μ½λμ¨ 4μ£Όμ°¨ κ°μλ₯Ό μκ°νμλ€.
Feelings (λλ, μ£Όκ΄)
μ΄μ μ μ€μ νΈλ μ΄λλ λμ repository κ°μ²΄λ‘ κ΄μ¬μ λΆλ¦¬νλ μμ€μΌλ‘ μ½λλ₯Ό λ°μ μμΌ°λλ°, μμ¬λμ΄ κ°μμμ κ°μ νλ¦μΌλ‘ ꡬννμλκ±Έ λ³΄κ³ κ΄ν λΏλ―νλ€.
ννΈ λ΄κ° μμ§ μμκ³Ό ꡬνμ λν κ°λ
μ΄ λΆμ‘±ν κ²μ λκΌλ€. CrudRepository
μ TaskRepository
λ₯Ό λͺ¨λ μμν JpaTaskRepository
λ₯Ό InMemoryTaskRepository
μ ꡬννλ λΆλΆμμ νΌλμ΄ μ°Ύμμλ€.
λ μΈν°νμ΄μ€λ₯Ό μμν μΈν°νμ΄μ€λ₯Ό ꡬννλ κ²μ΄λ, λ μΈν°νμ΄μ€μ μν λͺ¨λ λ©μλλ₯Ό ꡬνν΄μΌν κ² κ°μλ°, κ°μμμλ μΌλΆλ§ ꡬνν κ²μ²λΌ 보μκΈ° λλ¬Έμ΄λ€. ν μλ§ λ΄κ° μ°©κ°ν κ² κ°μλ°, λ΄μΌ 볡μ΅ν΄λ΄μΌκ² λ€.
JPAκ° λ₯μνμ§ μμλ°, μ΄λ² μ£Όμ λ§μ΄ λ°°μμΌκ² λ€.
Findings (λ°°μ΄ μ )
μ€λ²λΌμ΄λ©μ λν μ€ν΄
μμ¬λμ΄ Iterableμ 리ν΄νλ λ©μλλ₯Ό Listλ₯Ό 리ν΄νλ λ©μλλ‘ μ€λ²λΌμ΄λ©νλ κ²μ 보며 λ΄κ° μ€λ²λΌμ΄λ©μ μ λλ‘ λͺ¨λ₯΄λ κ²μ λκ»΄μ λ€μ νμ΄λ³΄μλ€.
κ²°κ³Όμ μΌλ‘ μ€λ²λΌμ΄λ©μ λν΄μ μ€ν΄νκ³ μμλ€.
λ΄κ° μκ³ μλμ€λ²λΌμ΄λ©μ 쑰건μ λ€μκ³Ό κ°μλ€.
μμ ν΄λμ€μμ μ€λ²λΌμ΄λ©νλ λ©μλλ μ‘°μ ν΄λμ€μ λ©μλμ
μ΄λ¦μ΄ κ°μμΌ νλ€.
맀κ°λ³μκ° κ°μμΌ νλ€.
λ°ννμ μ΄ κ°μμΌ νλ€.
κ·Έλ°λ° JDK1.5λΆν°λ 'κ³΅λ³ λ°ννμ (covariant return type)'μ΄ μΆκ°λμ΄, λ°ννμ μ μμ ν΄λμ€μ νμ μΌλ‘ λ³κ²½νλ κ²μ΄ κ°λ₯νλλ‘ μ‘°κ±΄μ΄ μν λμλ€λ κ²μ μκ² λμλ€.
ν΄λ¦° μν€ν
μ²
μ ν΄λ¦° μν€ν μ²μμλ κ΄μ¬μ¬μ λ°λΌ layerλ₯Ό λλμλ€. μμ‘΄μ±μ λ°©ν₯μ κ΄λ¦¬ν΄μΌ νλλ°, μμ‘΄μ±μ΄ λ°κΉ₯ μμμ μμΌλ‘ ν₯νλλ‘ κ΅¬νν΄μΌ νλ€. λλ©μΈ layerλ μ κ·Έλ¦Όμ μν°ν°μ ν΄λΉνλ€.
μμ‘΄ λ°©ν₯μ μμλ΄κΈ° μν΄ μ½λλ₯Ό κ³ μΉκ³ μ€λ₯λ₯Ό νμΈνλ ν ν¬λμ λ°°μ λ€.
JPA
Javμ ORM κΈ°μ νμ€μΌλ‘, μΈν°νμ΄μ€μ λͺ¨μμ΄λ€. Spring data νλ‘μ νΈ μ€ JPAλ₯Ό νμ©ν νλ‘μ νΈμΈ Spring data JPAλ₯Ό νμ΅νλ€. JPAμ μν°ν°λ DBμ μν°ν°μ μ μ¬νλ€. λ³΄ν΅ ν μ΄λΈ νλκ° κ°μ²΄ νλμ λμλλ ννλ€.
ν
μ€νΈλ?
@DataJpaTest
λ‘ μ€μ JPAμ μ°κ²°μν€κ±°λ, λͺ©νΉνλ©΄ λλ€.
ννΈ μ±
μμ λΆλ¦¬νκΈ° λλ¬Έμ, saveκ° μ±κ³΅νμ λ taskμ κ°μκ° λ¬λΌμ§λ κ²μ TaskService
κ° μλλΌ Respository
ν΄λμ€μ ν
μ€νΈμμ κ²μ¦νλ κ²μ΄ λ°λμ§ν κ² κ°λ€.
ννΈ resources λλ ν 리 μμ application.yml
νμΌμ λ§λ€μ΄μ DB μ°κ²°μ λͺ
μν μ μλ€.
Affimation (μκΈ° μ μΈ)
λλ ν루ν루 μ±μ₯νλ κ°λ°μλ€.
Last updated