.html๋ก ํ์ผ์ ๊ตฌ์ฑํ๋ค๊ฐ .jsp๋ฅผ ์๊ฒ ๋ ๋ค๋ก๋ ์ฌ์ฉ์ ํธ๋ฆฌํจ ๋๋ฌธ์ธ์ง
๋๋ ๋ชจ๋ฅด๊ฒ ๊ณ์ .jsp๋ก๋ง ํํ์ด์ง๋ฅผ ๋ง๋ค๋ค๊ฐ,
Spring boot๋ฅผ ํ๊ฒ ๋๋ฉด์ .mustache๋ผ๋ ๋ ์์ ์๊ฒ๋๋ค.
๊ฒฝํ์ผ๋ก ๋ด์ ์ผ๋จ ๋ค ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ ํ์ด์ง๋ฅผ ๋ง๋ค ์ ์๋ ์น๊ตฌ๋ค์ธ๋ฐ .html์ ๊ณ ์ ๋ ๋๋์ด๊ณ
.jsp์ .mustache๋ ์ ๋์ (?)์ธ ๋๋์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ญ ์ฌ์ฉํด์ผํ๊ณ ๋ญ๊ฐ ๋ ์ข์ ๊ฑธ๊น???
์๋ ์ค๋ช ์ ์ ๊ฐ ์ฝ๊ณ ์ดํดํ ๊ฒ์ ์ ๋ฆฌํ ๊ฒ์ผ๋ก ํ๋ฆฐ ๋ถ๋ถ์ด ์์ ์๋ ์์ต๋๋ค ๐.
ํ๋ฆฐ ๋ถ๋ถ์ ๋ํ ์ง์์ด ์์ผ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค !!
๋ค์ด๊ฐ๊ธฐ ์ ์
์ด ์ธ ๊ฐ์ง๋ฅผ ๋น๊ตํ๊ธฐ์ ์ ๋จผ์ ์์์ผ ํ ๊ฒ์ด ์๋๋ฐ ๋ฐ๋ก
HTML๊ณผ Template Engine( JSP, MUSTACHE etc... )์ ๋น๊ตํ ๋์์ด ์๋๋ผ๋ ๊ฒ !
๐??
์ผ๋จ ๊ฐ๋จํ html๊ณผ jsp๋ก ์ค๋ช ์ ํ์๋ฉด,
- HTML: compile ์์ด ํด๋ผ์ด์ธํธ ์ชฝ ๋ธ๋ผ์ฐ์ ์์ ํด์ํ์ฌ ๊ณง๋ฐ๋ก ๋ณธ๋ค.
- JSP: ์๋ฒ์์ complile ํ htmlํ์์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ํด๋ผ์ด์ธํธ ์ชฝ์ผ๋ก ๋ณด๋ด๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์ ๋ฌ ๋ฐ์ html์ ํด์ํ๋ค.
๊ฐ์ด ์ด์ง ์ค๋๊ฐ?
์์๋ณด๊ธฐ
Template Engine
- ์ง์ ๋ ํ ํ๋ฆฟ ์์๊ณผ ๋ฐ์ดํฐ๊ฐ ํฉ์ณ์ ธ HTML ๋ฌธ์๋ฅผ ๋ง๋ค์ด์ฃผ๋ ์ํํธ์จ์ด
- "ํ๋ก๊ทธ๋จ ๋ก์ง" ↔ "ํ๋ ์ ํ ์ด์ " ๊ณ์ธต์ ๋ถ๋ฆฌํ๊ธฐ ์ํ ์๋จ
- ํ๋ ์ ํ ์ด์ ๊ณ์ธต์์ ๋ก์ง์ ์ฝ๊ฒ ํํํ๊ณ ๊ฐ๋ฐ์ ์ ์ฐ์ฑ์ ํฅ์ ์ํด & ์ ์ง๋ณด์ ํจ์จ ํฅ์
์ด๋ฌํ ํ ํ๋ฆฟ ์์ง์ ์ด๋์์ ๋์ํ๋๋์ ๋ฐ๋ผ ์๋์ ๊ฐ์ด ๋ถ๋ฅผ ์ ์๋ค.
์ฒ์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ํ ํ๋ฆฟ์ด ๋ฐ๋ก ์ ํด์ ธ ์๋ ๊ฑด๊ฐ ํ๊ณ ์๊ฐํ๋๋ฐ ๋ช ๊ฐ์ง ๊ธ์ ์ฝ๋ค๋ณด๋ ๋ช๊ฐ์ง ํ ํ๋ฆฟ์ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ์์น๊ฐ ์ ํด์ ธ ์์ง๋ง ์ฐ๋ฆฌ๊ฐ ์ดํด๋ณผ mustache์ ๊ฒฝ์ฐ ์๋ฒ์์๋ ํด๋ผ์ด์ธํธ ์ชฝ์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ฌ์ฉํ ํ ํ๋ฆฟ ์์ง์ด ์ด๋์์ ์ฌ์ฉ ๊ฐ๋ฅํ์ง ์ฌ์ฉ ์ ์ ์์๋ณด๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค.
1) ์๋ฒ ํ ํ๋ฆฟ ์์ง (SSR: Server Side Rendering)
- ์๋ธ๋ฆฟ(์๋ฒ)์์ ๋์ํ๋ ํ ํ๋ฆฟ
- ํ ํ๋ฆฟ ์์๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ HTML๋ฅผ ์์ฑํ์ฌ ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌํ๋ค.
2) ํด๋ผ์ด์ธํธ ํ ํ๋ฆฟ ์์ง (CSR: Client Side Rendering)
- React, Vue, Anguler์ ๊ฐ์ด ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ๋ฐ๊ณ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์น ํ๋ฉด์ ๊พธ๋ฉฐ์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ( ํน์ ํ๋ ์์ํฌ )
- SPA( Single Page Application ) ํ๊ฒฝ์ผ๋ก ์น ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ ์ ์ฒด๊ฐ ์ ์ ๋์ด๋๋ฉด์ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ค template engine์ ์ฌ์ฉํด์ผ ํ ๊น?
JSP vs MUSTACHE ( with. Spring boot )
JSP | MUSTACHE |
Java ์ธ์ด๋ฅผ ์ง์ํ๋ค. |
Java๋ฟ๋ง ์๋๋ผ ํ์กดํ๋ ๋๋ถ๋ถ์ ์ธ์ด๋ฅผ ์ง์ํ๋ค. Ruby, JavaScript, Python, node.js, PHP, Java, .NET, Android, C++, Go etc... |
๋ก์ง ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค. ์๋ฅผ ๋ ๋ค๋ฉด javascript๋ก ํ์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๋์ง.. JSP ์ ๊ฒฝ์ฐ๋ <% %> ์์ ์๋ JAVA ๋ฌธ๋ฒ์ ์๋ฒ๋จ์์, Javascirpt ๋ ํด๋ผ์ด์ธํธ๋จ์์ ๋์ํ๊ธฐ ๋๋ฌธ์ ํ๋์ JSP ํ์ผ ์์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฝ๋๊ฐ ๋ค์์ด๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์์ด ์ ์ง๋ณด์๋ฅผ ํ๊ธฐ์ ์ด๋ ค์์ด ์๋ค. |
๋ก์ง ๊ตฌํ์ด ์๋๋ค. ( Login-less-templates ) View ์ญํ์๋ง ์ถฉ์คํ๋ค. |
์คํ๋ง ๋ถํธ์์๋ ๊ถ์ฅํ์ง ์๋ ํ
ํ๋ฆฟ ์์ง boot์์ jsp๋ฅผ ์ธ ๊ฒฝ์ฐ war๋ก ๋ง๋ค์ด์ผ ํ๋ฉฐ, WAS์ ๋ฐ๋ผ ์ง์ํ์ง ์์ ์๋ ์๋ค. Tomcat๋ง ์ด๋ค๋ฉด ์๊ด์๋ค. |
์คํ๋ง ๋ถํธ์์ ๊ณต์์ผ๋ก ์ง์ํ๋ ํ
ํ๋ฆฟ ์์ง |
๐ ์ฐ๋์ ๊ฒฐ๋ก
Spring boot์์ View๋ฅผ ๊ตฌ์ฑํด์ผ ํ๋ค๋ฉด, MUSTACHE๋ฅผ ์ฌ์ฉํด์ผ๊ฒ ๋ค!
Thanks for ๐
- ์ด๋ฑํ์๋ ์ดํดํ๋ JSP ์ดํด๋ณด๊ธฐ
- [java] ํ ํ๋ฆฟ ์์ง / SSR & CSR / JSP์ Mustache / ์ ์ ํ์ผ
- Mustache๋ก ํ๋ฉด ๊ตฌ์ฑํ๊ธฐ
- Java Template ์ฑ๋ฅ ๋น๊ต. (JSP VS Freemarker, Freemarker vs Thymeleaf)
- Mustache ๊ณต์
- [SpringBoot] Mustache template
'๐ Note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SourceTree * force push ํ๊ณ ์ถ๋ค ๐ ! (0) | 2021.06.09 |
---|---|
Maven / Gradle ํ๋ก์ ํธ dependency ์ฌ์ดํธ (0) | 2021.06.09 |
Monkey Patch (๋ฉํค ํจ์น) (0) | 2020.03.09 |
SSL(TLS)์ ๋ํ์ฌ, ๊ฐ๋จํ ์์๋ณด๋ ๋์นญํค/๊ณต๊ฐํค (0) | 2020.03.09 |
Pycharm * ์ฌ์ฉ์ ๋ฐ์ค, ๋ฌผ๊ฒฐ ํ์ (0) | 2020.03.09 |