Spring/Spring Quick Start (45) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์คํ๋ง ์ปจํ ์ด๋์ ์ข ๋ฅ BeanFactory ์คํ๋ง ์ค์ ํ์ผ์ ๋ฑ๋ก๋ Bean ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ง ์ ๊ณตํ๋ค. ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ํด์ Bean ๊ฐ์ฒด๊ฐ ์ฌ์ฉ๋๋ ์์ (Lazy Loading) ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์คํ๋ง ํ๋ก์ ํธ์์๋ ์ฌ์ฉ๋ ์ผ์ด ์๋ค! BeanFactory๋ฅผ ์์ํ ApplicationContext Bean ๊ฐ์ฒด ์์ฑ ๋ฐ ๊ด๋ฆฌ, ํธ๋์ญ์ ๊ด๋ฆฌ, ๋ฉ์์ง ๊ธฐ๋ฐ์ ๋ค๊ตญ์ด ์ฒ๋ฆฌ, AOP ์ฒ๋ฆฌ, ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ง์ ๋ฑ ๋ง์ ๋ถ๋ถ์ ์ง์ํ๊ณ ์๋ค. ์ปจํ ์ด๋๊ฐ ๊ตฌ๋๋๋ ์์ ์ ๊ฐ์ฒด๋ค์ ์์ฑํ๋ Pre-Loading ๋ฐฉ์์ผ๋ก ๋์ํ๋ค. ApplicationContext์ ๊ตฌํ ํด๋์ค๋ ๋งค์ฐ ๋ค์ํ๋ฐ ๋ฐ์ ๋ ํด๋์ค๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค. GenericXmlApplicationnCont.. IoC, ๋ฎ์ ๊ฒฐํฉ๋ ํ๋ก๊ทธ๋๋ฐ ์ดํดํ๊ธฐ IoC(Inversion of Control): ์ ์ด์ ์ญํ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ฐ์ฒด ๊ฐ์ ์์กด๊ด๊ณ๋ฅผ ์์ค์ฝ๋๋ก ์ฒ๋ฆฌํ์ง ์๊ณ ์ปจํ ์ด๋๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ ์๋ฏธํ๋ค. IoC๋ฅผ ์ด์ฉํ๋ฉด ๋ฎ์ ๊ฒฐํฉ๋์ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํ ์ ์๋ค. ๊ฒฐํฉ๋๊ฐ ๋์ ํ๋ก๊ทธ๋จ์ ์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค. ๋ฐ์ ๊ฒฐํฉ๋๊ฐ ๋์ ํ๋ก๊ทธ๋จ์ ์์ด๋ค. public class LgTV { public void turnOn() { System.out.println("LgTV---์ ์ ์ผ ๋ค."); } public void turnOff() { System.out.println("LgTV---์ ์ ๋๋ค."); } public void soundUp() { System.out.println("LgTV---์๋ฆฌ ์ฌ๋ฆฐ๋ค."); } public voi.. ํ๋ ์์ํฌ๋? ์คํ๋ง ํ๋ ์์ํฌ๋? ํ๋ ์์ํฌ ๊ฐ๋ ํ๋ ์์ํฌ๋ ๊ฐ๋ฐ์์ ๊ธฐ๋ณธ์ด ๋๋ ๋ผ๋๋ ํ์ ์ ๊ณตํ๋ค. ๊ฐ๋ฐ์๋ ๋ผ๋์ ์ด์ ๋ถ์ด๋ ์์ ์ ํ๋ ๊ฒ์ด๋ค. ์ฅ์ ๋น ๋ฅธ ๊ตฌํ ์๊ฐ ์ฌ์ด ๊ด๋ฆฌ ๊ฐ๋ฐ์๋ค์ ์ญ๋ ํ์ผํ ๊ฒ์ฆ๋ ์ํคํ ์ฒ์ ์ฌ์ฌ์ฉ๊ณผ ์ผ๊ด์ ์ ์ง ์คํ๋ง ํ๋ ์์ํฌ ์คํ๋ง ํ๋ ์์ํฌ๋ ๋ก๋ ์กด์จ์ด 2004๋ ์ ๋ง๋ ์คํ์์ค ํ๋ ์์ํฌ์ด๋ค. ์คํ๋ง์ ํ ์ค๋ก "IoC์ AOP๋ฅผ ์ง์ํ๋ ๊ฒฝ๋์ ์ปจํ ์ด๋ ํ๋ ์์ํฌ"๋ผ๊ณ ํ ์ ์๋ค. ๊ฒฝ๋(Lightweight) ์คํ๋ง์ ์ฌ๋ฌ ๊ฐ์ ๋ชจ๋๋ก ๊ตฌ์ฑ๋์ด์์ผ๋ฉฐ, ๊ฐ ๋ชจ๋์ ํ๋ ์ด์์ JAR ํ์ผ๋ก ๊ตฌ์ฑ๋จ. ๋ช ๊ฐ์ JAR ํ์ผ๋ง ์์ผ๋ฉด ๊ฐ๋ฐ๊ณผ ์คํ์ด ๊ฐ๋ฅํ๋ค. ์คํ๋ง ํ๋ ์์ํฌ๊ฐ POJO(Plain Old Java Object)ํํ์ ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ๋ค. (POJO๋ ํด๋์ค๋ฅผ ๊ตฌํํ๋๋ฐ ํน๋ณํ ๊ท.. InTelliJ๋ก ์คํ๋ง ํ๋ก์ ํธ ์์ํ๊ธฐ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ ์ฑ ์์๋ Eclipse, Tomcat ์๋ฒ, H2 database๋ฅผ ์ฌ์ฉํ๋ค. ํ์ง๋ง ๋๋ ๊ธฐ์กด์ eclipse๋ก Spring ๊ฐ๋ฐ์ ํ๋ค๊ฐ ๋๋ฌด ํ๋๋ ์ผ์ด ๋ง์๋ค... ๊ทธ๋์ jetbrains์ฌ์ intelliJ๋ก ์ค์ต์ ์งํํ ์์ ์ด๋ค. ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ญ์ SQL๋ฌธ์ ์ด๋ฏธ ์๊ณ ์๋ MySQL๋ก ๋ฐ๊ฟ์ ์งํํ ์์ ์ด๋ค. ๋์ ์ค์ต ํ๊ฒฝ์ intelliJ + Tomcat ์๋ฒ + MySQL์ด๋ค. Spring ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒ์ ์๊ฐ๋ณด๋ค ๋ณต์กํ๋ค. ์ธํ๋ฐ์ "์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ IntelliJ IDEA ์ค์ " ๋ฌด๋ฃ ๊ฐ์๋ฅผ ํตํด ๋์์ ๋ฐ์๋ค. ๊ฐ์์ ๋ง๋ถ์ด์๋ฉด, ๋ํ์ ์ ๋ถ์ด๋ผ๋ฉด intelliJ์ ultimate(์ ๋ฃํ)์ ๋ฌด๋ฃ๋ก ์ฝ๊ฒ ๋ค์ด ๋ฐ์ ์ธ ์ ์๋ค. ์ค์ต ํ๋ก.. ๐ซ Spring Quick Start ๐ซ ์ฑ ์ ๋ณด 2020.12.24-2020.12.28 ์๋ ๐ซ ์๋ก Spring์ ๊ณต๋ถํด๋ณธ ์ด๋ ฅ์ ์์ผ๋ ๊ทผ๋ณธ์ ์ธ ๊ฐ๋ ์ ์ฌ์ ํ ์ ๋ชจ๋ฅธ๋ค๊ณ ํ๋จํ๋ค. ๊ทธ๋์ Spring์ ๋ํ ๋๋ ค์์ด ๋ง์๋ ์ฐฐ๋, ์ ๋ฐฐ๋์ ์ถ์ฒ์ ํตํด ์ฑ ์ ๊ตฌ๋งคํด์ ๊ฐ๋ณ๊ฒ ์ฝ์ด๋ณด์๋ค. ํญ์ ๊ฐ์๋ฅผ ํตํด ๊ณต๋ถํ์๋๋ฐ, ๊ฐ๋ ๋ค์ด ์ ๋๋ ๋ง๋ก ์ ๋ฆฌ๋์ด ์์ด์ ์ดํด๊ฐ ํจ์ฌ ์ ๋์๋ค. ์๋ ๋ถ๋ถ์ ๋น ๋ฅด๊ฒ ์ง๋๊ฐ๊ณ , ๋ชจ๋ฅด๋ ๋ถ๋ถ์ ๊ฒ์ํ๋ฉด์ ์ด์ฌํ ์ฝ์๋ค. ๋๋ถ์ ๋๋ฌด ํจ์จ์ ์ผ๋ก ๊ณต๋ถํ ์ ์์๋ค. java ๊ฐ๋ฐ์๊ฐ ๋ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์๊ฐ์ด ์ง๋๋ฉด์ ๊น๋จน๋ ๊ฒ ์๊น๊ธฐ๋ ํ๊ณ ๊ธฐ๋กํ๋ฉด์ ๋น ๋ฅด๊ฒ 2ํ๋ ํ๋ ๊ฒ๋ ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํด์ ์ ๋ฆฌ ๋ ธํธ๋ฅผ ์ฝ๋์ ํจ๊ป ์์ฑํ๋ ค ํ๋ค. ์ฝ๋๋ฅผ ์ ๋ฆฌํ๋ ๊ฒ์ด ๋ฐ๋ก ์ด ๋ ํฌ์งํ ๋ฆฌ์ ๋ชฉ์ ์ด๋ผ ํ ์ ์๊ฒ ๋ค. ์ .. ์ด์ 1 2 3 ๋ค์