๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (454)

Bibi's DevLog ๐Ÿค“๐ŸŽ

์ •์  ์›น, ๋™์  ์›น, MVC ์›น ํ”„๋ ˆ์ž„์›Œํฌ

MVC ์›น ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋ญ”๊ฐ€์š”? MVC์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ, ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ๋Š” ์˜์ƒ์„ ๋ณด๊ณ  ์ •๋ฆฌํ–ˆ๋‹ค. ..๋ฅผ ๋ณด๋ ค ํ–ˆ๋Š”๋ฐ ์ด ์˜์ƒ์„ ์œ„ํ•ด ์ •์  ์›น์€ ๋ญ๊ณ  ๋™์  ์›น์€ ๋ญ”๊ฐ€์š”?๋ฅผ ๋ด์•ผ ํ•œ๋‹ค๊ณ  ํ•ด์„œ ํ•จ๊ป˜ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด ๋ณด์•˜๋‹ค. ์ •์  ์›น static web, ๋™์  ์›น dynamic web ์ •์  ์›น static web ์–ธ์ œ ์ ‘์†ํ•ด๋„ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด๋‚ด ์ฃผ๋Š” ์›น ์‚ฌ์ดํŠธ. ํŽธ์˜์  : ''์ค€๋น„๋œ ์Œ์‹''์„ ๋ฐ”๋กœ ๋จน๊ฑฐ๋‚˜ ๋‚ด๊ฐ€ ๊ฐ„๋‹จํžˆ ์กฐ๋ฆฌํ•ด ๋จน์Œ -> ์ •์  ์›น ์„œ๋ฒ„๋Š” html, css, js ์ฝ”๋“œ ๋ฐ ์ด๋ฏธ์ง€&๋™์˜์ƒ์„ ์ค€๋น„๋œ ๊ทธ๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ด ์ค€๋‹ค. ๋งˆ์น˜ ์ง„์—ด๋Œ€์— ์ค€๋น„๋œ ์ƒํ’ˆ ๊ทธ๋Œ€๋กœ ์‚ฌ๊ฐ€๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Œ. โ“ ๋“ค์–ด๊ฐˆ ๋•Œ ๋งˆ๋‹ค ๊ฐ™์€ ํ™”๋ฉด์ธ ๊ฒƒ = ์ •์  ์›น์ธ๊ฐ€? โ— ๊ผญ ๊ทธ..

[ํ…œํ”Œ๋ฆฟ ์—”์ง„] handlebars , handlebars๋กœ HTML ํŒŒ์ผ ๋‚˜๋ˆ„๊ธฐ (์ค‘๋ณต์ œ๊ฑฐ)

handlebars ํ…œํ”Œ๋ฆฟ ์—”์ง„ ์ฐธ๊ณ  : ๋ธ”๋กœ๊ทธ. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์ง€๋งŒ ํฐ ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ์— ๋„์›€์ด ๋˜์—ˆ๋‹ค. handlebars๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ํ•˜๋‚˜์ด๋‹ค. mustache๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ๋ฌธ๋ฒ•์ด ๊ฑฐ์˜ ๊ฐ™๋‹ค. mustache์™€์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ํ—ฌํผ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ—ฌํผ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ํ…œํ”Œ๋ฆฟ ์—”์ง„์— ๊ฐ„๋‹จํ•œ ๋กœ์ง์„ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. handlebars๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํ—ฌํผ๋„ ์žˆ๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ํ—ฌํผ๋ฅผ ๋“ฑ๋กํ•ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. handlebars ์‚ฌ์šฉ์„ ์œ„ํ•œ ์„ค์ • (์Šคํ”„๋ง ๋ถ€ํŠธ, gradle) build.gradle dependencies์— compile 'pl.allegro.tech.boot:handlebars-spring-boot-starter:0.3.2' ์ถ”๊ฐ€..

