/images/avatar.png

🍞πŸ₯πŸ₯– 라일리의 μ½”λ“œ λΆ€μŠ€λŸ¬κΈ° 🍞πŸ₯πŸ₯–

[Mastering Spring 5.0] 6.8 캐싱

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€. 캐싱 캐싱은 λ§Žμ€ μ‹œκ°„μ΄λ‚˜ 연산이 ν•„μš”ν•œ 일데 λŒ€ν•œ κ²°κ³Όλ₯Ό μ €μž₯ν•΄ λ‘λŠ” 것 이라고 ν•  수 μžˆλ‹€. μ„œλΉ„μŠ€μ˜ 데이터 캐싱은 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„±λŠ₯κ³Ό ν™•μž₯성을 ν–₯μƒμ‹œν‚€λŠ”λ° μ€‘μš”ν•œ 역할을 ν•œλ‹€. μŠ€ν”„λ§μ€ μ–΄λ…Έν…Œμ΄μ…˜μ— κΈ°λ°˜μ„ λ‘” 캐싱 좔상화λ₯Ό μ œκ³΅ν•œλ‹€. JSR-107(JCahce) κ΅¬ν˜„μ²΄ 듀은 λͺ¨λ‘ μ§€μ›ν•œλ‹€. EhCache, Hazelcast, Infinispan, Couchbase, Redis 등이 기본적으둜 μžλ™μ„€μ •μ— ν¬ν•¨λ˜μ–΄ μžˆλ‹€. μŠ€ν”„λ§ λΆ€νŠΈ ν”„λ‘œμ νŠΈμ— 캐싱 μ μš©ν•˜κΈ° μ˜μ‘΄μ„± μΆ”κ°€ spring-boot-starter-cache λ₯Ό pom.xml λ˜λŠ” build.

[Mastering Spring 5.0] 6.7 κ΅­μ œν™”

μŠ€ν”„λ§ 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μž₯ μ˜μ†μ„± 관리 - ν”ŒλŸ¬μ‹œ, μ€€μ˜μ†

μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ° ν•™μŠ΅ λ‚΄μš© μ •λ¦¬ν•œ ν¬μŠ€νŒ… μž…λ‹ˆλ‹€. 3.5 ν”ŒλŸ¬μ‹œ ν”ŒλŸ¬μ‹œ(flush()) λŠ” μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ˜ λ‚΄μš©μ„ λ°μ΄ν„°λ² μ΄μŠ€μ— λ°˜μ˜ν•œλ‹€. μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ˜ λ³€κ²½ λ‚΄μš©μ„ λ°μ΄ν„°λ² μ΄μŠ€μ™€ 동기화 ν•˜λŠ” 것이 ν”ŒλŸ¬μ‹œμ΄λ‹€. ν”ŒλŸ¬μ‹œλ₯Ό μ‹€ν–‰ν•˜λ©΄ λ³€κ²½ 감지가 λ™μž‘ν•˜μ—¬ μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ— μžˆλŠ” λͺ¨λ“  μ—”ν‹°ν‹°λ₯Ό μŠ€λƒ…μƒ·κ³Ό λΉ„κ΅ν•΄μ„œ μˆ˜μ •λœ μ—”ν‹°ν‹°λ₯Ό μ°ΎλŠ”λ‹€. => μˆ˜μ „λœ μ—”ν‹°ν‹°λŠ” μˆ˜μ • 쿼리λ₯Ό λ§Œλ“€μ–΄ 쓰기지연 SQL μ €μž₯μ†Œμ— 등둝 μ“°κΈ° 지연 SQL μ €μž₯μ†Œμ˜ 쿼리λ₯Ό λ°μ΄ν„°λ² μ΄μŠ€μ— μ „μ†‘ν•œλ‹€. ν”ŒλŸ¬μ‹œ 방법 em.flush() νŠΈλžœμž­μ…˜ 컀밋 μ‹œ ν”ŒλŸ¬μ‹œ μžλ™ 호좜 : JPAλŠ” νŠΈλžœμž­μ…˜μ„ 컀밋할 λ•Œ ν”ŒλŸ¬μ‹œλ₯Ό μžλ™μœΌλ‘œ ν˜ΈμΆœν•œλ‹€.

