๐ Spring
: Java ๊ธฐ๋ฐ ์คํ์์ค Back-end ํ๋ ์์ํฌ
"๊ฐ๋ฐ์์๊ฒ ๊ฒจ์ธ์ ๋๋๊ณ ๋ด์ด ์๋ค"
๋์ ์ธ ์น์ฌ์ดํธ ๊ฐ๋ฐ์ ์ํ ์ฌ๋ฌ๊ฐ์ง ์๋น์ค๋ฅผ ์ ๊ณตํจ
๋ํ๋ฏผ๊ตญ ๊ณต๊ณต๊ธฐ๊ด ์น์๋น์ค ๊ฐ๋ฐ ์ ์ฌ์ฉ์ ๊ถ์ฅํ๋ ์ ์์ ๋ถ ํ์คํ๋ ์์ํฌ์ ๊ธฐ๋ฐ๊ธฐ์
๐ DI(Dependency Injection)
: ๊ฐ๋ฐ์๊ฐ Spring ํ๋ ์์ํฌ์ ์์กด์ฑ์ฃผ์ โ ๊ฐ์ฒด ๊ฐ ๋์จํ ๊ฒฐํฉ์ ๋ง๋ฆ
์ธ๋ถ์์ ๋ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ฒฐ์ ํด์ฃผ๋ ๋์์ธ ํจํด
๋ ํด๋์ค ์ฌ์ด์ interface
โ ํด๋์ค๋ผ๋ฆฌ๋ ์์กด๊ด๊ณ ๊ณ ์ โ๏ธ, ๋ฐํ์ ์ ๊ด๊ณ๋ฅผ ๋์ ์ผ๋ก ์ฃผ์
โ
์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ ์ฆ๊ฐ
๋จ์ํ ์คํธ ์ฉ์ด
๐ IoC(Inversion of Control)
: ๊ฐ์ฒด์ ์ปจํธ๋กค ์ ์ด๊ถ โ ๊ฐ๋ฐ์ โ, Spring Framework โ
Java ํ๋ก๊ทธ๋๋ฐ์์๋ class ์์ฑ ํ, new ์์ฑ์ โ ๊ฐ์ฒด๋ฅผ ์ง์ ์์ฑ ํ ์ฌ์ฉํจ
Spring์์๋ new ์์ฑ์๋ฅผ ์ด์ฉํด ์์ฑํ ๊ฐ์ฒด โ๏ธ,
Spring์ ์ํ์ฌ ๊ด๋ฆฌ๋นํ๋ Java ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํจ โญ๏ธ
๊ฐ ๊ฐ์ฒด๋ค์ด ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ๊ฒฐ์ ํจ
๊ฐ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฐ์๊ฐ ์ง์ ์์ฑ ๋ฐ ์กฐ์ํจ (๊ฐ์ฒด์์ฑ โ method ํธ์ถ)
"๋ชจ๋ ์์ ์ ๊ฐ๋ฐ์๊ฐ ์ ์ดํ๋ ๊ตฌ์กฐ"
๊ฐ์ฒด์ ์์ฑ ๋ฐ ๊ด๋ฆฌ โ ์์ ์ฃผ์ฒด์ ๋งก๊น
๊ฐ๋ฐ์๊ฐ ์ง์ ๊ฐ์ฒด์์ฑ ๋ฐ ์์กด๊ด๊ณ ์ค์ โ๏ธ
Servlet, Bean โ Spring Framework๊ฐ ๋์ ์ํ
๐ Bean
- Spring IoC ์ปจํ
์ด๋๊ฐ ๊ด๋ฆฌํ๋ Java ๊ฐ์ฒด
- Spring์ ์ํด ์์ฑ๋๊ณ ๊ด๋ฆฌ๋๋ Java ๊ฐ์ฒด
๐ Servlet
- Java๋ฅผ ์ฌ์ฉํด ์น์๋น์ค๋ฅผ ๋ง๋ค ๋ ํ์ํจ
- Client Request์ ๋ํด Response๋ฅผ ๋ค์ ์ ์กํด์ฃผ๋ ์ญํ
- ์น์๋ฒ๊ฐ ๋์ ์ธ ํ์ด์ง๋ฅผ ์ ๊ณตํ ์ ์๋๋ก ๋์์ฃผ๋ ์ดํ๋ฆฌ์ผ์ด์
๐ AOP
: ํต์ฌ๊ธฐ๋ฅ์ ์ ์ธํ ๋ถ์์ ์ธ ๊ธฐ๋ฅ โ Framework๊ฐ ์ ๊ณตํ๋ ํน์ง
Spring project โ security ์ ์ฉ
Spring project โ logging ์ ์ฉ
๊ธฐ์กด ๋น์ฆ๋์ค ๋ก์ง ๋ณ๊ฒฝ โ๏ธ, AOP๋ก ์ถ๊ฐ๊ฐ๋ฅ โ
Spring Framework โ ์ค๋ณต๋๋ ์ฝ๋๋ฅผ ๋ชจ๋ ์ ๊ฑฐํจ
์ฝ๋๊ฐ ๋จ์ํ๊ณ ์ฌ์์ง
JUnit, Mockito ๋ฑ ์ ๋ํ ์คํธ Framework์ ํตํฉ๊ฐ๋ฅ
๊ฐ๋ฐ ํ๋ก๊ทธ๋จ์ ํ์ง์ด ํฅ์๋จ
dependency ์ค์ โ ์ค์ ํ์ผ์ด ๋งค์ฐ ๊ธธ๊ณ ๋ณต์กํจ
dependency ๋ฒ์ ๊ด๋ฆฌ โ ๊ฐ๋ฐ์๊ฐ ํ๋ํ๋ ํด์ค์ผํจ
dependency ์ค์ โ ํ์ค๋ก ๊ฐ๋ฅ
๋ฒ์ ๊ด๋ฆฌ ์๋์ผ๋ก ํด์ค
implementation 'org.springframework.boot:spring-boot-starter-web'
๐ BuildGradle โ dependency ์ถ๊ฐ
๐ ์น๊ฐ๋ฐ ํ์ dependency ๋ชจ๋ ์๋์ผ๋ก ์ถ๊ฐํ๊ณ ๊ด๋ฆฌํด์ค
configuration ์ค์ ๋งค์ฐ ๋ณต์ก
๋ชจ๋ ์ด๋ ธํ ์ด์ ๋ฐ Bean ๋ฑ๋ก ์ค์ ํด์ค์ผํจ
๐ SpringBoot AutoConfiguration
- ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ โ class์ @SpringBootApplication ์ด๋
ธํ
์ด์
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ด์ฅ ํฐ์บฃ์๋ฒ ๋ฑ ์คํ๋จ
- @Component + @Controller + @Service + @Repository
โก๏ธ ์๋์ผ๋ก Bean ๋ฑ๋กํจ
Tomcat, Jetty ๋ฑ ๋ด์ฅ WAS๋ฅผ ๊ฐ์ง๊ณ ์์
jar ํ์ผ๋ก ๊ฐ๋จํ๊ฒ ๋ฐฐํฌ๊ฐ๋ฅ
SpringBoot Framework๋ Spring Framework๋ณด๋ค ๊ฐ๋ฐ์๊ฐ ๋์ฑ ๊ฐ๋ฐ์๋ง ์ง์คํ ์ ์๋๋ก ๋์์ฃผ๋ Framework
๋๋ฌด ์ข์ ๊ธ์ด๋ค์. ๊ณต์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.