λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
λ°˜μ‘ν˜•

Spring/Spring Internal3

Spring @Transactional λ™μž‘ κ³Όμ • μŠ€ν”„λ§μ„ μ‚¬μš©ν•˜λ‹€λ³΄λ©΄ νŠΈλžœμž­μ…˜μ„ ꡉμž₯히 많이 μ‚¬μš©ν•˜κ³ , 또 μ†μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€. 그렇기에 @Transactional μ–΄λ…Έν…Œμ΄μ…˜μ„ μΆ”κ°€ν•΄μ„œ μ‚¬μš©ν•˜κΈ°λ§Œ ν•œλ‹€λ©΄, 이와 κ΄€λ ¨ν•˜μ—¬ λ°œμƒν•  수 μžˆλŠ” λ¬Έμ œλ“€(Self Invocation, private λ©”μ„œλ“œ 호좜 λ“±)에 λŒ€ν•΄ μΈμ§€ν•˜μ§€ λͺ»ν•˜κ³  μ‚¬μš©ν•˜λŠ” κ²½μš°λ„ κ½€λ‚˜ 많이 봐왔닀. κ·Έλ ‡λ‹€λ©΄, μŠ€ν”„λ§μ—μ„œ @Transactional μ–΄λ…Έν…Œμ΄μ…˜μ€ λ‚΄λΆ€μ—μ„œ μ–΄λ–»κ²Œ λ™μž‘ν• κΉŒ? λ”°λΌκ°€λ³΄μž. 디버깅할 예제 μ½”λ“œλŠ” λ‹€μŒκ³Ό 같이 νŠΈλžœμž­μ…˜μ—μ„œ λͺ‡λͺ‡ 속성듀을 μ»€μŠ€ν…€κ°’μœΌλ‘œ μ„€μ •ν•œλ‹€.@Transactional( propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED, timeout = 30, r.. 2025. 12. 28.
Spring @ComponentScan λ™μž‘ κ³Όμ • Springμ—μ„œ ν΄λž˜μŠ€μ— @Configuration, @RestController, @Service λ“±μ˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ μ„ μ–Έν•˜λ©΄ μŠ€ν”„λ§μ€ ν•΄λ‹Ή μ–΄λ…Έν…Œμ΄μ…˜λ“€μ„ μŠ€μΊ”ν•΄μ„œ 빈으둜 등둝을 ν•΄μ£ΌλŠ”λ°μš”, μ΄λŸ¬ν•œ 역할을 ν•˜λŠ” 것이 @ComponentScan μ–΄λ…Έν…Œμ΄μ…˜ μž…λ‹ˆλ‹€. @ComponentScan 은 단어 κ·ΈλŒ€λ‘œ @Component μ–΄λ…Έν…Œμ΄μ…˜μ΄ 뢙은 ν΄λž˜μŠ€λ“€μ„ μŠ€μΊ”ν•˜μ—¬ μŠ€ν”„λ§ 빈으둜 λ“±λ‘ν•˜λŠ”λ°, μœ„μ— μ–ΈκΈ‰λœ μ–΄λ…Έν…Œμ΄μ…˜λ“€μ€ λͺ¨λ‘ 내뢀에 @Component μ–΄λ…Έν…Œμ΄μ…˜μ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. μœ„μ™€ 같은 μ–΄λ…Έν…Œμ΄μ…˜λ“€μ„ μ„€μ •ν•˜λ©΄ μŠ€ν”„λ§μ—μ„œλŠ” μ–΄λ–»κ²Œ μ»΄ν¬λ„ŒνŠΈλ“€μ„ μŠ€μΊ”ν•˜κ³ , μŠ€ν”„λ§ 빈으둜 λ“±λ‘ν•˜λŠ”μ§€ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. @ComponentScan ComponentScan μ–΄λ…Έν…Œμ΄μ…˜μ— μ‘΄μž¬ν•˜λŠ” μ£Όμ„μœΌλ‘œ, λŒ€λž΅μ μΈ μ˜λ―ΈλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.. 2023. 12. 9.
Spring Bean 이 λ“±λ‘λ˜λŠ” κ³Όμ • μŠ€ν”„λ§μ„ μ‚¬μš©ν•˜λ‹€ 보면 @Configuration, @Component, @Bean λ“±μ˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ 톡해 μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— λΉˆμ„ λ“±λ‘ν•˜λŠ”λ°μš”, μ–΄λ– ν•œ 과정을 톡해 Bean 이 λ“±λ‘λ˜λŠ”μ§€ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈλŠ” μœ„μ™€ 같이 @Configuration μ–΄λ…Έν…Œμ΄μ…˜μ„ μ„€μ •ν•œ TestConfiguration ν΄λž˜μŠ€κ°€ μ‘΄μž¬ν•˜κ³ , main λ©”μ„œλ“œλ₯Ό ν¬ν•¨ν•œ Main ν΄λž˜μŠ€μ—μ„œ μ–΄λ…Έν…Œμ΄μ…˜ 기반의 AnnotationConfigApplicationContext 객체λ₯Ό μƒμ„±ν•˜κ³ , 이 μƒμ„±μžμ—λŠ” TestConfiguration 객체λ₯Ό μ£Όμž…ν•©λ‹ˆλ‹€. μœ„ 과정을 톡해 μ–΄λ…Έν…Œμ΄μ…˜ 기반의 Spring Bean 이 λ“±λ‘λ˜λŠ” 과정을 μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. BeanFactory BeanFactory μΈν„°νŽ˜μ΄μŠ€λŠ” μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬μ—μ„œ μŠ€ν”„λ§ .. 2023. 12. 2.
λ°˜μ‘ν˜•