ํšŒ์›๊ฐ€์ž… ๋ฐ ํšŒ์›์กฐํšŒ ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ - <form>, GET/POST, ๋ฆฌ๋‹ค์ด๋ ‰์…˜

ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€์—์„œ ํšŒ์›๊ฐ€์ž…์„ ํ•˜๋ฉด, ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„ ์ถœ๋ ฅํ•œ๋‹ค. ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์†์„ฑ action : ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์–ด๋–ค URL๋กœ ๋ณด๋‚ผ์ง€๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ. : ํ•ด๋‹น form์œผ๋กœ๋ถ€ํ„ฐ /create๋กœ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋ƒ„ URL์ด ์ถ”๊ฐ€๋˜๋ฉด ํ•ญ์ƒ ์ƒ์‘ํ•˜๋Š” Controller ๋ฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. formํƒœ๊ทธ์— ์•„๋ฌด ์†์„ฑ์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ GET๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ ํ•œ๋‹ค. index.mustache ์•„์ด๋”” ๋น„๋ฐ€๋ฒˆํ˜ธ ์ด๋ฆ„ ์ด๋ฉ”์ผ ์ œ์ถœ ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ์ œ์ถœํ–ˆ์„ ๋•Œ์˜ URL : http://localhost:8080/create?userid=&password=&username=&useremail= UserController...

[ํ…œํ”Œ๋ฆฟ ์—”์ง„] mustache ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

mustache ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ •๋ฆฌํ•˜๊ธฐ ๋ณต์žกํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ณต๋ถ€ ๋ฐ ์—ฐ์Šตํ•ด ๋ณธ๋‹ค! ๊ณต์‹ํŽ˜์ด์ง€..๋ฅผ ๋ฒˆ์—ญํ•œ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ณด๊ณ  ๊ณต๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค. 1. ๋ณ€์ˆ˜ {{, }} ์‚ฌ์ด์— ๋ณ€์ˆ˜๋ช…์„ ์ž…๋ ฅํ•œ๋‹ค. ๋ฌธ์ž์—ด์€ ์ž๋™ HTML ์ด์Šค์ผ€์ดํ”„ ๋œ๋‹ค. ์ด์Šค์ผ€์ดํ”„ Escape๋ž€? ํŠน์ • ๋ฌธ์ž๋ฅผ HTML๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ–‰์œ„. (์ œ๋กœ์ดˆ ์ฐธ๊ณ ) ์ด์Šค์ผ€์ดํ”„๋˜์ง€ ์•Š์€ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋ ค๋ฉด {{{, }}}์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ์ดํ„ฐ { "name" : "Chris", "company" : "Github" }ํ…œํ”Œ๋ฆฟ {{name}} {{age}} {{company}} {{{company}}}๊ฒฐ๊ณผ Chris Github Github1-1. ๋ณต์žกํ•œ ๊ฐ์ฒด : ๊ฐ์ฒด ์•ˆ์— ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ๋•Œ๋Š” ์  ๋ฌธ๋ฒ•(dot-syntax)์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฐ์ดํ„ฐ { "name..

mustache(ํ…œํ”Œ๋ฆฟ์—”์ง„), ๋™์ HTML, MVC์˜ ๊ฐœ๋…, formํƒœ๊ทธ, GET/POST ์ฐจ์ด

mustache๋ฅผ ํ™œ์šฉํ•œ ๋™์ ์ธ HTML๊ณผ MVC ์„ค๋ช… ์ปจํŠธ๋กค๋Ÿฌ์—์„œ mustache๋ผ๋Š” ํ…œํ”Œ๋ฆฟ์—”์ง„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ด, ๋™์ ์ธ HTML์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋ฒ•์„ ๋ฐฐ์šด๋‹ค. MVC์˜ ๊ฐœ๋… MVC๋Š” ํ•œ ๊ณณ์—์„œ ๋งŽ์€ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋Œ€์‹ , ๊ฐ ์ฝ”๋“œ์˜ ์—ญํ• ์„ ๋ถ„๋‹ดํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ๋‹ค. Controller : ์ตœ์ดˆ ์ง„์ž… ์ง€์ . ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ๊ฐ’์ด ์œ ํšจํ•œ ์ง€๋ฅผ ๊ฒ€์ฆํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ Model์— ์ „๋‹ฌํ•˜๊ณ , Model์˜ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์ด๋™ํ•  View๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์—ญํ•  Model : ์‹ค์งˆ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•จ. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ DB์— ์ €์žฅํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ์—ญํ• . ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—”์ง„์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Œ. View : Controller์— ์˜ํ•ด ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹จ์ˆœํžˆ ์ถœ๋ ฅํ•˜๋Š” ์—ญํ•  ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด..