SPRINGBOOT
๐ SPRINGBOOT
๐ SPRINGBOOT
SPRINGBOOT ๋
์คํ๋ง ๋ถํธ ( Spring Boot ) ๋ ์คํ๋ง ( Spring ) ์ ๋ ์ฝ๊ฒ ์ด์ฉํ๊ธฐ ์ํ ๋๊ตฌ๋ผ๊ณ ๋ณผ ์ ์๋ค.
์คํ๋ง ํ๋ ์์ํฌ๋ XML๋ก ์ค์ ์ ํด์ผํ๊ณ ( spring3.1 ๋ถํฐ๋ java๋ก๋ง ๊ฐ๋ฅํจ ) ์ธ์ฅ Tomcat์ war ํ์ผ์ ๋ง๋ค์ด ๋ฐฐํฌํด์ผํ๊ณ , ์ค์ ์ด ํ์ํ ๋ถ๋ถ์ ์ง์ ๊ตฌ์ฑํ๋ ๋ฑ ( library ์ถ๊ฐ, dependency ์ค์ .. ) ์ฌ๋ฌ ๋ฒ๊ฑฐ๋ก์์ด ์๋นํ ๋ง์๋ค.
ํ์ง๋ง Spring Boot๋ ์ด๋ฌํ Spring์ ๋ฌธ์ ์ ์ ์๋ฒฝํ ํด๊ฒฐํด์ ์์ฝ๊ฒ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค๊ณ ์คํํ ์ ์๋๋ก ๋์์ค๋ค.
SPRINGBOOT ์ฅ์
- ์์ฃผ ์ฌ์ฉ๋๋ library ๋ค์ ๋ฒ์ ๊ด๋ฆฌ ์๋ํ
- AutoConfig๋ก ๋ณต์กํ ์ค์ ์๋ํ
-
๋ด์ฅ ์น์๋ฒ ์ ๊ณต
- ๋ด์ฅ ์๋ฒ๋ฅผ ํฌํจํด์ Tomcat ๊ฐ์ WAS๋ฅผ ์ถ๊ฐ๋ก ์ค์นํ์ง ์์๋ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ์คํ ๊ฐ๋ฅํ JARํ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฐ๋ฅ
์์ฃผ ์ฌ์ฉ๋๋ library ๋ค์ ๋ฒ์ ๊ด๋ฆฌ ์๋ํ
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋๊ตฌ๋ค ( ํ๋ ์์ํฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ )์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒ์ ์ด ์กด์ฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ๋๊ตฌ๋ค์ ๋ฒ์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์กฐํฉํด์ฃผ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋์ Spring Boot๋ ๋น๋ ๋๊ตฌ ( maven, gradle )์ ๋ฒ์ ์ ๋ช ์ํ์ง ์์๋ ์ ํฉํ library ๋ฒ์ ๋ค์ ์ฐพ์์ ๊ฐ์ ธ์์ฃผ๊ณ ๊ด๋ฆฌํด์ค๋ค.
AutoConfig๋ก ๋ณต์กํ ์ค์ ์๋ํ
๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด json ๋ฉ์ธ์ง ๋ณํ, property ์ค์ ๋ฑ ์ฌ๋ฌ ๊ณตํต์ ์ธ ์ค์ ๋ค์ด ํ์ํ๋ค.
Spring Boot ๋ ๊ฐ๋ฐ์ ์ํด ํ์ํ ๊ณตํต์ ์ธ ๋ถ๋ถ๋ค์ ์๋์ผ๋ก ๊ตฌ์ฑํด์ค๋ค.
๊ทธ๋์ ๋ณ๋์ ์ค์ ์์ด ์๋ฒ๋ฅผ ๋ฐ๋ก ๋์ธ ์ ์๋ค.
๋ด์ฅ ์น์๋ฒ ์ ๊ณต
Spring Framework๋ ์๋ฒ๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ํด Tomcat๊ณผ ๊ฐ์ ๋ณ๋์ ์ธ์ฅ ์น์๋ฒ๋ฅผ ์ค์นํ๊ณ war ํ์ผ์ ์์ฑํ์ฌ ๋ฐฐํฌํด์ค์ผ ํ๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ ์๋นํ ๋ฒ๊ฑฐ๋กญ๊ณ ์ฒ๋ฆฌ ์๋๋ ๋๋ฆฌ๋ค.
๊ทธ๋ฌ๋ Spring Boot๋ ๋ด์ฅ ์น์๋ฒ ( ํฐ์บฃ or ๋ฆฌ์กํฐ ๋คํฐ )์ ๊ฐ์ง๊ณ ์์ด์ ๋ณ๋์ ์์ ์์ด ๋น ๋ฅด๊ฒ ์๋ฒ๋ฅผ ์คํํ ์ ์๋ค.
์คํ ๊ฐ๋ฅํ JARํ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฐ๋ฅ
์์์ ๋งํ๋ฏ Spring์ warํ์ผ์ ๋ง๋ค์ด ์ธ์ฅ ์น์๋ฒ์ ๋ฐฐํฌํด์ผ ํ๋ค.
๊ทธ๋ฌ๋ Spring Boot๋ ์์ ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์
ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ์ฒ๋ผ jar๋ก ์คํ ๊ฐ๋ฅํ๋๋ก ํ์๋ค.
์ด ๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์
์คํ์ ์๋นํ ํธ๋ฆฌ์ฑ์ ์ ๊ณตํด์ค๋ค.
SPRINGBOOT ํ๋ก์ ํธ ์์ฑ ๊ณผ์
-
Name, Type ( Maven, Gradle ), Packaging ( jar, war ), Java Version, Language, Group, Package ( 3 depth ) .. ์ค์
- Maven์ ์์ ์ ์ด์ง๋ง ๋๋ฆฌ๋ค. ๊ทธ๋ฆฌ๊ณ Only JAVA ์ด๋ค.
- Gradle์ ๋น ๋ฅด๊ณ ๋ค์ํ ์ธ์ด๋ฅผ ์ง์ํ๋ค.
- Spring Boot๋ jar์ ์ง์ํด์ jar์ ๊ฑฐ์ ์ฌ์ฉํ๋ค. ( ์น ์ ํ๋ฆฌ์ผ์ด์
)
-
์ฌ์ฉํ ์ค์ ์ ์ ํ
- ๊ธฐ๋ณธ์ผ๋ก โSpring Boot DevToolsโ ๊ณผ โSpring Webโ์ ํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
- ์ด ๊ณผ์ ์ด Spring boot์ ํฐ ์ฅ์ ์ธ ์ค์ ์ ์๋์ผ๋ก ํด์ฃผ๋ ๊ฒ์ด๋ค.
-
์์ฑ๋ ํ๋ก์ ํธ ( index.html ๊ณผ /webapp/WEB-INF/views/home.jsp ๋ ์์ฑํด ๋์ ๊ฒ์ด๋ค. )
- src/main/java
- java source directory
- FirstSpringBootApplication.java
- application์ ์์ํ ์ ์๋ main method ๊ฐ ์กด์ฌํ๋ ์คํ๋ง ๊ตฌ์ฑ ๋ฉ์ธ ํด๋์ค
- static
- js, css, img, html ๋ฑ ์ ์ resource directory
- templates
- Spring boot์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฌ๋ฌ๊ฐ์ง View template ( Thymeleaf , Velocity ๋ฑ ) ์์น
- application.properties
- application ๋ฐ ์คํ๋ง์ ์ค์ ๋ฑ์์ ์ฌ์ฉํ ์ฌ๋ฌ๊ฐ์ง property๋ฅผ ์ ์ํ file
- root-context, servlet-context์์ ์ค์ ํด๋ ๊ฒ ์ค์ ( ์๋ x )
- src/main
-
jsp ๋ฑ์ resource directory
-
jsp ๋ฑ์ resource directory
- src/main/java
-
ํ๋ก์ ํธ ์คํ
- main method์์ ctrl+f11 or project Run As -> Spring Boot App
- ๊ธฐ์กด ์๋ฒ๋ค์ ๋ค ๊บผ์ ธ์์ด์ผ ํ๋ค !!
-
๋ธ๋ผ์ฐ์ ์ด๊ณ http://localhost:8080 ์คํ
- ์๋ฌด๊ฒ๋ ์์ ๋๋ Whitelabel Error Page๊ฐ ๋จ์ง๋ง ํ์ฌ ํ๋ก์ ํธ์๋ html ํ์ผ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ํ๋ฉด์ด ์ถ๋ ฅ๋๋ค.
- ์๋ฌด๊ฒ๋ ์์ ๋๋ Whitelabel Error Page๊ฐ ๋จ์ง๋ง ํ์ฌ ํ๋ก์ ํธ์๋ html ํ์ผ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ํ๋ฉด์ด ์ถ๋ ฅ๋๋ค.
-
src/main/resources/static/index.html
- ๋ธ๋ผ์ฐ์ ์ถ๋ ฅ
-
JSP ํ์ผ ์ถ๋ ฅ
- jsp๋ Spring Boot ์์ ์ ์ฌ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ค์ ์ ์ง์ ํด์ค์ผ ํ๋ค.
- Controller ์์ฑ
- FirstContorller
-
JSP ํ์ผ ์์ฑ
- applicataion.properties file์ ViewReolver ์ค์
- pom.xml์ dependency ์ถ๊ฐ
- JSP ํ์ผ ์ถ๋ ฅ