๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[Spring] EnvironmentCapable - Property ์‚ฌ์šฉํ•˜๊ธฐ ๊ด€๋ จ ๊ธ€ - JAVA ์›น ํ”„๋กœ์ ํŠธ์—์„œ Properties ํŒŒ์ผ ํ™œ์šฉํ•˜๊ธฐ - [Spring] EnvironmentCapable - Profile ์‚ฌ์šฉํ•˜๊ธฐ [Spring] EnvironmentCapable - Property ์‚ฌ์šฉํ•˜๊ธฐ ApplicationContext๋Š” EnvironmentCapable์„ ์ƒ์†๋ฐ›์œผ๋ฉฐ, EnvironmentCapable์ด ์ œ๊ณตํ•˜๋Š” ์ฃผ์š” ๊ธฐ๋Šฅ์—๋Š” profile๊ณผ property๊ฐ€ ์žˆ๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ทธ ์ค‘ property์— ๋Œ€ํ•ด ์‚ดํŽด๋ณธ๋‹ค. 1. Property ๊ธฐ๋Šฅ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ key, value ์Œ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ํ”„๋กœํผํ‹ฐ์— ๊ฐ„ํŽธํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. Spring์€ ํ”„๋กœํผํ‹ฐ์— '๊ณ„์ธตํ˜•'์œผ๋กœ ์ ‘๊ทผํ•˜๋Š”๋ฐ ๊ณ„์ธตํ˜•์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค๋Š” ๋ง์€ ํ”„๋กœํผํ‹ฐ์— ์šฐ์„ ์ˆœ์œ„๊ฐ€.. 2020. 3. 4.
[Spring] EnvironmentCapable - Profile ์‚ฌ์šฉํ•˜๊ธฐ [Spring] EnvironmentCapable - Profile ์‚ฌ์šฉํ•˜๊ธฐ Spring์˜ ApplicationContext๋Š” BeanFactory ๊ธฐ๋Šฅ๋งŒ ํ•˜๋Š”๊ฑด ์•„๋‹ˆ๋‹ค. ApplicationContext๊ฐ€ ์ƒ์†๋ฐ›๋Š” ๋‹ค์–‘ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋“ค ์ค‘ EnvironmentCapable ์ธํ„ฐํŽ˜์ด์Šค๋Š” 'Profile(ํ”„๋กœํŒŒ์ผ)' ์ด๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. Profile(ํ”„๋กœํŒŒ์ผ)์˜ ๊ฐœ๋… ํ”„๋กœํŒŒ์ผ = ๋นˆ๋“ค์˜ ๋ฌถ์Œ ํ”„๋กœํŒŒ์ผ์€ ํŠน์ • ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ๋นˆ๋“ค์˜ ๋ฌถ์Œ์ด๋‹ค. ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ๋นˆ ๋ฌถ์Œ๊ณผ ํ”„๋กœ๋•์…˜(์šด์˜) ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ๋นˆ ๋ฌถ์Œ์ด ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ ๊ฐ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ๋นˆ๋“ค์„ ์จ์•ผํ•˜๋Š” ๊ฒฝ์šฐ, ํŠน์ • ํ™˜๊ฒฝ์—์„œ๋งŒ ๋“ฑ๋กํ•ด์•ผํ•˜๋Š” ๋นˆ๋“ค์ด ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœํŒŒ์ผ์€ ๊ทธ๋Ÿฌํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋Š”.. 2020. 3. 4.
[Spring] ๋นˆ์˜ Scope - ์‹ฑ๊ธ€ํ†ค๊ณผ ํ”„๋กœํ† ํƒ€์ž… [Spring] ๋นˆ์˜ Scope - ์‹ฑ๊ธ€ํ†ค๊ณผ ํ”„๋กœํ† ํƒ€์ž… ๋นˆ์„ ๋“ฑ๋กํ•  ๋•Œ ์•„๋ฌด๋Ÿฐ ์„ค์ •์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋นˆ์€ ์‹ฑ๊ธ€ํ†ค scope์„ ๊ฐ–๋Š”๋‹ค. ์‹ฑ๊ธ€ํ†ค scope์ด๋ž€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์— ๊ฑธ์ณ ํ•ด๋‹น ๋นˆ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์˜ค์ง ํ•˜๋‚˜๋งŒ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 1. Singleton Scope Single, Proto ํด๋ž˜์Šค๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ  @Component๋ฅผ ๋ถ™์—ฌ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•œ๋‹ค. Single.java 1 2 3 4 5 6 7 8 9 10 11 12 13 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class Single { @.. 2020. 3. 3.
[Spring] Component Scan๊ณผ Function์„ ์‚ฌ์šฉํ•œ ๋นˆ ๋“ฑ๋ก ๋ฐฉ๋ฒ• [Spring] Component Scan๊ณผ Function์„ ์‚ฌ์šฉํ•œ ๋นˆ ๋“ฑ๋ก ๋ฐฉ๋ฒ• 1. @ComponentScan @ComponentScan ์• ๋…ธํ…Œ์ด์…˜์€ spring 3.1๋ถ€ํ„ฐ ๋„์ž…๋์œผ๋ฉฐ ์„ค์ •๋œ ์‹œ์ž‘ ์ง€์ ๋ถ€ํ„ฐ ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค๋ฅผ scanningํ•˜์—ฌ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค๋Š” ๋‹ค์Œ ์• ๋…ธํ…Œ์ด์…˜์ด ๋ถ™์€ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. @Component @Repository @Service @Controller @Configuration @ComponentScan์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‘ ๊ฐ€์ง€ ์†์„ฑ์€ component๋ฅผ scanํ•  ์‹œ์ž‘ ์ง€์ ์„ ์„ค์ •ํ•˜๋Š” ์†์„ฑ๊ณผ scanํ•œ component ์ค‘ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜์ง€ ์•Š์„ ํด๋ž˜์Šค๋ฅผ ์ œ์™ธํ•˜๋Š” ํ•„ํ„ฐ ์†์„ฑ์ด๋‹ค. 1) Scan ์‹œ์ž‘ ์ง€์  ์„ค์ • - basePackages()์™€.. 2020. 3. 2.
[Spring] @Autowired ๋™์ž‘ ์›๋ฆฌ - BeanPostProcessor [Spring] @Autowired ๋™์ž‘ ์›๋ฆฌ - BeanPostProcessor @Autowired ์• ๋…ธํ…Œ์ด์…˜์„ ์ƒ์„ฑ์ž, setter, ํ•„๋“œ์— ๋ถ™์ด๊ธฐ๋งŒ ํ•จ์œผ๋กœ์จ ๊ฐ„ํŽธํ•˜๊ฒŒ ์˜์กด์„ฑ์„ ์ฃผ์ž…๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ์–ด๋–ป๊ฒŒ ๊ทธ๋ ‡๊ฒŒ ๋™์ž‘ํ• ์ˆ˜ ์žˆ๋Š”์ง€, ๊ทธ ์›๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด @Autowired ์• ๋…ธํ…Œ์ด์…˜์€ BeanPostProcessor๋ผ๋Š” ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์ฒด์ธ AutowiredAnnotationBeanPostProcessor์— ์˜ํ•ด ์˜์กด์„ฑ ์ฃผ์ž…์ด ์ด๋ฃจ์–ด์ง„๋‹ค. BeanPostProcessor๋Š” ๋นˆ์˜ initializing(์ดˆ๊ธฐํ™”) ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ด์ „, ์ดํ›„์— ํ•„์š”ํ•œ ๋ถ€๊ฐ€ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ดํ”„ ์‚ฌ์ดํด ์ฝœ๋ฐฑ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  BeanPostProcessor์˜ ๊ตฌํ˜„์ฒด์ธ AutowiredAnno.. 2020. 3. 1.
[Spring] @Autowired์˜ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• - required, Primary, Qualifier [Spring] @Autowired์˜ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• - required, Primary, Qualifier 1. ์˜์กด๊ฐ์ฒด ํƒ€์ž…์˜ ๋นˆ์ด ์—†๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด BookService ํด๋ž˜์Šค์™€ BookRepository ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์žˆ๋‹ค. import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class BookService { BookRepository bookRepository; @Autowired public BookService(BookRepository bookRepository) { this.bookRepository = boo.. 2020. 3. 1.
[Spring] ๋นˆ์„ ์„ค์ •ํ•˜๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ• - XML, JAVA, Component Scan [Spring] ๋นˆ์„ ์„ค์ •ํ•˜๋Š” 3๊ฐ€์ง€ ๋ฐฉ๋ฒ• - XML, JAVA, Component Scan ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์˜ˆ์ œ ์ฝ”๋“œ์— ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด spring boot ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋‹ค. ์ฐธ๊ณ ๋กœ ์˜ˆ์ œ ์ฝ”๋“œ์—๋Š” ์ด ์˜์กด์„ฑ์ด ํ•„์š”ํ•˜๋‹ค. Spring Initializr๋ฅผ ์„ ํƒํ•˜๊ณ  Next๋ฅผ ํด๋ฆญํ•œ๋‹ค. Group, Artifact, Name์„ ์ž…๋ ฅํ•˜๊ณ  Next๋ฅผ ํด๋ฆญํ•œ๋‹ค. Group์€ ํŒจํ‚ค์ง€๋ช…์„ ์ ์–ด์ค€๋‹ค. (๋ณดํ†ต ๋„๋ฉ”์ธ๋ช…์„ ๋’ค์ง‘์–ด์„œ..) Web - Spring Web์„ ๋„ฃ๊ณ  Next๋ฅผ ํด๋ฆญํ•œ๋‹ค. Finish๋ฅผ ํด๋ฆญํ•ด์„œ ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์™„๋ฃŒํ•œ๋‹ค. Spring boot ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. pom.xml์„ ์—ด์–ด๋ณด๋ฉด spring boot 2.2.5 ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์šฐ์ธก์˜.. 2020. 3. 1.
[Spring] ์™œ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๊นŒ? [Spring] ์™œ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๊นŒ? IoC๋Š” spring์„ ํ†ตํ•ด์„œ๋งŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์•„๋‹ˆ๋ฉฐ ์ผ๋ฐ˜ ์ž๋ฐ” ๊ฐ์ฒด๋กœ DI๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ• ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ๋„ spring์˜ IoC ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. DI(Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…) DI๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค spring์—์„œ ์ œ๊ณตํ•˜๋Š” IoC ์ปจํ…Œ์ด๋„ˆ์˜ DI๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด ํŽธ๋ฆฌํ•˜๊ณ  ํšจ์œจ์ ์ด๋‹ค. ๊ฐ์ฒด์˜ Scope ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ์˜ ๋นˆ์œผ๋กœ ๋งŒ๋“ค๋ฉด ๊ฐ์ฒด์˜ scope๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์šฉ์ดํ•˜๋‹ค. IoC ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ๋นˆ๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ฑ๊ธ€ํ†ค scope๋กœ ๋“ฑ๋ก๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „๋ฐ˜์ ์œผ๋กœ ์˜ค๋กœ์ง€ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š” ๊ฐ์ฒด๋ผ๋ฉด IoC ์ปจํ…Œ์ด๋„ˆ์— ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•ด์„œ ์•„.. 2020. 3. 1.
[Spring] ์Šคํ”„๋ง PSA [Spring] ์Šคํ”„๋ง PSA 1. PSA(Portable Service Abstraction) Spring์€ Spring Triangle์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…์„ ์ œ๊ณตํ•ด์ค€๋‹ค. ๊ฐ๊ฐ IoC, AOP, PSA๋ฅผ ์ผ์ปซ๋Š”๋‹ค. Spring์˜ PetClinic ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด ์„œ๋ธ”๋ฆฟ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์„œ๋ธ”๋ฆฟ์ด ์ „ํ˜€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ์ง€ @Controller ์• ๋…ธํ…Œ์ด์…˜์ด ๋ถ™์–ด์žˆ๋Š” ํด๋ž˜์Šค์—์„œ @GetMapping, @PostMapping๊ณผ ๊ฐ™์€ @RequestMapping ์• ๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด์„œ ์š”์ฒญ์„ ๋งคํ•‘ํ•œ๋‹ค. ์‹ค์ œ๋กœ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์„œ๋ธ”๋ฆฟ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ๋™์ž‘ํ•˜์ง€๋งŒ ์„œ๋ธ”๋ฆฟ ๊ธฐ์ˆ ์€ ์ถ”์ƒํ™” ๊ณ„์ธต์— ์˜ํ•ด ์ˆจ๊ฒจ์ ธ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์‚ฌ์šฉํ•ด์„œ ์–ด๋–ค ๊ธฐ์ˆ ์„ ๋‚ด๋ถ€์— ์ˆจ๊ธฐ๊ณ  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํŽธ์˜์„ฑ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” .. 2020. 3. 1.
[Spring] ์Šคํ”„๋ง AOP ๊ฐœ๋… ์ดํ•ด ๋ฐ ์ ์šฉ ๋ฐฉ๋ฒ• [Spring] ์Šคํ”„๋ง AOP ๊ฐœ๋… ์ดํ•ด ๋ฐ ์ ์šฉ ๋ฐฉ๋ฒ• 1. AOP(Aspect Oriented Programming) Spring์€ Spring Triangle์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…์„ ์ œ๊ณตํ•ด์ค€๋‹ค. ๊ฐ๊ฐ IoC, AOP, PSA๋ฅผ ์ผ์ปซ๋Š”๋‹ค. AOP๋Š” Aspect Oriented Programming์˜ ์•ฝ์ž๋กœ '์ธก๋ฉด/์–‘์ƒ ์ง€ํ–ฅ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ'์ด๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. '์ธก๋ฉด/์–‘์ƒ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ'์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”๊ฐ€? class A { method a() { AAAA method a๊ฐ€ ํ•˜๋Š” ์ผ๋“ค BBBB } method b() { AAAA method b๊ฐ€ ํ•˜๋Š” ์ผ๋“ค BBBB } } class B { method c() { AAAA method c๊ฐ€ ํ•˜๋Š” ์ผ๋“ค BBBB } } cs ์œ„์™€ ๊ฐ™์ด ๋™์ผํ•œ ์ผ์„ ํ•˜๋Š”.. 2020. 2. 29.
[Spring] ์˜์กด์„ฑ ์ฃผ์ž…(DI, Dependency Injection)์˜ ์„ธ๊ฐ€์ง€ ๋ฐฉ๋ฒ• [Spring] ์˜์กด์„ฑ ์ฃผ์ž…(DI, Dependency Injection)์˜ ์„ธ๊ฐ€์ง€ ๋ฐฉ๋ฒ• Spring์€ @Autowired ์• ๋…ธํ…Œ์ด์…˜์„ ์ด์šฉํ•œ ๋‹ค์–‘ํ•œ ์˜์กด์„ฑ ์ฃผ์ž… ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. @Autowired ์• ๋…ธํ…Œ์ด์…˜์€ Spring์—๊ฒŒ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•˜๋ผ๋Š” ์ง€์‹œ์ž ์—ญํ• ๋กœ ์“ฐ์ด๋Š”๋ฐ ์ƒ์„ฑ์ž, ํ•„๋“œ, ์„ธํ„ฐ์— ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿšจ Spring IoC ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•œ ์˜์กด์„ฑ ์ฃผ์ž…์€ ๋นˆ(Bean) ๋ผ๋ฆฌ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. 1. ์ƒ์„ฑ์ž ์ฃผ์ž… 1 2 3 4 5 6 7 8 9 @Component public class SampleController { private SampleRepository sampleRepository; @Autowired public SampleController(SampleRepository sampleRepo.. 2020. 2. 28.
[Spring] ์Šคํ”„๋ง ๋นˆ(Bean)์˜ ๊ฐœ๋…๊ณผ ์ƒ์„ฑ ์›๋ฆฌ [Spring] ์Šคํ”„๋ง ๋นˆ(Bean)์˜ ๊ฐœ๋…๊ณผ ์ƒ์„ฑ ์›๋ฆฌ ๋นˆ(Bean) Spring IoC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ๋นˆ(Bean)์ด๋ผ๋Š” ์šฉ์–ด๋กœ ๋ถ€๋ฅธ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ new ์—ฐ์‚ฐ์ž๋กœ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ–ˆ์„ ๋•Œ ๊ทธ ๊ฐ์ฒด๋Š” ๋นˆ์ด ์•„๋‹ˆ๋‹ค. ApplicationContext.getBean()์œผ๋กœ ์–ป์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋Š” ๋นˆ์ด๋‹ค. ์ฆ‰ Spring์—์„œ์˜ ๋นˆ์€ ApplicationContext๊ฐ€ ์•Œ๊ณ ์žˆ๋Š” ๊ฐ์ฒด, ์ฆ‰ ApplicationContext๊ฐ€ ๋งŒ๋“ค์–ด์„œ ๊ทธ ์•ˆ์— ๋‹ด๊ณ ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์–ด๋–ป๊ฒŒ Spring IoC ์ปจํ…Œ์ด๋„ˆ์— ๋นˆ์„ ๋“ฑ๋กํ• ๊นŒ? ๋นˆ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌ๊ฒŒ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. โ‘  Component Scanning โ‘ก ๋นˆ ์„ค์ •ํŒŒ์ผ์— ์ง์ ‘ ๋นˆ์„ ๋“ฑ๋ก Component Scan @Comp.. 2020. 2. 28.