Redis 기반의 캐싱 및 λŒ€κΈ°μ—΄ 관리λ₯Ό ν†΅ν•œ μ½˜μ„œνŠΈ μ˜ˆμ•½ μ„œλΉ„μŠ€ μ„±λŠ₯ κ°œμ„ 
Β·
πŸ’» 개발/πŸ€ Spring
λ“€μ–΄κ°€λ©°μ΄λ²ˆ μ‹œκ°„μ—λŠ” μ½˜μ„œνŠΈ μ˜ˆμ•½ μ„œλΉ„μŠ€μ˜ μ„±λŠ₯을 κ°œμ„ ν•˜κΈ° μœ„ν•΄ ν˜„μž¬ μ‹œλ‚˜λ¦¬μ˜€μ˜ 쑰회 API 쀑 캐싱을 μ μš©ν•  뢀뢄에 λŒ€ν•΄ κ³ λ―Όν•΄ 보고, κΈ°μ‘΄ RDBμ—μ„œ μž‘λ™λ˜κ³  있던 λŒ€κΈ°μ—΄ λ‘œμ§μ„ Redis둜 μ΄κ΄€ν•˜λŠ” 과정에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 또 캐싱 μ „ν›„ ν…ŒμŠ€νŠΈ κ²°κ³Ό 비ꡐλ₯Ό 톡해 μ–Όλ§ˆλ‚˜ μ„±λŠ₯이 κ°œμ„ λ˜λŠ”μ§€λ„ 체크해 보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€.    μΊμ‹œ 적용 κΈ°μ€€μš°μ„  μΊμ‹œλ₯Ό μ μš©ν•  λ•Œ κ³ λ €ν•΄μ•Ό ν•  기쀀은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. 1. 쑰회 λΉ„μš©μ΄ λ†’μ€μ§€λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό μ‘°νšŒν•˜λŠ” λΉ„μš©μ΄ 큰 경우 캐싱을 톡해 μ„±λŠ₯을 κ°œμ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 2. μ–Όλ§ˆλ‚˜ 자주 μ‘°νšŒλ˜λŠ”μ§€λ°˜λ³΅μ μΈ μš”μ²­μ΄ λ§Žμ€ 경우 μΊμ‹œλ₯Ό ν™œμš©ν•˜μ—¬ νš¨μœ¨μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€. 3. 데이터 정합성에 μ΄μŠˆκ°€ μ—†λŠ”μ§€μΊμ‹œλ₯Ό μ‚¬μš©ν•  경우, μΊμ‹œλœ 데이터와 원본 데이터 κ°„μ˜ μ •ν•©..
μ½˜μ„œνŠΈ μ˜ˆμ•½ μ„œλΉ„μŠ€μ—μ„œ Lock μ„±λŠ₯ 비ꡐ해보기 (feat. 낙관적 락, 비관적 락, λΆ„μ‚° 락)
Β·
πŸ’» 개발/🎸 ETC
λ“€μ–΄κ°€λ©°μ½˜μ„œνŠΈ μ˜ˆμ•½ μ„œλΉ„μŠ€μ™€ 같은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” λ™μ‹œμ„± 처리λ₯Ό κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ’Œμ„ 예맀 μ˜€ν”ˆ μ‹œ μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ™μ‹œμ— μ˜ˆμ•½μ„ μ‹œλ„ν•˜λ©΄, μžμ›μ΄ μ•ˆμ „ν•˜κ²Œ κ΄€λ¦¬λ˜μ§€ μ•Šμ„ 경우 μ˜ˆμ•½μ΄ μ΄ˆκ³Όλ˜κ±°λ‚˜ 데이터 일관성이 깨질 μœ„ν—˜μ΄ μžˆμŠ΅λ‹ˆλ‹€. 이번 μ‹œκ°„μ— μ½”λ“œ 적용 및 ν…ŒμŠ€νŠΈλ₯Ό 톡해 각 λ™μ‹œμ„± 처리 λ°©μ‹μ˜ μž₯단점을 κ²€ν† ν•˜κ³ , μ΅œμ’…μ μœΌλ‘œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— μ ν•©ν•œ λ™μ‹œμ„± 처리 방식을 μ„ μ •ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.  λ™μ‹œμ„± μ΄μŠˆκ°€ λ°œμƒν•  수 μžˆλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 μ„œλΉ„μŠ€μ—μ„œ λ™μ‹œμ„± μ΄μŠˆκ°€ λ°œμƒν•  수 μžˆλŠ” μ£Όμš” λ‘œμ§μ€ μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.μ’Œμ„ μ˜ˆμ•½λ½μ„ κ±Έμ–΄μ•Ό ν•˜λŠ” μžμ›seatν…Œμ΄λΈ”μ˜ statusconcert_scheduleν…Œμ΄λΈ”μ˜ available_seats포인트 μΆ©μ „ 및 κ²°μ œλ½μ„ κ±Έμ–΄μ•Ό ν•˜λŠ” μžμ›userν…Œμ΄λΈ”μ˜ balancereserv..