springboot 4

πŸ“š [CSλ©΄μ ‘] μŠ€ν”„λ§/μŠ€ν”„λ§ λΆ€νŠΈλž€?

Spring Frame work ? Spring Java의 μ›Ή ν”„λ ˆμž„μ›Œν¬ - Java둜 λ‹€μ–‘ν•œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€κΈ° μœ„ν•œ ν”„λ‘œκ·Έλž˜λ° ν‹€ Javaλ₯Ό μ΄μš©ν•œ Jsp, Mybatis, JPA λ“± 기술 λ“±μž₯ ν”„λ ˆμž„μ›Œν¬ [ Framework ] ν”„λ ˆμž„μ›Œν¬λŠ” μ–΄λ– ν•œ λͺ©μ μ„ λ‹¬μ„±ν•˜κΈ° μœ„ν•΄, λ³΅μž‘ν•˜κ²Œ μ–½ν˜€ μžˆλŠ” 문제λ₯Ό μ‰½κ²Œ ν•΄κ²°ν•˜κΈ° μœ„ν•œ μ•½μ†μ΄μž 도ꡬ이며, μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ— ν•˜λ‚˜μ˜ λΌˆλŒ€ μ—­ν•  자주 쓰일 λ§Œν•œ κΈ°λŠ₯듀을 ν•œκ΅°λ° λͺ¨μ•„ 놓은 μœ ν‹Έ(클래슀)λ“€μ˜ λͺ¨μŒ 무언가 λ§Œλ“€ λ•Œ ν•„μš”ν•œ 도ꡬ듀을 μ‚¬μš©ν•΄ λ§Œλ“œλŠ” 것 같은 κ°œλ… 기본적인 μ„€κ³„λ‚˜ ν•„μš”ν•œ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ•Œμ•„μ„œ(μ˜μ‘΄μ„± μ£Όμž…) ν• ν…Œλ‹ˆ κ°œλ°œμžλŠ” 개발 μ—­λŸ‰μ— 집쀑 κ°€λŠ₯ Spring Frame work의 νŠΉμ§• IoC(Inversion of Control, μ œμ–΄μ˜ μ—­μ „) κ°œλ°œμžλŠ”..

🟒 [Spring] @RequiredArgsConstructor μƒμ„±μž μ£Όμž…

🚩 @RequiredArgsConstructor μƒμ„±μž μ£Όμž… μ•žμ„œ μ˜μ‘΄μ„± μ£Όμž…μ— λŒ€ν•΄ ν¬μŠ€νŒ…μ„ ν–ˆμ—ˆλ‹€. μ˜μ‘΄μ„± μ£Όμž…μ€ 크게 3가지가 μžˆλŠ”λ° κ·Έ 쀑 μƒμ„±μž μ£Όμž…μ„ μ‚¬μš©μ„ ν•΄μ•Όν•œλ‹€κ³  이전에 μ„€λͺ…을 ν–ˆλ‹€. κ·Έ λ•Œ μ„€λͺ…ν•  λ‹Ήμ‹œμ—λŠ” @Autowired μ–΄λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•΄μ„œ λͺ¨λ“  μƒμ„±μžμ— μΆ”κ°€λ₯Ό ν•΄μ£ΌλŠ” 방식을 μ‚¬μš©ν•˜μ˜€μœΌλ‚˜ Lombok을 μ‚¬μš©ν•˜λ©΄ μ½”λ“œκ°€ 더 κΉ”λ”ν•˜κ³  간결해진닀. https://dev-wnstjd.tistory.com/447 🟒 [Spring] μŠ€ν”„λ§ μ˜μ‘΄μ„± μ£Όμž…(DI) - [1] 🚩 μ˜μ‘΄μ„± μ£Όμž…μ˜ κ°œλ…κ³Ό ν•„μš”μ„± [ μ˜μ‘΄μ„± μ£Όμž…μ΄λž€β“] Spring ν”„λ ˆμž„μ›Œν¬λŠ” 3가지 핡심 ν”„λ‘œκ·Έλž˜λ° λͺ¨λΈμ„ μ§€μ›ν•˜κ³  μžˆλ‹€. κ·Έ 쀑 ν•˜λ‚˜λ‹€ μ˜μ‘΄μ„± μ£Όμž…(Dependency Injection, DI) 이닀. DIλŠ” μ™ΈλΆ€μ—μ„œ ..

