๐จ๐จ๐ฆ๐ฆ SpringInAction Group Study [์ด์ฑ๋ฏผ, ๊ถํ๊ตฌ, ์ต์ฌํธ, ๊ณฝํ๊ธฐ, ๊น์์ฒ ]
group - GIT : https://github.com/euncheol-kim/SpringInActionGroupStudy
GitHub - euncheol-kim/SpringInActionGroupStudy: SpringInAction ์คํฐ๋ ์ ์ฅ์์ ๋๋ค.
SpringInAction ์คํฐ๋ ์ ์ฅ์์ ๋๋ค. Contribute to euncheol-kim/SpringInActionGroupStudy development by creating an account on GitHub.
github.com
์ด์ฑ๋ฏผ ๋ : https://github.com/CokeLee777
๊ถํ๊ตฌ ๋ : https://github.com/Hashtae9
์ต์ฌํธ ๋ : https://github.com/jaero0725
๊ณฝํ๊ธฐ ๋ : https://github.com/nicebyy
๊น์์ฒ (๋ณธ์ธ): https://github.com/euncheol-kim
์์ฑ์ : ๊น์์ฒ
goal
view ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ํํ๊ธฐ
1. ๋ทฐ ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ํํ๊ธฐ
[1] ์คํ๋ง์์ ์ง์ํ๋ ํ ํ๋ฆฟ
ํ ํ๋ฆฟ(์์ง) | ์คํ๋ง ๋ถํธ ์คํํฐ ์์กด์ฑ |
FreeMarker | spring-boot-starter-freemarker |
Groovy ํ ํ๋ฆฟ | spring-boot-starter-groovy-templates |
JavaServer Pages(JSP) | ์์ (Tomcat์ด๋ Jetty ์๋ธ๋ฆฟ ์ปจํ ์ด๋ ์์ฒด์์ ์ ๊ณต) |
Mustache | spring-boot-starter-groovy-mustache |
Thymeleaf | spring-boot-starter-thymeleaf |
[2] Packaging์ ๋ฐ๋ฅธ ํ ํ๋ฆฟ ํธํ ์ ๋ฌด
Packaging | ํธํ๋๋ ํ ํ๋ฆฟ |
Jar | JSP๋ฅผ ์ ์ธํ Springboot์์ ํธํํ๋ ๋ชจ๋ ํ ํ๋ฆฟ |
War | JSP๋ง์ ์ทจ๊ธ |
WAR๋ฐฐํฌ ์ฌ๋ก
- SpringBoot JSP-WAR ๋ฐฐํฌ, https://vakhais.github.io/develop/Spring-boot-war%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0!/, ์๊ธ๋ฃจํก ๊ฐ๋ฐ์
2. ํ ํ๋ฆฟ ์บ์ฑ
๊ธฐ๋ณธ์ ์ผ๋ก ํ ํ๋ฆฟ์ ์ต์กฐ ์ฌ์ฉ๋ ๋ ํ ๋ฒ๋ง ํ์ฑ(์ฝ๋ ๋ถ์)๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ฑ๋ ๊ฒฐ๊ณผ๋ ํฅํ ์ฌ์ฉ์ ์ํด ์บ์์ ์ ์ฅ๋๋ค.
ํ์ง๋ง ๊ฐ๋ฐ์ด ์ด๋ฃจ์ด์ง๋ ๋จ๊ณ์์ ์บ์ฑ๋ ํ ํ๋ฆฟ์ ๋งค๋ฒ ๋ถ๋ฌ์จ๋ค๋ฉด, ๊ฐ๋ฐ์์ ์์ ์ฌํญ์ด ๋ฐ๋ก ๋ฐ๋ก ์ ์ฉ์ด ๋์ง ์์ ์ฝ๋๊ฐ ์์ ๋์ด์ง ๋๋ง๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์คํํด์ผํ๋ค.
[1] ํ ํ๋ฆฟ ์บ์ฑ ๋นํ์ฑํ
์์ ๊ฐ์ ๋ฒ๊ฑฐ๋ก์์ ๋ง๊ธฐ ์ํด์๋ ๊ฐ ํ ํ๋ฆฟ์ ์บ์ฑ ์์ฑ๋ง false๋ก ์ค์ ํ๋ฉด ๋๋ค.
๊ฐ๊ฐ์ ํ ํ๋ฆฟ์ ์บ์ฑ ๋นํ์ฑํ๋ ์๋ ํ์ ๊ฐ๋ค.
ํ ํ๋ฆฟ(์์ง) | ์บ์ฑ ์์ฑ |
FreeMarker | spring.freemarker.cache |
Groovy Templates | spring.groovy.template.cache |
Mustache | spring.mustache.cache |
Thymeleaf | spring.thymeleaf.cache |
๋จ, ํ๋ก๋์ ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ๋๋ ๋ฐฉ๊ธ ์ถ๊ฐํ ์ค์ ์ ์ญ์ ํ๊ฑฐ๋ true๋ก ๋ณ๊ฒฝํด์ผํ๋ค.
ํ์ง๋ง, ์คํ๋ง ๋ถํธ์ DevTools๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ฝ๋ค. SpringInAction์ 1์ฅ์์ ์ธ๊ธํ๋ฏ์ด, DevTools๋ฅผ ์์กด์ฑ ์ค์ ํด๋๋ค๋ฉด ๊ฐ๋ฐ ์์ ์ ๋ง์ ๋์์ ์ ๊ณตํ๋ฉฐ, ๋ชจ๋ ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์บ์ฑ์ ๋นํ์ฑํ ํ๋ค.
๊ทธ๋ฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๋ฌด ์ด์์ ์ํด ๋ฐฐํฌ๋ ๋๋ DevTools ์์ ์ด ๋นํ์ฑํ ๋๋ฏ๋ก ํ ํ๋ฆฟ ์บ์ฑ์ด ํ์ฑํ ๋ ์ ์๋ค.
์ถ๊ฐ์๋ฃ
[1] ํ ํ๋ฆฟ
1. Mustache, Thymeleaf
Mustache | ํน์ง |
Mustache | - ๋ฌธ๋ฒ์ด ๋ค๋ฅธ ํ
ํ๋ฆฟ ์์ง๋ณด๋ค ์ฌํํ๋ค. - ๋ก์ง ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์ด, View์ ์ญํ ๊ณผ ์๋ฒ์ ์ญํ ์ ๋ช ํํ๊ฒ ๊ตฌ๋ถํ๋ค. - ํ์ฅ์ : ๋ธ๋ผ๋ธ๋ผ.mustache |
Thymeleaf | - HTML ํ๊ทธ์ ์์ฑ์ผ๋ก ํ
ํ๋ฆฟ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ์ด๋ ค์ธ ์ ์์ - Vue.js ํ๊ทธ ์์ฑ ๋ฐฉ์๊ณผ ๋น์ทํ๋ค. |
2. ํ ํ๋ฆฟ ์์ง๊ณผ ๊ด๋ จ๋ ๊ธ
์ฐธ๊ณ ๋งํฌ : FreeMarker vs Groovy vs Mustache vs Thymeleaf, https://springhow.com/spring-boot-template-engines-comparison/, Raja Anbazhagan
3. ํธํ์ฑ๊ณผ ๊ด๋ จํ์ฌ
- thymeleaf๊ฐ ์งฑ์ด๋ผ๊ณ ํฉ๋๋ค.
[2] ๋ฐํ ํํธ์ ๋ชฐ๋๋ ๋ด์ฉ์ ๋ฆฌ(๋ฏธํกํ๋ ๋ถ๋ถ)
[1] Maven, pom.xml
- <dependency> ... <dependency> ๋ด๋ถ ํ๊ทธ
- groupId : ํ๋ก์ ํธ ๊ณ ์ ์๋ณ ID
- artifactId
- ํ๋ก์ ํธ์ ๊ฐ ๊ธฐ๋ฅ๋ค์ ์๋ฏธํ๋ค๊ณ ํ๋ค.
- ๋ฒ์ ์๋ jarํ์ผ์ ์ด๋ฆ
- ํน์ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์๋ฌธ์๋ก๋ง ์์ฑ
- version : ํ๋ก์ ํธ์ version
[์ ๋ฆฌ] groupId๋ ํ๋ก์ ํธ์ ํฐ ํ, artifactId๋ ํ๋ก์ ํธ์ ๊ฐ ๊ธฐ๋ฅ์ ์๋ฏธํ๋ค.