🌽 Spring

Spring | @Transactional이 뭔데

kyuu_ng 2022. 12. 15. 00:53

πŸ—„ νŠΈλžœμž­μ…˜?

νŠΈλžœμž­μ…˜μ€ λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œμ΄λ‚˜, μœ μ‚¬ν•œ μ‹œμŠ€ν…œμ—μ„œμ˜ μƒν˜Έμž‘μš© λ‹¨μœ„λ‘œ

λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ‹€λ£° λ•Œ νŠΈλžœμž­μ…˜μ„ μ μš©ν•˜λ©΄ 데이터 μΆ”κ°€, κ°±μ‹ , μ‚­μ œ λ“±μœΌλ‘œ 이루어진 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ‹€κ°€

처리 쀑 였λ₯˜κ°€ λ°œμƒν–ˆμ„ λ•Œ λͺ¨λ“  μž‘μ—…μ„ μ›μƒνƒœλ‘œ 되돌렀주고, λͺ¨λ“  μž‘μ—…μ΄ μ„±κ³΅ν•΄μ•Όλ§Œ μ΅œμ’…μ μœΌλ‘œ λ°μ΄ν„°λ² μ΄μŠ€μ— λ°˜μ˜ν•¨

μŠ€ν”„λ§μ€ μ–΄λ…Έν…Œμ΄μ…˜μ„ μ΄μš©ν•œ νŠΈλžœμž­μ…˜ 처리λ₯Ό μ§€μ›ν•œλ‹€.

 

πŸŒ€Transactional μ–΄λ…Έν…Œμ΄μ…˜

ν•΄λ‹Ή μ–΄λ…Έν…Œμ΄μ…˜μ€ ν΄λž˜μŠ€λ‚˜, λ©”μ„œλ“œμ— 뢙여쀄 겨우 ν•΄λ‹Ή λ²”μœ„ λ‚΄ λ©”μ„œλ“œκ°€ νŠΈλžœμž­μ…˜μ΄ λ˜λ„λ‘ 보μž₯ν•œλ‹€.

이와같이 μ‚¬μš©ν•˜λŠ”κ²ƒμ„ 선언적 νŠΈλžœμž­μ…˜μ΄λΌκ³ ν•˜κ³ , 객체λ₯Ό λ§Œλ“€ ν•„μš” 없이 μ„ μ–Έλ§ŒμœΌλ‘œ 관리λ₯Ό μš©μ΄ν•˜κ²Œ ν•œλ‹€.

 

❓ Transactional μ–΄λ…Έν…Œμ΄μ…˜μ˜ μž‘λ™ 원리와 흐름

  • @Transactional이 뢙은 λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•  κ²½μš°μ—λŠ” Spring은 ν•΄λ‹Ή λ©”μ„œλ“œμ— λŒ€ν•œ ν”„λ‘μ‹œλ₯Ό λ§Œλ“ λ‹€.
    ( ν”„λ‘μ‹œ νŒ¨ν„΄ : μ–΄λ–€ μ½”λ“œλ₯Ό κ°μ‹Έλ©΄μ„œ 좔가적인 연산을 μˆ˜ν–‰ν•˜λ„λ‘ κ°•μ œν•˜λŠ”  방법)
  • νŠΈλžœμž­μ…˜μ˜ 경우 νŠΈλžœμž­μ…˜μ˜ μ‹œμž‘κ³Ό μ—°μ‚° μ’…λ£Œμ‹œ ν„°λ°‹μ˜ 과정이 ν•„μš”ν•˜λ―€λ‘œ ν”„λ‘μ‹œλ₯Ό 생성해 λ©”μ„œλ“œ μ•ž 뒀에 μΆ”κ°€ν•˜κ³ , ν•΄λ‹Ή μ½”λ“œλ‚΄μ˜ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•  λ•Œ μ˜μ†μ„± μ»¨ν…μŠ€νŠΈκ°€ μƒκ²¨λ‚œλ‹€.
  • μ˜μ†μ„± μ»¨ν…μŠ€νŠΈλŠ” νŠΈλžœμž­μ…˜ ν”„λ‘μ‹œ(AOP)κ°€ νŠΈλžœμž­μ…˜μ„ μ‹œμž‘ν•  λ•Œ μƒκ²¨λ‚˜κ³ , λ©”μ„œλ“œκ°€ μ’…λ£Œλ˜μ–΄ AOPκ°€ μ—°μ‚° 결과에 λŒ€ν•΄ 컀밋 ν•  경우 μ˜μ†μ„± μ»¨ν…μŠ€νŠΈκ°€ Flush λ˜λ©΄μ„œ ν•΄λ‹Ή λ‚΄μš©μ΄ 반영되고, 이후 μ»¨ν…μŠ€νŠΈκ°€ μ’…λ£Œλœλ‹€.

 

μ˜μ†μ„± μ»¨ν…μŠ€νŠΈμ˜ λ‚΄μš©μ€ μ•„λž˜μ˜ ν¬μŠ€νŒ…μ„ μ°Έμ‘° ! ✨

https://kyuu-ng.tistory.com/55 

 

Spring | μ˜μ†μ„±μ΄ 뭔데

제λͺ©μ€ λ‚΄κ°€ μš”μ¦˜ κ΅¬κΈ€λ§ν• λ•Œ μ•„μ£Ό μ• μš©ν•˜λŠ” ν‚€μ›Œλ“œμΈλ° γ…‡γ…‡κ°€ 뭔데 λΌλŠ” ν‚€μ›Œλ“œμ΄λ‹€ 근데 μ§„μ§œ 거짓말 μ•ˆν•˜κ³  이걸둜 κ²€μƒ‰ν•˜λ©΄ λ‚˜μ˜ μˆ˜μ€€κ³Ό λΉ„μŠ·ν•œλΆ„λ“€μ΄ ν•œ λ§Ίν˜€μ„œ μ‰½κ²Œ μ„€λͺ…ν•΄μ£Όμ‹  ν¬μŠ€νŒ…

kyuu-ng.tistory.com