[Mastering Spring 5.0] 6.6 Spring Security - OAuth 2.0

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€. OAuth2 인증 OAuth 2λŠ” μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό Facebook, GitHub 및 DigitalOcean κ³Ό 같은 HTTP μ„œλΉ„μŠ€μ˜μ‚¬μš©μž 계정에 λŒ€ν•œ μ œν•œλœ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ 얻을 수있게 ν•΄μ£ΌλŠ” 인증 ν”„λ ˆμž„ μ›Œν¬μ΄λ‹€. μ΄λŠ” μ‚¬μš©μž 계정을 ν˜ΈμŠ€νŒ…ν•˜λŠ” μ„œλΉ„μŠ€μ— μ‚¬μš©μž 인증을 μœ„μž„ν•˜κ³  타사 μ‘μš© ν”„λ‘œκ·Έλž¨μ— μ‚¬μš©μž 계정에 λŒ€ν•œ μ•‘μ„ΈμŠ€ κΆŒν•œμ„ λΆ€μ—¬ν•˜μ—¬ μž‘λ™ν•˜κ²Œ λœλ‹€. OAuth 2λŠ” μ›Ή 및 λ°μŠ€ν¬ν†± μ‘μš© ν”„λ‘œκ·Έλž¨ 및 λͺ¨λ°”일 μž₯μΉ˜μ— λŒ€ν•œ 인증 흐름을 μ œκ³΅ν•˜κ²Œ λœλ‹€.

[μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ°] 3μž₯ μ˜μ†μ„± 관리 - EntityManagerFactory, EntityManager, μ˜μ†μ„±μ»¨ν…μŠ€νŠΈ, μ—”ν‹°ν‹° 생λͺ…μ£ΌκΈ°, μ˜μ†μ„±μ»¨ν…μŠ€νŠΈμ˜ νŠΉμ§•

μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ° ν•™μŠ΅ λ‚΄μš© μ •λ¦¬ν•œ ν¬μŠ€νŒ… μž…λ‹ˆλ‹€. JPAκ°€ μ œκ³΅ν•˜λŠ” κΈ°λŠ₯ 엔티티와 ν…Œμ΄λΈ”μ„ λ§€ν•‘ν•˜λŠ” 섀계 λΆ€λΆ„ λ§€ν•‘ν•˜λŠ” μ—”ν‹°ν‹°λ₯Ό μ‹€μ œ μ‚¬μš©ν•˜λŠ” λΆ€λΆ„ 3.1 μ—”ν‹°ν‹° λ§€λ‹ˆμ € νŒ©ν† λ¦¬μ™€ μ—”ν‹°ν‹° λ§€λ‹ˆμ € EntityManagerFactory EntityManagerFactoryλŠ” 이름 κ·ΈλŒ€λ‘œ EntityManagerλ₯Ό λ§Œλ“œλŠ” 곡μž₯이닀. 곡μž₯을 λ§Œλ“œλŠ” λΉ„μš©μ€ μƒλ‹Ήνžˆ 크닀. κ·ΈλŸ¬λ―€λ‘œ ν•œ 개만 λ§Œλ“€μ–΄μ„œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 전체에 κ³΅μœ ν•˜λ„λ‘ 섀계해야 ν•œλ‹€. EntityManagerFactory λŠ” μ—¬λŸ¬ μŠ€λ ˆλ“œμ—μ„œ λ™μ‹œμ— 접근해도 μ•ˆμ „ν•˜λ―€λ‘œ μ„œλ‘œ λ‹€λ₯Έ μŠ€λ ˆλ“œκ°„ κ³΅μœ ν•΄λ„ λœλ‹€. JPA κ΅¬ν˜„μ²΄λ“€μ€ EntityManagerFactory μƒμ„±μ‹œ 컀λ„₯μ…˜ 풀을 λ§Œλ“ λ‹€. 1 2 // MET-INF/persistence.

[μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ°] 2μž₯ JPA μ‹œμž‘

μžλ°” 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에 접속할 수 μžˆλŠ” 화면이 λ‚˜μ˜¨λ‹€.