λͺ©λ‘μ „체 κΈ€ (162)

EEALL@ONCE

🌱 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 싱글톀 / 싱글톀 νŒ¨ν„΄μ˜ 문제점

μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό 싱글톀 객체가 λ”± 1개만 μƒμ„±λ˜κ³ , κ³΅μœ ν•˜λ„λ‘ 섀계 ->싱글톀 νŒ¨ν„΄ μ–΄λ–€ ν΄λž˜μŠ€κ°€ μΈμŠ€ν„΄μŠ€λ₯Ό 였직 ν•˜λ‚˜λ§Œ μƒμ„±ν•˜λ„λ‘ 보μž₯ν•˜λŠ” νŒ¨ν„΄μž…λ‹ˆλ‹€. 이λ₯Ό 톡해 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ „μ²΄μ—μ„œ κ³΅μœ ν•΄μ•Ό ν•˜λŠ” λ¦¬μ†ŒμŠ€λ‚˜ μƒνƒœλ₯Ό κ΄€λ¦¬ν•˜κ±°λ‚˜, λΆˆν•„μš”ν•œ μΈμŠ€ν„΄μŠ€ 생성을 λ°©μ§€ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. ( 100번 ν˜ΈμΆœν–ˆμ„ μ‹œ 1번만 λ§Œλ“€κ³  κ³΅μœ ν•˜λŠ” ν˜•νƒœ) μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬μ—μ„œ 싱글톀 νŒ¨ν„΄μ€ 기본적으둜 빈(Bean)의 μŠ€μ½”ν”„(scope) 쀑 ν•˜λ‚˜λ‘œ μ œκ³΅λ©λ‹ˆλ‹€. μŠ€ν”„λ§μ€ 기본적으둜 싱글톀 μŠ€μ½”ν”„λ₯Ό μ‚¬μš©ν•˜μ—¬ λΉˆμ„ κ΄€λ¦¬ν•˜λ©°, ν•œ 번 μƒμ„±λœ 빈 μΈμŠ€ν„΄μŠ€λŠ” μ»¨ν…Œμ΄λ„ˆ λ‚΄μ—μ„œ κ³΅μœ λ©λ‹ˆλ‹€. 싱글톀 νŒ¨ν„΄μ€ μ—¬λŸ¬ κ³³μ—μ„œ ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€λ§Œ μ‚¬μš©ν•˜λŠ” κ²½μš°μ— μ‚¬μš©λ˜λ©°, 주둜 μ•„λž˜μ˜ λ°©λ²•μœΌλ‘œ κ΅¬ν˜„λ©λ‹ˆλ‹€: 1. **Private μƒμ„±μž**: 클래슀의 생성..

Spring🌱 2023. 8. 19. 22:45
🌱빈 μ„€μ • 메타 정보

빈의 μ„€μ • 메타 μ •λ³΄λŠ” μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ—κ²Œ μ–΄λ–€ 객체λ₯Ό μƒμ„±ν•˜κ³  μ–΄λ–»κ²Œ 쑰립해야 ν•˜λŠ”μ§€μ— λŒ€ν•œ 정보λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. μŠ€ν”„λ§μ—μ„œ 빈 μ„€μ • 메타 정보λ₯Ό μ œκ³΅ν•˜λŠ” 방법은 크게 μ„Έ κ°€μ§€μž…λ‹ˆλ‹€. 1. **XML μ„€μ •**: 과거에 주둜 μ‚¬μš©λ˜λ˜ λ°©μ‹μœΌλ‘œ, XML νŒŒμΌμ— 빈의 μ •μ˜μ™€ μ˜μ‘΄μ„±μ„ λͺ…μ‹œν•©λ‹ˆλ‹€. 2. **Java Config**: Java 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ 빈 μ„€μ • 정보λ₯Ό μ œκ³΅ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 주둜 `@Configuration` μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•˜λ©°, `@Bean` μ–΄λ…Έν…Œμ΄μ…˜μ„ μ΄μš©ν•˜μ—¬ λΉˆμ„ μ •μ˜ν•©λ‹ˆλ‹€. 3. **Annotation 기반 μ„€μ •**: ν΄λž˜μŠ€λ‚˜ λ©”μ„œλ“œμ— μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜μ—¬ λΉˆμ„ μ„€μ •ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. μ£Όμš” μ–΄λ…Έν…Œμ΄μ…˜μœΌλ‘œλŠ” `@Component`, `@Service`, `@Repositor..

Spring🌱 2023. 8. 19. 22:09