1. ์คํ๋ง(Spring)
- Java Platform ์ ์ํ ์คํ์์ค ์ดํ๋ฆฌ์ผ์ด์ ํ๋ ์์ดํฌ
- ๋์ ์ธ ์น ์ฌ์ดํธ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํ ์ฌ๋ฌ๊ฐ์ง ์๋น์ค ์ ๊ณต
- ์ ์ ์ ๋ถ ํ์ค ํ๋ ์์ํฌ ๊ธฐ๋ฐ ๊ธฐ์ ๋ก ์ฌ์ฉ
- ํน์ง: ๊ฒฝ๋ ์ปจํ ์ด๋, IoC(Invertion of Control: ์ ์ด ์ญํ), Di(Dependency Injection: ์์กด์ฑ ์ฃผ์ ), AOP(Aspect-Oriented Programming: ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ)
2. ์คํ๋ง ๋ถํธ(Spring Boot)
SpringBoot makes it easy(์ฝ๊ฒ ๋ง๋ ๋ค), to create stand-alone(๋จ๋ ์ ์ธ), production-grade(์์ฉํ ์์ค์) Spring based Applications(์คํ๋ง ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ) that you can "just run"
- ์คํ๋ง ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ์ค์ ์ ๋ง์ ๋ถ๋ถ์ ์๋ํํ์ฌ ์ฌ์ฉ์๊ฐ ํธ๋ฆฌํ๊ฒ ์คํ๋ง์ ํ์ฉํ ์ ์๋๋ก ๋์
- SpringBoot Starter Dependency ๋ง ์ถ๊ฐํด์ฃผ๋ฉด ๋ฐ๋ก API๋ฅผ ์ ์ํ๊ณ , ๋ด์ฅ๋ Tomcat ์ด๋ Jetty๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ฅผ ์คํํ ์ ์์
- ๋ ๋์๊ฐ ์คํ๋ง ํํ์ด์ง์ initializer ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ ๋ง๋ค์ด์ค
3. Spring vs. Spring Boot
spring | springboot | |
Dependency ์์กด์ฑ |
์ค์ ํด์ฃผ์ด์ผ ํ dependency๊ฐ ๋ง๊ณ , ๋ชจ๋ denpendency ๋ฅผ ๋ฒ์ ๊น์ง ๋ช ํํ๊ฒ ๋ช ์ํด์ฃผ์ด์ผ ํ๋ค. | ๋น๊ต์ dependency๊ฐ ์งง์์ง๊ณ , ๋ฒ์ ๊ด๋ฆฌ๋ ๊ถ์ฅ ๋ฒ์ ์ผ๋ก ์๋ ์ค์ ์ด ๋๋ค. starter์ ํตํ dependency ์๋ํ |
Configuration ์ค์ |
์ค์ ํด์ฃผ์ด์ผ ํ ๊ฒ๋ค ๋ง์. anotation ์ค์ , ๋น๋ ์ค์ ... thymeleaf ๋ํ ์ฌ๋ฌ ์ค์ ์ ํด์ฃผ์ด์ผ ํจ. |
application.properties (application.yml) ๋๋ถ์ config ์ค์ ์ ๊ฑฐ์ ์ํด์ค๋ ๋๋ค. thymeleaf ํ์ค์ด๋ฉด ๋๋จ. |
embedded server ๋ด์ฅ ์๋ฒ |
tomcat ์๋ฒ ๊ตฌ๋ ์๊ฐ์ด ์ ๋ฐ ๊ฐ๊น์ด ๋จ์ถ๋จ tomcat ์ด ์ซ์ผ๋ฉด jetty๋ก ์ฌ์ฉ๋ ๊ฐ๋ฅ. * ๋ด์ฅ ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ๋๋ถ์ jar ํ์ผ๋ก ๊ฐ๋จํ๊ฒ ๋ฐฐํฌ ๊ฐ๋ฅ ( java -jar $REPOSITORY/$JAR_NAME & ) |
|
๊ธฐํ | ์คํ๋ง Security, Data JPA ๋ฑ์ ๋ค๋ฅธ ์คํ๋ง ํ๋ ์์ํฌ ์์๋ฅผ ์ฝ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. |
* yaml : YAML Ain't Markup Language ์ ์ค์๋ง
* thymeleaf : html ํ๊ทธ์ ์์ฑ์ ์ถ๊ฐํด ํ์ด์ง์ ๋์ ์ผ๋ก ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ์ฒ๋ฆฌํ ์ ์๊ฒ ํ๋ ๊ฒ.
* spring boot starter ? : npm์ฒ๋ผ ๊ฐํธํ๊ฒ dependency๋ฅผ ์ ๊ณตํด์ฃผ๋๋ฐ, JPA๊ฐ ํ์ํ๋ค๋ฉด prom.xml(Maven) ์ด๋ build.gradle(Gradle)์ 'spring-boot-starter-data-jpa'๋ง ์ถ๊ฐํด์ฃผ๋ฉด ์์์ spring boot๊ฐ ๊ทธ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐ์์ด.
- ์ฌ์ฉ๋ฐฉ๋ฒ : spring-boot-starter-*
- * ๋ถ๋ถ์ ์ํ๋ ์คํํฐ๋ช ์ ๋ช ์ํ๋ฉด ๋จ.