๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“– Note

HTML ? JSP ? MUSTACHE ?

.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 ๐Ÿ™ˆ