🟒 [Spring] μŠ€ν”„λ§ μ˜μ‘΄μ„± μ£Όμž…(DI) - [2]

🚩 μƒμ„±μž μ˜μ‘΄μ„± μ£Όμž… [ DI ] 을 μ¨μ•Όν•˜λŠ” 이유 μ €λ²ˆ κΈ€μ—μ„œ μ˜μ‘΄μ„± μ£Όμž…μ— λŒ€ν•΄ μ„€λͺ…ν•˜μ˜€λ‹€. ν•„λ“œ μ£Όμž…, μˆ˜μ •μž μ£Όμž…, μƒμ„±μž μ£Όμž…μ„ μ„€λͺ…ν•˜μ˜€λŠ”λ° 이 쀑 μƒμ„±μž μ£Όμž…μ„ μ¨μ•Όν•˜λŠ” 이유λ₯Ό μ„€λͺ…ν•  것이닀. μƒμ„±μž μ£Όμž…(Constructor Injection)은 μƒμ„±μžλ₯Ό 톡해 의쑴 관계λ₯Ό μ£Όμž…ν•˜λŠ” 방법이닀. @Controller public class ControllerTest{ IServiceTest service; @Autowired public Controller(IServiceTest service){ this.service = service; } μ™œ μƒμ„±μž μ£Όμž…μ„ μ‚¬μš©ν•΄μ•Ό ν• κΉŒ? μƒμ„±μž μ£Όμž…μ€ μƒμ„±μžμ˜ 호좜 μ‹œμ μ— 1회 호좜 λ˜λŠ” 것이 보μž₯λœλ‹€. κ·ΈλŸ¬λ―€λ‘œ μ£Όμž…λ°›μ€ 객체가 λ³€ν•˜μ§€ μ•Šκ±°λ‚˜ λ°˜λ“œμ‹œ 객체..

🟒 [Spring] μŠ€ν”„λ§ 빈(Bean) μ΄λž€?

πŸ“Œ μŠ€ν”„λ§ 빈(Bean) μ΄λž€? 빈(Bean)은 μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— μ˜ν•΄ κ΄€λ¦¬λ˜λŠ” μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ†Œν”„νŠΈμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈμ΄λ‹€. 즉, μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆκ°€ κ΄€λ¦¬ν•˜λŠ” μžλ°” 객체λ₯Ό λœ»ν•˜λ©°, ν•˜λ‚˜ μ΄μƒμ˜ 빈(Bean)을 κ΄€λ¦¬ν•œλ‹€. λΉˆμ€ μΈμŠ€ν„΄μŠ€ν™”λœ 객체λ₯Ό μ˜λ―Έν•˜λ©°, μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— λ“±λ‘λœ 객체λ₯Ό μŠ€ν”„λ§ 빈이라고 ν•œλ‹€. μ‰½κ²Œ μ΄ν•΄ν•˜μžλ©΄ new ν‚€μ›Œλ“œ λŒ€μ‹  μ‚¬μš©ν•œλ‹€κ³  λ³΄λ©΄λœλ‹€. IHelloService helloService = new IHelloService() IHelloService λΌλŠ” μΈν„°νŽ˜μ΄μŠ€κ°€ μ‘΄μž¬ν•˜κ³  helloService μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄μ„œλŠ” new λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ˜€λ‹€. μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆκ°€ κ΄€λ¦¬ν•˜λ„λ‘ ν•˜λŠ” 방법은 빈 νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€. μ΄λ ‡κ²Œ xml 파일 빈 νƒœκ·Έλ₯Ό μΆ”κ°€ν•˜λ©΄ h..