๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[Spring] SpEL - Spring Expression Language [Spring] SpEL - Spring Expression Language SpEL(Spring Expression Language)๋ž€? Spring expression language๋Š” ๋ณดํ†ต SpEL๋กœ ํ‘œ๊ธฐํ•˜๋ฉฐ ๊ตฌ๋‘๋กœ๋Š” ์Šคํ”„๋ง EL์ด๋ผ๊ณ  ์ง€์นญํ•œ๋‹ค. SpEL์€ ๋ณดํ†ต ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•˜๊ณ  ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ Unified EL๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ, ๋ฌธ์ž์—ด ํ…œํ”Œ๋ฆฟ ๊ธฐ๋Šฅ ๋“ฑ์˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ‘œํ˜„์‹ ์–ธ์–ด์ด๋‹ค. OGNL, MVEL, JBoss EL ๋“ฑ ์ž๋ฐ”์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์—ฌ๋Ÿฌ EL์ด ์žˆ์ง€๋งŒ SpEL์€ Spring ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ๊ฑธ์ณ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ ์Šคํ”„๋ง 3.0๋ถ€ํ„ฐ ์ง€์›๋œ๋‹ค. SpEL ํ‘œ๊ธฐ๋ฒ• #{ SpELํ‘œํ˜„์‹ } JSP์—์„œ EL์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊บผ๋‚ผ๋•Œ ${ } ์ด.. 2020. 3. 7.
[Spring] ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ - PropertyEditor, Converter ๊ทธ๋ฆฌ๊ณ  Formatter [Spring] ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ - PropertyEditor, Converter ๊ทธ๋ฆฌ๊ณ  Formatter 1. Data Binding(๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ)์˜ ์ •์˜ ๐Ÿ“ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์›น์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜์—ฌ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์€ ์ฃผ๋กœ ๋ฌธ์ž์—ด์ด๋ฉฐ, ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ด ๋ฌธ์ž์—ด์„ ๋„๋ฉ”์ธ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ ํƒ€์ž…(int, date, boolean, ... ๋˜๋Š” ๋„๋ฉ”์ธ ๊ฐ์ฒด ํƒ€์ž… ๊ทธ ์ž์ฒด)์œผ๋กœ ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด ๊ฐ’์„ ํ”„๋กœํผํ‹ฐ ํƒ€์ž…์— ๋งž์ถฐ ๋ณ€ํ™˜ํ•˜์—ฌ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด๋ผ ํ•œ๋‹ค. 2. Spring์˜ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ Spring์€ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๊ธฐ๋Šฅ์„ ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ถ”์ƒํ™”ํ•˜์—ฌ ์ œ๊ณตํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ฃผ๋กœ ์›น MVC์—์„œ ์‚ฌ์šฉํ•˜์ง€๋งŒ web์— ๊ตญํ•œ๋˜์–ด ํŠนํ™”๋œ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๊ณณ.. 2020. 3. 6.
[Spring] Validation ์ถ”์ƒํ™” [Spring] Validation ์ถ”์ƒํ™” org.springframework.validation.Validator๋Š” spring์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฐ์ฒด ๊ฒ€์ฆ์šฉ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ์ฃผ๋กœ spring mvc์—์„œ ์‚ฌ์šฉํ•˜์ง€๋งŒ web ๊ณ„์ธต ์ „์šฉ ๊ฐœ๋…์€ ์•„๋‹ˆ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. Validator๋Š” Java EE ํ‘œ์ค€ ์ŠคํŽ™ ์ค‘ ํ•˜๋‚˜์ธ Bean Validation์„ ์ง€์›ํ•˜์—ฌ Bean Validation์ด ์ œ๊ณตํ•˜๋Š” ์—ฌ๋Ÿฌ ์• ๋…ธํ…Œ์ด์…˜๋“ค์„ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค. 1. Validator ์ธํ„ฐํŽ˜์ด์Šค Validator ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ •์˜๋˜์–ด์žˆ๋‹ค. 1 2 3 4 5 6 boolean supports(Class clazz) { // ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฒ€์ฆ ๋Œ€์ƒ ํƒ€์ž…์ธ์ง€ ํ™•์ธ } void validate.. 2020. 3. 5.
[Spring] Resource ์ถ”์ƒํ™” [Spring] Resource ์ถ”์ƒํ™” Spring์€ java.net.URL์„ org.springframework.core.io.Resource๋กœ ๊ฐ์‹ธ์„œ ์ถ”์ƒํ™”ํ•œ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์†Œ์Šค ์ž์ฒด๋ฅผ ์ถ”์ƒํ™” ํ•œ๊ฒƒ์ธ๋ฐ spring์—์„œ ์ด๋ฅผ ์ถ”์ƒํ™”ํ•œ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. java.net.URL์€ http, https, ftp๋Š” ์ง€์›ํ•˜์ง€๋งŒ classpath๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ์ด ์—†๋‹ค. ServletContext๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ์ด ์—†๋‹ค. ์ƒˆ๋กœ์šด ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•˜์—ฌ URL ์ ‘๋ฏธ์‚ฌ๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ• ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๊ตฌํ˜„์ด ๋ณต์žกํ•˜๊ณ  ํŽธ์˜์„ฑ ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค. Spring์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”์ƒํ™”ํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค๋ฃจ๋Š”๋ฐ ์žˆ์–ด ํ•˜๋‚˜์˜ ํ†ต์ผ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 1. S.. 2020. 3. 5.
[Spring] ResourceLoader๋กœ ํ…์ŠคํŠธ ํŒŒ์ผ ์ถœ๋ ฅํ•˜๊ธฐ (Java 11) [Spring] ResourceLoader๋กœ ํ…์ŠคํŠธ ํŒŒ์ผ ์ถœ๋ ฅํ•˜๊ธฐ (Java 11) Spring์˜ ApplicationContext๋Š” ResourceLoader๋ผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•œ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด๋ฆ„์—์„œ๋ถ€ํ„ฐ ์•Œ ์ˆ˜ ์žˆ๋“ฏ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฝ์–ด์˜ค๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. 1. Resource ๊ฐ์ฒด ์–ป๊ธฐ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.sprin.. 2020. 3. 5.
[Spring] Spring ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”์‹œ์ง€ ๋‹ค๊ตญ์–ด ๋ฐ ์žฌ๋กœ๋”ฉ ์ฒ˜๋ฆฌ [Spring] Spring ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”์‹œ์ง€ ๋‹ค๊ตญ์–ด ๋ฐ ์žฌ๋กœ๋”ฉ ์ฒ˜๋ฆฌ Spring IoC ์ปจํ…Œ์ด๋„ˆ = ApplicationContext๊ฐ€ ๊ฐ–๊ณ ์žˆ๋Š” ๊ธฐ๋Šฅ ์ค‘ MessageSource๋Š” ๊ตญ์ œํ™”(i18n)์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ ์ด๋ฅผ ์ด์šฉํ•ด์„œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถœ๋ ฅํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค๊ตญํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. 1. ๋ฉ”์‹œ์ง€ ํŒŒ์ผ ์ž‘์„ฑ resources ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— messages.properties, messages_ko_KR.properties ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•œ๋‹ค. ์—ฌ๊ธฐ์— ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ถœ๋ ฅํ•  ๋ฉ”์‹œ์ง€๋ฅผ messages.properties์—๋Š” ์˜์–ด๋กœ, messages_ko_KR.proeprties์—๋Š” ํ•œ๊ตญ์–ด๋กœ ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค. ํŒŒ์ผ๋ช…์— ์˜คํƒ€๊ฐ€ ๋‚˜์ง€ ์•Š๋„๋ก ์กฐ์‹ฌํ•˜์ž. ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด ์ž๋™์œผ๋กœ 'messages.. 2020. 3. 4.
[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] ๋นˆ์˜ 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] ์Šคํ”„๋ง 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.