Thymeleaf vs JSP

come_trueยท2022๋…„ 4์›” 22์ผ
0

Thymeleaf

๋ชฉ๋ก ๋ณด๊ธฐ
2/2
post-thumbnail

๐Ÿ“Œ jar๋กœ export ๊ฐ€๋Šฅ์—ฌ๋ถ€

ํƒ€์ž„๋ฆฌํ”„์™€ jsp์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ jarํŒŒ์ผ๋กœ export๊ฐ€ ๊ฐ€๋Šฅํ•œ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. spring ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ jar๊ฐ€ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.
war๋Š” jar์™€ ๋‹ฌ๋ฆฌ ์›น์„œ๋ฒ„๋‚˜ was๊ฐ€ ํ•„์š”ํ•˜๊ณ  ์‚ฌ์ „์— ์ •์˜๋œ ๊ตฌ์กฐ๋งŒ์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ spring ํ”„๋กœ์ ํŠธ์—์„œ๋Š” jar๋กœ export๋˜๋Š” ๊ฒŒ ๋” ํŽธ๋ฆฌํ•œ ์…ˆ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ jsp๋Š” jar ํŒจํ‚ค์ง•์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  war๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ jar๋กœ ํŒจํ‚ค์ง•์ด ๊ฐ€๋Šฅํ•œ ํƒ€์ž„๋ฆฌํ”„๋ฅผ spring์—์„œ ๋” ์ข‹์•„ํ•˜๊ณ  ํƒ€์ž„๋ฆฌํ”„๋Š” was์—†์ด๋„ ๋ธŒ๋ผ์šฐ์ €์— ๋„์šธ ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ›จ์”ฌ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ˆœ์ˆ˜ HTML

ํƒ€์ž„๋ฆฌํ”„๋Š” ์ €๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋„ ๋งํ–ˆ๋‹ค์‹œํ”ผ ์ˆœ์ˆ˜ html์„ ์ตœ๋Œ€ํ•œ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ํŒŒ์ผ์„ ์ง์ ‘ ์—ด์–ด๋„ ๋‚ด์šฉ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์ฃ .
ํ•˜์ง€๋งŒ jsp๋Š” ์ˆœ์ˆ˜ html์„ ์œ ์ง€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— jspํŒŒ์ผ์„ ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด์–ด๋ณด๋ฉด jsp์†Œ์Šค์ฝ”๋“œ์™€ html์ด ๋’ค์ฃฝ๋ฐ•์ฃฝ ์„ž์—ฌ์„œ ์›น๋ธŒ๋ผ์šฐ์ €์—์„œ ์ •์ƒ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. jsp๋Š” ์˜ค์ง ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ Œ๋”๋ง๋˜๊ณ  html์‘๋‹ต๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์•ผ๋งŒ ํ™”๋ฉด์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ Servlet ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜

์ด๋ฅผ ์œ„ํ•ด์„œ ๋‘˜์˜ ๋™์ž‘๊ณผ์ •์„ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด๋ฉด ํƒ€์ž„๋ฆฌํ”„๋Š” htmlํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ ํŒŒ์‹ฑํ•˜๊ณ  ๋ถ„์„ํ•œ ํ›„ ์ •ํ•ด์ง„ ์œ„์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์น˜ํ™˜ํ•ด์„œ ์›นํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. jsp๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์›นํŽ˜์ด์ง€์™€ ํ•จ๊ป˜ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํƒ€์ž„๋ฆฌํ”„๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋ฉ๋‹ˆ๋‹ค. jsp๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ์‹คํ–‰๋˜๋Š”๋ฐ ์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ”์†Œ์Šค๋ผ jsp์—์„œ ์ž๋ฐ”์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ view์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ํฌํ•จ๋˜์–ด์„œ ๋ณต์žกํ•ด์ง€๊ณ  ๋ฌด๊ฑฐ์›Œ์ง‘๋‹ˆ๋‹ค.


๐Ÿ“Œ ๋‹จ์ 

1. ์„ฑ๋Šฅ

JSP๋ณด๋‹ค ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ํƒ€์ž„๋ฆฌํ”„์ด์ง€๋งŒ ์„ฑ๋Šฅ๋ฉด์—์„œ๋Š” ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ ์—”์ง„๋“ค์— ๋น„ํ•ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ์œ„์˜ ํ‘œ๋Š” ๋‹ค์–‘ํ•œ ํ…œํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•œ ํ‘œ์ž…๋‹ˆ๋‹ค. ํ‘œ๋ฅผ ํ†ตํ•ด์„œ JSP๋ณด๋‹ค ์‘๋‹ต์†๋„๊ฐ€ ๋Š๋ฆฐ ํƒ€์ž„๋ฆฌํ”„๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์„ ์‚ฌ์ง„์ด ์ฒจ๋ถ€๋œ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

2. WAS ์„œ๋ฒ„ ์—†์ด ํ™”๋ฉด์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์žฅ์ 

์‹ค์ œ๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ์— WAS๋ฅผ ์žฌ๊ฐ€๋™ํ•˜์ง€ ์•Š๋Š” ์ผ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์–ด์ฐจํ”ผ ๊ณ„์† WAS๋ฅผ ์žฌ๊ฐ€๋™ํ• ๊ป€๋ฐ ๊ทธ๊ฒŒ ๊ตณ์ด ์žฅ์ ์ธ๊ฐ€ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

3. front framework ์‚ฌ์šฉ ์‹œ

front framework ์‚ฌ์šฉ์‹œ ์†์„ฑ์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์ด ์ค‘๋ณต๋˜๋ฉด์„œ ์˜คํžˆ๋ ค ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“‘ References

https://dzone.com/articles/modern-type-safe-template-engines-part-2
https://offbyone.tistory.com/410
https://yjh5369.tistory.com/entry/thymeleaf-vs-jsp
https://webfirewood.tistory.com/96
https://velog.io/@januaryone/%EC%84%9C%EB%B2%84%EC%82%AC%EC%9D%B4%EB%93%9C-%EB%A0%8C%EB%8D%94%EB%A7%81-Thymeleaf
https://joshua1988.github.io/vue-camp/nuxt/ssr.html#%E1%84%89%E1%85%A5%E1%84%87%E1%85%A5-%E1%84%89%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%83%E1%85%B3-%E1%84%85%E1%85%A6%E1%86%AB%E1%84%83%E1%85%A5%E1%84%85%E1%85%B5%E1%86%BC%E1%84%8B%E1%85%B4-%E1%84%83%E1%85%A1%E1%86%AB%E1%84%8C%E1%85%A5%E1%86%B7
https://suzyalrahala.tistory.com/39

0๊ฐœ์˜ ๋Œ“๊ธ€