컀λ„₯μ…˜μ΄λž€ (컀λ„₯μ…˜ ν’€, 컀λ„₯μ…˜ 고갈)
Β·
Spring/JPA
컀λ„₯μ…˜(Connection)μ΄λž€?DB와 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μž‡λŠ” 'ν†΅λ‘œ'일반적으둜 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ μš”μ²­μ„ λ°›μœΌλ©΄ λ°μ΄ν„°λ² μ΄μŠ€(DB)에 정보λ₯Ό μ‘°νšŒν•˜κ±°λ‚˜ λ³€κ²½ν•œ λ’€ κ·Έ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•œλ‹€. μ΄λ•Œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ DB와 λŒ€ν™”ν•˜κΈ° μœ„ν•΄μ„œλŠ” 연결이 ν•„μš”ν•˜λ‹€. 이 ν†΅λ‘œκ°€ λ°”λ‘œ 컀λ„₯μ…˜(Connection)이닀. μ»€λ„₯μ…˜ μƒμ„±μ—”λŠ” λΉ„μš©μ΄ λ“ λ‹€.컀λ„₯μ…˜μ„ μƒμ„±ν•˜λŠ” λ°μ—λŠ” 생각보닀 λ§Žμ€ λΉ„μš©μ΄ λ“ λ‹€. 예λ₯Ό λ“€μ–΄,λ„€νŠΈμ›Œν¬ μ†ŒμΌ“μ„ 열고인증(μ‚¬μš©μžλͺ…/λΉ„λ°€λ²ˆν˜Έ) 과정을 거치고DB와 ν•Έλ“œμ…°μ΄ν¬(λŒ€ν™” μ€€λΉ„) ν•˜λŠ” 과정등이 ν•„μš”ν•˜λ‹€. 이런 과정을 λ§€ μš”μ²­λ§ˆλ‹€ μƒˆλ‘œ ν•˜λ©΄ λΆˆν•„μš”ν•œ μ‹œκ°„ λ‚­λΉ„κ°€ 컀진닀.컀λ„₯μ…˜ ν’€(Connection Pool)μ΄λž€?미리 컀λ„₯μ…˜μ„ λ§Œλ“€μ–΄λ‘λŠ” μ „λž΅μ»€λ„₯μ…˜μ„ 맀번 μƒˆλ‘œ λ§Œλ“œλŠ” λŒ€μ‹ , 컀λ„₯μ…˜ ν’€(Connection Pool)이..
@Transactional을 μ‚¬μš©ν•˜λŠ” 이유
Β·
Spring/JPA
@Transactional의 κΈ°λ³Έ κ°œλ…μ •μ˜@Transactional은 μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ œκ³΅ν•˜λŠ” μ–΄λ…Έν…Œμ΄μ…˜μœΌλ‘œ, ν•΄λ‹Ή λ©”μ†Œλ“œλ‚˜ ν΄λž˜μŠ€μ—μ„œ μ‹€ν–‰λ˜λŠ” DB μž‘μ—…(INSERT, UPDATE, DELETE λ“±)을 ν•˜λ‚˜μ˜ νŠΈλžœμž­μ…˜ λ²”μœ„ μ•ˆμ—μ„œ μ²˜λ¦¬ν•˜λ„λ‘ ν•˜λŠ” 역할을 ν•œλ‹€.κΈ°λŠ₯λͺ¨λ“  DB 연산을 ν•˜λ‚˜μ˜ μ›μžμ  λ‹¨μœ„λ‘œ λ¬Άμ–΄ 성곡 μ‹œ 일괄 컀밋, μ‹€νŒ¨ μ‹œ 일괄 둀백을 톡해 데이터 무결성과 일관성을 보μž₯ν•œλ‹€.@Transactional을 μ‚¬μš©ν•˜λŠ” 이유1. μ›μžμ„±(Atomicity) 보μž₯λ©”μ†Œλ“œ μ‹€ν–‰ 쀑 ν•˜λ‚˜μ˜ μž‘μ—…μ΄λΌλ„ μ‹€νŒ¨ν•˜λ©΄, ν•΄λ‹Ή λ©”μ†Œλ“œ λ‚΄ λͺ¨λ“  λ³€κ²½ 사항을 λ‘€λ°±ν•œλ‹€. 예λ₯Ό λ“€μ–΄ INSERT ν›„ UPDATEμ—μ„œ μ˜ˆμ™Έ λ°œμƒ μ‹œ, INSERT λ˜ν•œ μ·¨μ†Œλ˜μ–΄ DB μƒνƒœκ°€ μ΄μ „μœΌλ‘œ λ³΅μ›λœλ‹€.2. 일관성(Consistency..