ππ₯π₯ λΌμΌλ¦¬μ μ½λ λΆμ€λ¬κΈ° ππ₯π₯
μ€νλ§ 5.0 λ§μ€ν° μ€ν°λ μ€νλ§ 5.0 λ§μ€ν° μ€ν°λ νμ΅ λ΄μ© μ 리μ
λλ€. μΊμ± μΊμ±μ λ§μ μκ°μ΄λ μ°μ°μ΄ νμν μΌλ° λν κ²°κ³Όλ₯Ό μ μ₯ν΄ λλ κ² μ΄λΌκ³ ν μ μλ€. μλΉμ€μ λ°μ΄ν° μΊμ±μ μ΄ν리μΌμ΄μ
μ μ±λ₯κ³Ό νμ₯μ±μ ν₯μμν€λλ° μ€μν μν μ νλ€. μ€νλ§μ μ΄λ
Έν
μ΄μ
μ κΈ°λ°μ λ μΊμ± μΆμνλ₯Ό μ 곡νλ€. JSR-107(JCahce) ꡬν체 λ€μ λͺ¨λ μ§μνλ€. EhCache, Hazelcast, Infinispan, Couchbase, Redis λ±μ΄ κΈ°λ³Έμ μΌλ‘ μλμ€μ μ ν¬ν¨λμ΄ μλ€. μ€νλ§ λΆνΈ νλ‘μ νΈμ μΊμ± μ μ©νκΈ° μμ‘΄μ± μΆκ° spring-boot-starter-cache λ₯Ό pom.xml λλ build.
μ€νλ§ 5.0 λ§μ€ν° μ€ν°λ μ€νλ§ 5.0 λ§μ€ν° μ€ν°λ νμ΅ λ΄μ© μ 리μ
λλ€. κ΅μ ν κ΅μ νλ λ€μν μΈμ΄ λ° λ¬ΈνκΆμ μμ μ¬μ©ν μ μλ 컨ν
μΈ λ₯Ό μ 곡ν μ μλλ‘ μ΄ν리μΌμ΄μ
μ μμ±νλ κ²μ μλ―Ένλ€. κ΅μ ν(internationalization) λ₯Ό I18Nμ΄λ i18nμΌλ‘, νμ§ν localizationλ₯Ό L10Nμ΄λ l10n λ±μΌλ‘ νκΈ°νκΈ°λ νλ€. μ€νλ§ λΆνΈλ κ΅μ νλ₯Ό μν μ§μ κΈ°λ₯μ λ΄μ₯νκ³ μλ€.
μ€νλ§λΆνΈνλ‘μ νΈμμ κ΅μ ν μ§μμ€μ νκΈ° Application.java μ LocaleResolver μΆκ°νλ€.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Bean public SessionLocaleResolver localResolver() { SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver(); sessionLocaleResolver.
μλ° ORM νμ€ JPA νλ‘κ·Έλλ° νμ΅ λ΄μ© μ 리ν ν¬μ€ν
μ
λλ€.
3.5 νλ¬μ νλ¬μ(flush()) λ μμμ± μ»¨ν
μ€νΈμ λ΄μ©μ λ°μ΄ν°λ² μ΄μ€μ λ°μνλ€. μμμ± μ»¨ν
μ€νΈμ λ³κ²½ λ΄μ©μ λ°μ΄ν°λ² μ΄μ€μ λκΈ°ν νλ κ²μ΄ νλ¬μμ΄λ€. νλ¬μλ₯Ό μ€ννλ©΄ λ³κ²½ κ°μ§κ° λμνμ¬ μμμ± μ»¨ν
μ€νΈμ μλ λͺ¨λ μν°ν°λ₯Ό μ€λ
μ·κ³Ό λΉκ΅ν΄μ μμ λ μν°ν°λ₯Ό μ°Ύλλ€. => μμ λ μν°ν°λ μμ 쿼리λ₯Ό λ§λ€μ΄ μ°κΈ°μ§μ° SQL μ μ₯μμ λ±λ‘ μ°κΈ° μ§μ° SQL μ μ₯μμ 쿼리λ₯Ό λ°μ΄ν°λ² μ΄μ€μ μ μ‘νλ€. νλ¬μ λ°©λ² em.flush() νΈλμμ
μ»€λ° μ νλ¬μ μλ νΈμΆ : JPAλ νΈλμμ
μ 컀λ°ν λ νλ¬μλ₯Ό μλμΌλ‘ νΈμΆνλ€.
μ€νλ§ 5.0 λ§μ€ν° μ€ν°λ μ€νλ§ 5.0 λ§μ€ν° μ€ν°λ νμ΅ λ΄μ© μ 리μ
λλ€. OAuth2 μΈμ¦ OAuth 2λ μ΄ν리μΌμ΄μ
κ³Ό Facebook, GitHub λ° DigitalOcean κ³Ό κ°μ HTTP μλΉμ€μμ¬μ©μ κ³μ μ λν μ νλ μ‘μΈμ€ κΆνμ μ»μ μμκ² ν΄μ£Όλ μΈμ¦ νλ μ μν¬μ΄λ€. μ΄λ μ¬μ©μ κ³μ μ νΈμ€ν
νλ μλΉμ€μ μ¬μ©μ μΈμ¦μ μμνκ³ νμ¬ μμ© νλ‘κ·Έλ¨μ μ¬μ©μ κ³μ μ λν μ‘μΈμ€ κΆνμ λΆμ¬νμ¬ μλνκ² λλ€. OAuth 2λ μΉ λ° λ°μ€ν¬ν± μμ© νλ‘κ·Έλ¨ λ° λͺ¨λ°μΌ μ₯μΉμ λν μΈμ¦ νλ¦μ μ 곡νκ² λλ€.
μλ° ORM νμ€ JPA νλ‘κ·Έλλ° νμ΅ λ΄μ© μ 리ν ν¬μ€ν
μ
λλ€.
JPAκ° μ 곡νλ κΈ°λ₯ μν°ν°μ ν
μ΄λΈμ 맀ννλ μ€κ³ λΆλΆ 맀ννλ μν°ν°λ₯Ό μ€μ μ¬μ©νλ λΆλΆ 3.1 μν°ν° 맀λμ ν©ν 리μ μν°ν° 맀λμ EntityManagerFactory EntityManagerFactoryλ μ΄λ¦ κ·Έλλ‘ EntityManagerλ₯Ό λ§λλ 곡μ₯μ΄λ€. 곡μ₯μ λ§λλ λΉμ©μ μλΉν ν¬λ€. κ·Έλ¬λ―λ‘ ν κ°λ§ λ§λ€μ΄μ μ ν리μΌμ΄μ
μ 체μ 곡μ νλλ‘ μ€κ³ν΄μΌ νλ€. EntityManagerFactory λ μ¬λ¬ μ€λ λμμ λμμ μ κ·Όν΄λ μμ νλ―λ‘ μλ‘ λ€λ₯Έ μ€λ λκ° κ³΅μ ν΄λ λλ€. JPA ꡬν체λ€μ EntityManagerFactory μμ±μ 컀λ₯μ
νμ λ§λ λ€. 1 2 // MET-INF/persistence.
μλ° ORM νμ€ JPA νλ‘κ·Έλλ° νμ΅ λ΄μ© μ 리ν ν¬μ€ν
μ
λλ€.
1. H2 λ°μ΄ν°λ² μ΄μ€ μ€μΉ H2DB λ μλ° κΈ°λ°μ μ€νμμ€ κ΄κ³ν λ°μ΄ν° λ² μ΄μ€μ΄λ€. λ³λμ μ€μΉκ³Όμ μ΄ νμνμ§ μκ³ μ©λλ 1.7M λ‘ κ°λ³λ€. SQL λ¬Έλ²μ λ€λ₯Έ DBMS μ λ§μ°¬κ°μ§λ‘ νμ€ SQLμ΄ λλΆλΆ μ§μλλ€.
H2 λ°μ΄ν° λ² μ΄μ€ μ€μΉλ°©λ² μλ λ§ν¬μμ zip νμΌμ λ΄λ €λ°μ μμΆμ νΌλ€.
http://www.h2database.com/html/main.html μμΆμ νΌ κ³³μμ bin/h2.sh λ₯Ό μ€ννλ€. μ€νμ΄ μλ£λλ©΄ http://localhost:8082 λ‘ μ μνλ©΄ H2μ μ μν μ μλ νλ©΄μ΄ λμ¨λ€.