Handlebars.js: if ๋ธ”๋ก์€ ๋น„๊ตํ•  ๊ฐ’์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2012๋…„ 03์›” 15์ผ  ยท  82์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: handlebars-lang/handlebars.js

๋‹ค์Œ๊ณผ ๊ฐ™์ด resultcount๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

{{#if count == 0}}๊ฒฐ๊ณผ ์—†์Œ{/if}}
{{#if count == 1}}๊ฒฐ๊ณผ 1๊ฐœ{{/if}}
{{#if count > 1}}{{count}}๊ฐœ ๊ฒฐ๊ณผ{{/if}}

์ด๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๊ฑฐ ๋งŒ๋“ค์–ด๋„ ๋˜๋‚˜์š”?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‘๋ ค์› ๋‹ค.
๋‚˜๋Š” ๋„์šฐ๋ฏธ๋กœ ๊ทธ๋Ÿฐ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... ๊ทธ๋Ÿฌ๋‚˜, ๋‚ด ๋ง์€, ๋ฌผ๊ฑด์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ด๋ฏ€๋กœ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  82 ๋Œ“๊ธ€

์ด๊ฒƒ์€ ๋„์šฐ๋ฏธ์— ์˜ํ•ด ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์„ ๋ณด์‹ญ์‹œ์˜ค: http://kan.so/packages/details/handlebars-helpers
๋‘ ๊ฐ’์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ifequal ๋„์šฐ๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ท€ํ•˜์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ์œ ์‚ฌํ•œ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋‘๋ ค์› ๋‹ค.
๋‚˜๋Š” ๋„์šฐ๋ฏธ๋กœ ๊ทธ๋Ÿฐ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ... ๊ทธ๋Ÿฌ๋‚˜, ๋‚ด ๋ง์€, ๋ฌผ๊ฑด์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ด๋ฏ€๋กœ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€์— ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ๋‹ค๋ฉด ์–ด์จŒ๋“  ๋„์šฐ๋ฏธ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@andriijas ๋งž์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋„์šฐ๋ฏธ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋งํฌ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜์ง€๋งŒ ์›๋ณธ if๋ฅผ ๋ฎ์–ด์“ฐ๋Š” "helper"๋ฅผ ์ž‘์„ฑํ•˜์—ฌ _์ ์ ˆํ•œ_ if๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ™•์‹ ํ•œ๋‹ค. ์ž์ฒด ์กด์ค‘ํ•˜๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์—๋Š” ์ ์ ˆํ•œ ์กฐ๊ฑด๋ถ€ ์„œ์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•ธ๋“ค๋ฐ”๋„ ์˜ˆ์™ธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ ์šฉํ•˜๋Š” ํ•ธ๋“ค๋ฐ”์˜ ๋ชจ๋“  ๊ฒƒ์ด ํ—ฌํผ๋ผ๋Š” ์‚ฌ์‹ค์„ ๊ทน๋ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด์žฅ๋œ ๋ชจ๋“  if etc๋Š” registerHelper๋ฅผ ํ†ตํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. ํ™•์ธํ•˜๋‹ค:
https://github.com/wycats/handlebars.js/blob/master/lib/handlebars/base.js

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

๋‚˜๋Š” "๋„์šฐ๋ฏธ"์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์—๋Š” ์ ์ ˆํ•œ if-๋ฌธ์ด ํ™•์žฅ์ด ์•„๋‹ˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„์šฐ๋ฏธ(๋‚ด ์ƒ๊ฐ์—)๋Š” CMS ๋˜๋Š” ๋ฌด์–ธ๊ฐ€์— ํŠน์ •ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„์šฐ๋ฏธ๋Š” ํŠน๋ณ„ํ•œ ์ž‘์—…์ด๋‚˜ ์กฐ๊ฑด์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ฆ‰, ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์™ธ๋ถ€์—์„œ ์ •์˜๋œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ jQuery ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋น„์Šทํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋“ค์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹Œ ๊ฒƒ์€ ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์™ธ๋ถ€(์˜ˆ: ํ”Œ๋Ÿฌ๊ทธ์ธ)์—์„œ ์ •์˜๋ฉ๋‹ˆ๋‹ค. jQuery ์šฉ์–ด์—์„œ ๊ฐ„๋‹จํ•œ ํ•„ํ„ฐ ๊ธฐ๋Šฅ์€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์•„๋‹™๋‹ˆ๋‹ค.

if ๋ฌธ(๋‚ด ๋ณด๊ธฐ์—)์€ ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒจ๋Ÿฌ๋‹ค์ž„์— ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํ…œํ”Œ๋ฆฟ ์—”์ง„์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค...

๊ทธ๋Ÿผ ๋น ๋ฅธ ํ›„์† ์กฐ์น˜. ์ง€๊ธˆ๊นŒ์ง€ ์–ป์€ ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Handlebars.registerHelper("when", function(lvalue, operation, rvalue, options) {
  console.log(arguments);
});

{{#when riskfactor eq 0}}...{{/when}} ์™€ ๊ฐ™์€ ํ…œํ”Œ๋ฆฟ์—์„œ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ˜์†”์— [6, undefined, 0, function()] ๋ฐฐ์—ด์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์–ป๋Š” ๋งˆ์ง€๋ง‰ ํ•˜๋‚˜. ์ด๊ฒƒ์ด ์ด when-block์˜ ๋‚ด์šฉ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ 3๊ฐœ๋Š”... ๊ธ€์Ž„์š”, ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. "6"์€ ์‹ค์ œ๋กœ "riskfactor"์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์€ ๊ฒƒ์€ ์ € ๋„ˆ๋จธ์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ธ๋“ค๋ฐ”๊ฐ€ ์ž…๋ ฅ ๊ฐœ์ฒด์—์„œ ์ด๋ฅผ ํ‰๊ฐ€ํ•˜๋ ค๊ณ  ํ•˜์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ’์€ ๋‚ด ๊ฐœ์ฒด์™€ ์•„๋ฌด ๊ด€๋ จ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ํ…œํ”Œ๋ฆฟ _in_์— ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

["riskfactor", "eq", "0", function()] ์™€ ๊ฐ™์€ ๊ฒƒ์„ ๊ธฐ๋Œ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ๋งŒ ๋‚ด ๊ธฐ๋Šฅ์ด ์ง„ํ–‰ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "undefined"๋กœ ์–ด๋–ป๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ?

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

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

๊ฐ€์žฅ ์ตœ๊ทผ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 {{#when "riskfactor" "eq" 0}}...{{/when}}

ํ•ธ๋“ค๋ฐ” ํ‘œํ˜„์‹์€ ๋ณ€์ˆ˜ ์ด๋ฆ„ ๋˜๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋ณ€์ˆ˜ ์ด๋ฆ„์ธ ๊ฒฝ์šฐ ์ด๋ฆ„์ด ์•„๋‹Œ ํ˜„์žฌ ์ปจํ…์ŠคํŠธ์—์„œ ์กฐํšŒํ•  ๋•Œ ๋ณ€์ˆ˜ ๊ฐ’์„ ์–ป์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ์ง€์ ํ–ˆ๋“ฏ์ด ํ•ธ๋“ค๋ฐ”์˜ ์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”.
๋ชจ๋“  ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ์€ ๊ฐ„๋‹จํ•œ ๋น„๊ต if-else-block์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ธ๋“ค๋ฐ”๋Š” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ•ธ๋“ค๋ฐ”๋ฅผ ์—„์ฒญ๋‚˜๊ฒŒ ๋ถˆ์™„์ „ํ•˜๊ฑฐ๋‚˜, ๊ทธ ์ œ์ž‘์ž๊ฐ€ ๋ฌด๋Šฅํ•˜๊ฑฐ๋‚˜(๊ทธ๋Ÿด ๊ฒƒ ๊ฐ™์ง€ ์•Š์Œ) ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ์˜ ์ž‘์—…์— ๋Œ€ํ•œ ํ๋ฆฟํ•œ ๊ด€์ ์„ ๊ฐ€์ง„ ์‹œ์Šคํ…œ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ LOGICLESS TEMPLATE ENGINE์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. KTHXBAI!

์•Œ์•˜์–ด์š”. ๋‘๋“ค.

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

if ๋„์šฐ๋ฏธ์—์„œ @thany ์™€ ํ•จ๊ป˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ˆ ์–ด๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์‚ฌ์šฉ์„ ์ œํ•œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ํ…œํ”Œ๋ฆฟ ๋’ค์— ์ˆจ์€ ์ฒ ํ•™์„ ์ดํ•ดํ•˜์ง€๋งŒ ๋…๋‹จ์ ์ธ ๊ตฌํ˜„์€ ์‹ค์ œ๋กœ ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ ๋„์šฐ๋ฏธ์˜ ์กด์žฌ, ๋งž๋‚˜์š”?). ๋‚˜๋Š” ์ด๊ฒƒ์ด ์™„์ „ํžˆ ํ•ฉ๋ฆฌ์ ์ธ ๊ฐ€๋ณ€ ๊ธฐ์–ด๋น„๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ž์ „๊ฑฐ ํšŒ์‚ฌ์™€ ๋” ๋น„์Šทํ•˜๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

BTW, ๋งŒ์•ฝ ๋‹น์‹ ์ด ๊ธฐ๊ณ„์— ๋Œ€ํ•ด ๋ถ„๋…ธํ•˜๊ณ  ์ด๊ฒƒ์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๋‹น์‹ ์€ ์ˆ ์–ด๋ฅผ ๋ฌธ์ž์—ด๋กœ ์ทจํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋„์šฐ๋ฏธ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ ๋‘ ๋ฒˆ ์ด๋‹จ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค :smiling_imp:):

Handlebars.registerHelper('when', function (predicate, options) {
    var declarations = '';
    for (var field in this) declarations += field + ' = this.' + field + ',';
    if (eval(declarations + predicate)) { return options.fn(this); }
});

{{#when 'admin || superUser'}}
    crazy go nuts
{{/when}}

@thany ๋Š” ๋ชจ๋ฒ” ์‚ฌ๋ก€ ๊ด€์ ์—์„œ ๊ทธ๊ฒƒ์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” ์ด๋ฏธ ํŒŒ์•…๋œ ๋ชจ๋“  ๋…ผ๋ฆฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. % ์‚ฌ๋ก€๋Š” ์กฐ๊ฑด๋ถ€ ๋นŒ๋“œ๋กœ ๋งŒ์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . http://handlebarsjs.com/#conditionals

์ง„์ง€ํ•˜๊ฒŒ, ๋‚ด๋ ค์ง„ ๋ชจ๋“ (๋˜๋Š” 95%) ๊ฒฐ์ •์ด ๋ฐฑ์—”๋“œ ์ง€ํ–ฅ์ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ Œ๋”๋งํ•  ํด๋ž˜์Šค ์ด๋ฆ„์„ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ํ…œํ”Œ๋ฆฟ์—์„œ ํ•ด๋‹น ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ์ด ์™„์ „ํžˆ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฒƒ์€ ํ”„๋ก ํŠธ์—”๋“œ/ํ…œํ”Œ๋ฆฟ์— 100% ๋ฌถ์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” ์–ด๋–ค ํด๋ž˜์Šค ์ด๋ฆ„์ด ๋ Œ๋”๋ง๋˜๋Š”์ง€ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋‹จ์ˆ˜/๋ณต์ˆ˜ ๋‹จ์–ด๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ if ๋ธ”๋ก์œผ๋กœ ํ•  ์ˆ˜ ์—†๋Š” ๋˜ ๋‹ค๋ฅธ ์ผ์ž…๋‹ˆ๋‹ค.

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

ํ…œํ”Œ๋ฆฟ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒฐ์ •์ด ๋ฐฑ์—”๋“œ์—์„œ ๋˜ ๋‹ค๋ฅธ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ HTML์„ ๋ฐฑ์—”๋“œ์— ๋„ฃ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ…œํ”Œ๋ฆฟ ๋ชฉ์ ์˜ ํฐ ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ์™€ ๊ด€๋ จ๋œ ๊ฒฐ์ •์€ ์™„์ „ํžˆ ๋‹ค๋ฅธ ์ˆ˜์ค€์— ์žˆ์Šต๋‹ˆ๋‹ค. if ๋ธ”๋ก์ด ๋ฐ˜๋“œ์‹œ ๋…ผ๋ฆฌ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌด์—‡์„/์–ด๋–ป๊ฒŒ ๋ Œ๋”๋งํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ๊ธด ํ† ๋ก ์„ ํ•„์š”๋กœ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ if ๋ธ”๋ก์ด ์ •๋ง๋กœ ์š”๊ตฌํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์ž…๋‹ˆ๊นŒ? :(

๋‚˜๋Š” ๊ธฐ๋ณธ ๋น„๊ต ๋„์šฐ๋ฏธ ๊ตฌํ˜„์„ ์ฐฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด์ง€๋งŒ, ์ด๊ฒƒ์€ ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” ํ…œํ”Œ๋ฆฟ์„ ๋ Œ๋”๋งํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋งค์šฐ ์‹ค์ œ์ ์ธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

    <select name="datatype">
      <option{{#ifeq type 'foo'}} selected="selected"{{/ifeq}}>foo</option>
      <option{{#ifeq type 'bar'}} selected="selected"{{/ifeq}}>bar</option>
      <option{{#ifeq type 'vaz'}} selected="selected"{{/ifeq}}>baz</option>
    </select>

ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋„์šฐ๋ฏธ๋Š” ์„ธ ์ค„์˜ ์ฝ”๋“œ์˜€์Šต๋‹ˆ๋‹ค.

    Handlebars.registerHelper('ifeq', function (a, b, options) {
      if (a == b) { return options.fn(this); }
    });

@thany์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๊ฒƒ์ด ํ…œํ”Œ๋ฆฟ/๋ณด๊ธฐ ์™ธ๋ถ€์— ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ์— ๋…ผ๋ฆฌ๊ฐ€ ์—†์„ ์ˆ˜ ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ํ•ธ๋“ค๋ฐ”๋Š” ๋กœ์ง๊ณผ ํ”„๋ฆฌ์  ํ…Œ์ด์…˜์˜ ๋ถ„๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ? ์—ฌ์ „ํžˆ if ๋ฌธ์ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋‹น์‹ ์€ ๊ฒƒ์„ ๋งํ•˜๋Š” if ๋‹จ์ง€๊ฐ€ ์กด์žฌ ๋ฐ / ๋˜๋Š” "๋ถˆ์„ฑ์‹ค"๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ด ์–ด๋– ํ•œ ๋ฐฉ์‹์— ์–ด๋–ค ์ฐจ์ด๊ฐ€ if ๋ฌธ์ด (์—์„œ) ํ‰๋“ฑ ๋˜๋Š” ๊ธฐํƒ€ ์กฐ๊ฑด์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ?

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

๋”ฐ๋ผ์„œ "๋…ผ๋ฆฌ๋ฅผ ํ”„๋ ˆ์  ํ…Œ์ด์…˜์—์„œ ๋ถ„๋ฆฌ"ํ•˜๋Š” ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค. ์œ„์˜ ์ด์œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ…œํ”Œ๋ฆฟ์—์„œ "๋…ผ๋ฆฌ"๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ํ…œํ”Œ๋ฆฟ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„(์˜ˆ: ๋„์šฐ๋ฏธ)์œผ๋กœ ๋‹จ์ˆœํžˆ ์˜ฎ๊ธฐ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์ผ์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์˜ฌ๋ฐ”๋ฅธ ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜๋ฉด ๋” ๋‚˜์•˜์„ ์‚ฌ์†Œํ•œ ์ฐจ์ด๋กœ ์ธํ•ด ๋‹ค๋ฅธ ๋„์šฐ๋ฏธ์™€ ๊ฑฐ์˜/์ •ํ™•ํ•˜๊ฒŒ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋งŽ์€ ๋„์šฐ๋ฏธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. if . ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ข‹์€ ๋””์ž์ธ ๊ฒฐ์ •์ž…๋‹ˆ๊นŒ?

๋‚˜๋Š” ์—ฌ์ „ํžˆ ํŠน์ • "๋…ผ๋ฆฌ"๊ฐ€ ๋ณธ์งˆ์ ์œผ๋กœ ํŠน์ • ๋ณด๊ธฐ์— ๋ฌถ์—ฌ ์žˆ๊ณ  ๋ณด๊ธฐ ์ž์ฒด๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์–ด๋–ค ๊ฒƒ์—๋„ ์ค‘์š”์„ฑ, ์ค‘์š”์„ฑ ๋ฐ/๋˜๋Š” ์‚ฌ์šฉ์ด ์—†๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ๋‚˜์—๊ฒŒ mvc ๊ทน๋‹จ์ฃผ์˜/๊ณผ์ž‰์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

@andriijas ๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ถˆํ–‰ํžˆ๋„ ๊ฒฐ์ •์€ ์ œ ์†์— ๋‹ฌ๋ ค ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "๋…ผ๋ฆฌ"๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ํ…œํ”Œ๋ฆฟ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ๋ถˆํ–‰ํžˆ๋„ ๊ท€๋จธ๊ฑฐ๋ฆฌ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ if๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”์ง€ ์‹ค์ œ๋กœ ๋ณธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? (์–ด๋Š ์ชฝ์ด ์ข‹์ง€ ์•Š์€ ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค)

์ด์ œ if๊ฐ€ ํ˜„์žฌ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€ ์‚ดํŽด๋ณด์•˜์œผ๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ์กฑํ•˜๋Š” ๋‹จ์ˆœํ•˜๊ณ  ์šฐ์•„ํ•œ ๊ธฐ๋ณธ๊ฐ’์ด ํ•ธ๋“ค๋ฐ”์— ์žˆ๋Š” ์ด์œ ๊ฐ€ ๋” ์ดํ•ด๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ™•์žฅ์ด ์–ผ๋งˆ๋‚˜ ์‰ฌ์šด์ง€ ์—ฌ๊ธฐ๋ฅผ ๋ณด์„ธ์š”.

https://github.com/elving/swag

https://github.com/elving/swag/blob/master/src/swag.comparisons.coffee

๋ชจ๋“  ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ฒ ์ด์ปจ์„ ์š”๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ธฐ์ดˆ๋งŒ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์„ ์ธ์ •ํ•˜์‹ญ์‹œ์˜ค.

@andriijas ์˜ˆ, unless ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜์ „๋œ if ๋ฟ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฌด์—‡์„ ๋ณด์ƒํ•˜๋Š”์ง€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋„์šฐ๋ฏธ ์ €์žฅ์†Œ ๋งํฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋ฏธ ๋„์šฐ๋ฏธ๋ฅผ ์ž‘์„ฑํ–ˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋ณด์ƒ๋˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ•ธ๋“ค๋ฐ”๋Š” 10kb ์กฐ๊ธˆ ๋„˜๊ณ (minzipped) swag๋Š” 3kb ์กฐ๊ธˆ ๋„˜์Šต๋‹ˆ๋‹ค(minzipped). ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฒ ์ด์Šค์— 10kb ํ…œํ”Œ๋ฆฟ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ํ…œํ”Œ๋ฆฟ์— ๋…ผ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด 3kb๊ฐ€ ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ๊ณผ ๋ช‡๋ช‡ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์–ด์จŒ๋“  ๋‹น์‹ ์˜ ํ…œํ”Œ๋ฆฟ์— ์žˆ์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ๋งํ•˜๋Š” ๋…ผ๋ฆฌ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ๋‚ด ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์ด ์•„๋‹ˆ๋ฉฐ ์‹ค์ œ๋กœ if ๋ฌธ ๋ธ”๋ก์—์„œ ์กด์žฌ/๊ฑฐ์ง“ ์ด์™ธ์˜ ์กฐ๊ฑด๋ถ€ ํ…Œ์ŠคํŠธ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋ฌด์˜๋ฏธํ•˜๋‹ค๋Š” ์ ์„ ์ฆ๋ช…ํ•˜๋Š” ์—ญํ• ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

@andriijas ๋ณด๊ณ  ์žˆ๋Š”๋ฐ /lib/handlebars/base.js#L97 ํ•˜์ง€๋งŒ ๋ฌด์Šจ ๋ง์ธ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋Œ€์ฒด ์‚ฌ์šฉ์˜ ์–ด๋–ค ํ˜•ํƒœ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋ฌธ์„œ์—๋Š” ์ด๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@constantology ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ ๋˜ ๋‹ค๋ฅธ 3kb๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ์Šค๋ ˆ๋“œ์˜ ๋‹น์‹ ๊ณผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค. github์—์„œ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ณ„ํ‘œ๋ฅผ ํ‘œ์‹œํ•œ ๋‚˜๋จธ์ง€ 3500๋ช…์€ ๋ถˆํ‰ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ…œํ”Œ๋ฆฟ์„ ๋ Œ๋”๋งํ•˜๊ธฐ ์ „์— ๋„์šฐ๋ฏธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋…ผ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ•ด๊ฒฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

@piksel ๋‹น์‹ ์ด๋ณด๊ณ ์žˆ๋Š” ๊ฒƒ์€ ๋‚ด์žฅ ๋œ if๊ฐ€ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” "์• ๋“œ์˜จ"๊ณผ ๊ฐ™์€ ๋„์šฐ๋ฏธ ์ผ ๋ฟ์ด๋ฉฐ ๋„์šฐ๋ฏธ๊ฐ€ ๋Š๋ฆฌ๊ฑฐ๋‚˜ ๊ทธ ์ด์ƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์—์„œ ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ์ผ๋ถ€ swag ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด view_helper ํŒŒ์ผ์— ๋ณต์‚ฌํ•˜์—ฌ 3k ๋ฏธ๋งŒ์ž…๋‹ˆ๋‹ค.

ํ•œ ๋ฐฑ๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ ๋‚ด ๋ณด๊ธฐ์— getTemplateData ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ณต์žกํ•œ ๋…ผ๋ฆฌ๋ฅผ ํ…œํ”Œ๋ฆฟ์„ ๋” ๊น”๋”ํ•˜๊ณ  ๋”ฐ๋ฅด๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋” ์‰ฌ์šด ํ•ญ๋ชฉ์œผ๋กœ ์š”์•ฝํ•ฉ๋‹ˆ๋‹ค. ์•„, ๋˜ํ•œ ํ•ธ๋“ค๋ฐ” ํ…œํ”Œ๋ฆฟ๋ณด๋‹ค ์ผ๋ฐ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹จ์œ„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

@andriijas ๋Š” ์—ฌ์ „ํžˆ ๋‚ด ์งˆ๋ฌธ์— ๋Œ€๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค...

์ด ์‹œ์ ์—์„œ ์ €๋Š” ์ œ๊ฐ€ ์ด๋ฏธ ๋งํ•œ ๊ฒƒ์„ ๋ฐ˜๋ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ œ๊ฐ€ ์ด๋ฏธ ์งˆ๋ฌธํ•œ ์ผ๋ถ€ ๋˜๋Š” ๋ชจ๋“  ์งˆ๋ฌธ์— ๋Œ€ํ•ด ์‹ค์ œ๋กœ ํ•ฉ๋ฆฌ์ ์ธ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋Š๋ผ์‹ ๋‹ค๋ฉด ์ €๋Š” ๊ท€ํ•˜๊ฐ€ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋งค์šฐ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋งํ•˜๋‹ค. :)

ps ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ณ„ํ‘œ ํ‘œ์‹œํ•œ ์‚ฌ๋žŒ ๋ฐ/๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์ˆ˜๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ข‹์€์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. mac/linux๋ฅผ ํ•ฉ์นœ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ Windows ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์œผ๋ฉฐ(์–ด๋–ค ๋ธŒ๋ผ์šฐ์ € ํ†ต๊ณ„ ์‚ฌ์ดํŠธ๋ฅผ ๋ณด๋Š๋ƒ์— ๋”ฐ๋ผ) ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €๋ณด๋‹ค Internet Explorer 6, 7, 8์„ ํ•ฉ์นœ ์‚ฌ์šฉ์ž๊ฐ€ ์—ฌ์ „ํžˆ ๋” ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ Windows๋ฅผ osx ๋˜๋Š” Linux๋ณด๋‹ค ๋” ๋‚˜์€ ์šด์˜ ์ฒด์ œ๋กœ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ฉฐ ์ด์ „ ๋ฒ„์ „์˜ Internet Explorer๋ฅผ ์ตœ์‹  ํ‘œ์ค€, ํ˜ธํ™˜ ๋ธŒ๋ผ์šฐ์ €๋ณด๋‹ค ์ข‹๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์ „์ฒด ํ† ๋ก ์€ ๋‚˜์—๊ฒŒ ๋ฌด์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. if ๋„์šฐ๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋…ผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ์ „์ฒด ๋…ผ์ฆ์€ ์ด์ฒด์  ๋‚œ๊ตญ์ž…๋‹ˆ๋‹ค. ๋งˆ์น˜ ์ž๋™์ฐจ์— ์ฐฝ๋ฌธ์ด ๊ตด๋Ÿฌ๋–จ์–ด์ง€๊ธฐ๋งŒ ํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์ด ๋ถˆํ‰ํ•˜๊ณ  ์ฐฝ๋ฌธ๋„ ํ•จ๊ป˜ ๊ตด๋ ค์ง€๊ธฐ๋ฅผ ๋ฐ”๋ผ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ œ์กฐ์‚ฌ์—์„œ๋Š” ์ด ์ฐจ๊ฐ€ ๊ธฐ๊ณ„์ ์œผ๋กœ ์ œ์–ด๋˜๋Š” ์ฐฝ๋ฌธ์ด ์—†๋‹ค๋Š” ์—„๊ฒฉํ•œ ์ฒ ํ•™์„ ๋”ฐ๋ž๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์„ ๋ฐ”๊พธ์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค... ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์ง€์ง€ํ•˜๋“  ๋ง๋“ . ๋ฐ˜์ชฝ์งœ๋ฆฌ ๊ตฌํ˜„์€ ํšก์„ค์ˆ˜์„คํ•œ ์ฃผ์žฅ์œผ๋กœ ์ •๋‹นํ™”๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

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

@mikeobrien ์˜ˆ, ์ด์ „ ๋Œ“๊ธ€ ์—์„œ ์ด๋ฏธ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹ต์„ ์–ป์ง€ ๋ชปํ•œ ๋งŽ์€ ์งˆ๋ฌธ ์ค‘ ํ•˜๋‚˜์˜€์Šต๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์—†๋‹ค๋Š” ๊ฒƒ์— ์ „์ ์œผ๋กœ ๋™์˜ํ•˜๊ณ  ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งค์šฐ ์‚ฌ์†Œํ•œ ํ…œํ”Œ๋ฆฟ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ฑฐ๊ธฐ์— ๋ณด๊ธฐ ๋…ผ๋ฆฌ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฉ‹์ง€๊ฒŒ ๋„ฃ์–ด. :^)

@constantology doh, ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ ๋Œ“๊ธ€์„ ๋” ์ž˜ ์ฝ์—ˆ์–ด์•ผ

@constantology์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

FWIW ํ•ธ๋“ค๋ฐ”๋Š” ์ •๋ง ์šฐ์•„ํ•˜๊ณ  ์ž˜ ์ž‘์„ฑ๋œ ํ…œํ”Œ๋ฆฟ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

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

if / unless ๋ธ”๋ก์— ์กฐ๊ฑด๋ถ€ ๊ฒ€์‚ฌ๊ฐ€ ์—†๋‹ค๋Š” ์ด ํ•œ ๊ฐ€์ง€ ์ œํ•œ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ์šฐ์•„ํ•˜๊ณ  ์บก์Šํ™”๋œ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ •๋ง ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ํ…œํ”Œ๋ฆฟ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋Š” ๋ฐ์—๋„ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹จ์ˆœํ•œ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด์„œ๋งŒ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์˜์ง€์— ๋”ฐ๋ผ ์ „์ฒด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‹ค์‹œ ํ˜•์‹ํ™”ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์™œ์š”?

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

๊ทธ๊ฒƒ๋“ค์€ ๋‚ด ๋จธ๋ฆฌ ๊ผญ๋Œ€๊ธฐ์—์„œ ๋ฒ—์–ด ๋‚ฌ๊ณ , ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋’ท๋ฐ›์นจํ•˜๊ธฐ ์œ„ํ•ด ์ •๋Ÿ‰ํ™” ๊ฐ€๋Šฅํ•œ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ƒ๊ฐ์„์œ„ํ•œ ์Œ์‹์ž…๋‹ˆ๋‹ค. :^)

์›๋ž˜ ์งˆ๋ฌธ์˜ ๊ฒฝ์šฐ ๋น„๊ตํ•˜๋Š” ๋„์šฐ๋ฏธ๊ฐ€ ์ž˜๋ชป๋œ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค์ด๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„์šฐ๋ฏธ์ž…๋‹ˆ๋‹ค.
{{#ifzero count}}๊ฒฐ๊ณผ ์—†์Œ{{/ifzero}}
{{#ifsingular count}}๊ฒฐ๊ณผ 1๊ฐœ{{/ifsingular}}
{{#ifplural count}}{{count}}๊ฐœ ๊ฒฐ๊ณผ{{/ifplural}}
๋” ๋„์›€์ด ๋  ๊ฒƒ์ด๊ณ  ๊ทธ๊ฐ€ ์ •๋ง๋กœ ํ•˜๊ณ  ์‹ถ์€ ์ผ์„ ๋ฒˆ์—ญํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ if ๊ตฌ๋ฌธ์€ ๋นˆ ๊ฐ’์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋น„๊ต์™€ ํ•จ๊ป˜ if๋ฅผ ์ •๋ง๋กœ ํ•„์š”๋กœ ํ•œ๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์œผ๋ฉฐ ๊ทธ๋Š” ํ…œํ”Œ๋ฆฟ์—์„œ ๊ทธ๊ฒƒ์„ ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์ •๋ง๋กœ ๊ทธ๊ฒƒ์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ _์›์น™์ ์œผ๋กœ_ ์ข‹์€ ๊ตฌ์„์ด๋“  ์•„๋‹ˆ๋“ , ๊ฐœ๋ฐœ์ž๋ฅผ ํŠน์ • ๊ตฌ์„์œผ๋กœ ๋ชฐ์•„๋„ฃ๋Š” ๊ฒƒ์€ ์—”์ง„์— ๋‹ฌ๋ ค ์žˆ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ธ ๊ฐœ๋ฐœ์ž์™€ ํ…œํ”Œ๋ฆฟ ๋กœ์ง์ธ ๊ฐœ๋ฐœ์ž์˜ ๋ชซ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

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

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

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

๋น„๊ต๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด go์™€ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ํ˜•์‹์˜ ์–ธ์–ด์—์„œ ํ‰๋“ฑ์€ ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? Go ํ…œํ”Œ๋ฆฟ์—๋Š” ๋น„๊ต๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์–ธ์–ด์— ์ฝง์ˆ˜์—ผ๊ณผ ํ•ธ๋“ค๋ฐ” ๊ตฌํ˜„์ด ์žˆ์œผ๋ฉฐ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

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

์–ด์„œ ํ•ด๋ด์š”.
์ฝค๋งˆํ”„๋ฆฌ์ฆŒ์€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋กœ์ผ“ ๊ณผํ•™(๋˜๋Š” ๋‡Œ ์ˆ˜์ˆ )์ด ์•„๋‹™๋‹ˆ๋‹ค.

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

๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ ์—”์ง„์—๋„ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์ด ๋งน๋ชฉ์ ์œผ๋กœ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์—๋Š” ๊ทธ๋“ค๋„ ํ‹€๋ ธ๋‹ค.

์‚ฌ์‹ค, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—์„œ ํ•„์š”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์›ํ•˜์ง€ ์•Š๋Š” ์ผ์ข…์˜ ๋กœ์ง์ด ์–ด๋Š ์‹œ์ ์— ์žˆ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๋˜๋Š” ๋ฏธ๋ž˜์˜ ํ…œํ”Œ๋ฆฟ์ด ํ•„์š”๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋น„๊ต์— ๋Œ€ํ•ด ๋ถ€์šธ ๊ฐ’์„ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋™๋ฃŒ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

"์ œํ’ˆ์€ ๋ฌผ๋ก  ํšŒ์‚ฌ๊นŒ์ง€ ๋ง์น  ์ˆ˜ ์žˆ๋‹ค"? ์ง„์ง€ํ•˜๊ฒŒ?
๋ถ€์ ์ ˆํ•œ ๊ธฐ๋Šฅ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ํ•„์š”๋กœ ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฐ์†กํ•˜๊ณ  ๋„์šฐ๋ฏธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋ฌด์—‡์ด ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?
๋‹น์‹ ์ด ํ•„์š”๋กœํ•˜๋Š” ๋ฌด์—‡์„ ์œ„ํ•ด? ๋ชจ๋‘๊ฐ€ ์ด๊น๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š๊ณ  ๋กœ์ผ“์ฒ˜๋Ÿผ
๊ณผํ•™.

๋กœ์ผ“ ๊ณผํ•™์ด๋ผ๋ฉด https://github.com/elving/swag

2013๋…„ 5์›” 18์ผ ํ† ์š”์ผ์— Thany๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์–ด์„œ ํ•ด๋ด์š”.
์ฝค๋งˆํ”„๋ฆฌ์ฆŒ์€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋กœ์ผ“ ๊ณผํ•™(๋˜๋Š” ๋‡Œ ์ˆ˜์ˆ )์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋งค์šฐ ๊ฐ„๋‹จํ•œ ๋งˆ์ดํฌ๋กœ ํ…œํ”Œ๋ฆฟ์—์„œ๋Š” ๋…ผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์ง€๋งŒ
๋” ๋ณต์žกํ•˜๋ฉด ํ…œํ”Œ๋ฆฟ์— ๋…ผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๊ฒŒ ์žˆ๋‹ค
"๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ"์™€ "ํ…œํ”Œ๋ฆฟ ๋…ผ๋ฆฌ"๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ํ• ์ง€ ๊ฒฐ์ •
๋ฌผ๊ฑด์ด ํ•œ ๊ฐœ, ๋‘ ๊ฐœ, ์—ด ๊ฐœ์ผ ๋•Œ ํ•˜์„ธ์š”. ํŽ˜์ด์ง•,
์˜ˆ์‹œ. ๋ถ„ํ• ๊ธฐ. ๊ฐ„๋‹จํ•œ "50% ๋ฏธ๋งŒ" ๋ฐ "50% ์ดˆ๊ณผ" ํ…์ŠคํŠธ, ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ…œํ”Œ๋ฆฟ ์—”์ง„์—๋„ ๋กœ์ง์ด ์—†๋‹ค๋Š” ์‚ฌ์‹ค,
๋งน๋ชฉ์ ์œผ๋กœ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋“ค๋„ ๋‚ด ์ƒ๊ฐ์ด ํ‹€๋ ธ์–ด
์˜๊ฒฌ.

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

"์ œํ’ˆ์€ ๋ฌผ๋ก  ํšŒ์‚ฌ๊นŒ์ง€ ๋ง์น  ์ˆ˜ ์žˆ๋‹ค"? ์ง„์ง€ํ•˜๊ฒŒ?
๋ถ€์ ์ ˆํ•œ ๊ธฐ๋Šฅ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ Gi tHubhttps://github.com/wycats/handlebars.js/issues/206#issuecomment -18104713์—์„œ ํ™•์ธํ•˜์„ธ์š”.
.

๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ์—ฌ๊ธฐ์— ์„ค๋ช…๋œ ๋ฌธ์ œ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌผ๋ก  ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋‹ค์†Œ๊ฐ„ ๋งŒ์กฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@thany ๋‚˜๋Š” ๋‹น์‹ ์„ ๋Š๋ผ๊ณ  ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•ธ๋“ค ๋ฐ” ๋’ค์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์€ ์ด๊ฒƒ์„ ํฌ๊ธฐํ•˜๊ณ  ์‹ถ์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ œ๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ๋งํ•˜๋ ค๋Š” ๊ฒƒ์€ ๋†€๋ผ์šด ์†Œ์‹์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ๋ฅผ _fork _ํ•˜๊ณ  ํŒจ์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ž์‹ ์˜ ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
git์˜ ๋งˆ๋ฒ•์œผ๋กœ ์ธํ•ด git pull ing๋งŒ์œผ๋กœ๋„ ์ƒˆ ๋ฒ„์ „์„ ๋”ฐ๋ผ์žก๊ธฐ๊ฐ€ ์ƒ๋‹นํžˆ ์‰ฌ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ธฐ๋‹ค๋ฆฌ๋ฉด ์ข‹์•„์ง‘๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ํฌ๊ฒŒ ํ•„์š”ํ•˜๊ณ  ์ „๋ฐ˜์ ์œผ๋กœ ๋” ๋‚˜์€ ๊ฒฝ์šฐ ์‚ฌ๋žŒ๋“ค์ด ํฌํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ›จ์”ฌ ๋” ๋‚˜์€ ๊ฒฝ์šฐ ํ•ธ๋“ค ๋ฐ” ๋’ค์—์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ํฌํฌ๋ฅผ ๋‹ค์‹œ origin/master :dancer๋กœ ๋ณ‘ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์ž˜ ์ง€๋‚ด์„ธ์š” ;D

๋‚˜ ์ž์‹ ์—๊ฒŒ ์‹œ๊ฐ„์„ ํ—ˆ๋ฝํ•œ๋‹ค๋ฉด, ํ™•์‹คํžˆ!

@constantology์— ์ ˆ๋Œ€์ ์œผ๋กœ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ์นœ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ํ…œํ”Œ๋ฆฟ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ํ…œํ”Œ๋ฆฟ์„ ๊ฐ–๊ณ  ์‹ถ๋‹ค๋ฉด ์™œ ๊ฑฐ๊ธฐ์— ๋„ฃ์—ˆ๋Š”์ง€: "if" ๋ฌธ์€ ๋…ผ๋ฆฌ๋ฅผ ๋นจ๊ฐ„์ƒ‰ ์œ„ํ—˜์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ... ๋ง์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ตญ๋ฌผ์— ์†Œ๊ธˆ์ฒ˜๋Ÿผ ๊ธฐ๋ณธ์ ์ธ ๋น„๊ต ๋…ผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. @mikeobrien : "

๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•ด ํ•  ๋ง์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ์™€ ๋ณด๊ธฐ ๋…ผ๋ฆฌ๋ฅผ ํ˜ผ๋™ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ํ…œํ”Œ๋ฆฟ์— ์ž๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๊ฐ„. ๊ทธ๋Ÿฌ๋‚˜ ๋ณด๊ธฐ ๋…ผ๋ฆฌ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•ธ๋“ค๋ฐ”๊ฐ€ ์ด๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ์ฒ˜์Œ์— if/else๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋„์ค‘์— ์•ฝ๊ฐ„ ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด์— ํ•ญ๋ชฉ์ด ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š”์ง€ ์•Œ์•„์•ผ ํ•˜๋ฉฐ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‰ผํ‘œ๋กœ ๊ฒฐํ•ฉํ•˜๊ฑฐ๋‚˜ ๋‹จ์–ด์— ๋ณต์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ if ๋ธ”๋ก์œผ๋กœ๋Š” ์ด๊ฒƒ์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ์ด pull request๋ฅผ ๋งŒ๋“  ์ด์œ ์ž…๋‹ˆ๋‹ค: https://github.com/wycats/handlebars.js/pull/566 ๋ฐ ๋™๋ฐ˜ jsfiddle: http://jsfiddle.net/YsteK/

์ด ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์€ ์ƒˆ๋กœ์šด ๋„์šฐ๋ฏธ ifTest๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„์šฐ๋ฏธ๋Š” ์ปจํ…์ŠคํŠธ๊ฐ€ ์ œ๊ณต๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ‰๊ฐ€๋˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ๊ธฐ๋‹ค.

์†”์งํžˆ ์ด๊ฒƒ์€ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋ ˆ์ž„์›Œํฌ์— ๋กœ์ง์„ ๋‚ด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ๊ณ ๋ฐฉ์‹์„ ๊ณ ์ˆ˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด(์ €์—๊ฒŒ๋Š” ์™„์ „ํžˆ ๋น„๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค!) "if"์™€ ๊ฐ™์€ ๋…ผ๋ฆฌ์  ์šฉ์–ด์˜ ์‚ฌ์šฉ์„ ์žฌ๊ณ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. .

"0" ๋ฐ "1"๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ๋ถ€์šธ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋น„๊ตํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋งŽ์€ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Handlebars.registerHelper('ifCond', function(v1, v2, ์˜ต์…˜) {
if(v1 === v2) {
๋ฐ˜ํ™˜ options.fn(์ด);
}
๋ฐ˜ํ™˜ options.inverse(this);
});

๊ธฐ์กด "if" ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์™„์ „ํžˆ ๊ณต์ •ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ, ์˜์–ด๋ฅผ ์„ ํ˜ธํ•˜๊ณ  ๋‹ค๋ฅธ ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค(๋˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ๋Œ€ํ•˜๋Š” ๋Œ€๋กœ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ). ๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ์—์„œ true if ๋ฌธ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๋•Œ "if"๋ผ๋Š” ์šฉ์–ด์˜ ์‹ค์ œ ์™œ๊ณก์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค.

if ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ if ๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ๋น„๊ต ์ธ์ˆ˜(์˜ˆ: eq , ne , gt ๋“ฑ. {{#if arg1 eq arg2}} ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  if ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด "ํ…œํ”Œ๋ฆฟ์— ๋…ผ๋ฆฌ ์—†์Œ" ์ฒ ํ•™์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค(์ง€๊ธˆ์€ "ํ…œํ”Œ๋ฆฟ์— ๋…ผ๋ฆฌ๊ฐ€ _๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ_ ํ•˜์ง€๋งŒ _๋•Œ๋กœ๋Š”_ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค")์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

๋„์šฐ๋ฏธ๊ฐ€ ์—†์œผ๋ฉด ํ•ญ์ƒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

<select>
    <option value='ak' {{#if ak_selected}}selected{{/if}}>AK</option>
    <option value='al' {{#if al_selected}}selected{{/if}}>AL</option>
    <option value='ar' {{#if ar_selected}}selected{{/if}}>AR</option>
    <option value='az' {{#if az_selected}}selected{{/if}}>AZ</option>
    <option value='ca' {{#if ca_selected}}selected{{/if}}>CA</option>
    ....
</select>

๋ชจ๋“  ์ถ”๊ฐ€ ์†์„ฑ์„ ๊ฐœ์ฒด์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ฆฌ์„์€ ์ผ์ž…๋‹ˆ๋‹ค.

webgovernor - ์ด๊ฒƒ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค: http://jsfiddle.net/YsteK/

์ด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์€ ๋„์šฐ๋ฏธ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ‰๊ฐ€ํ•˜๋Š” ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ํ‘œํ˜„์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฆ๊ธฐ๋‹ค.

๊ณ ๋งˆ์›Œ tniswong, ๋‚ด ๋„์šฐ๋ฏธ์™€ ๋งค์šฐ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๊ณ  ํ•ธ๋“ค๋ฐ” "๋…ผ๋ฆฌ ์—†๋Š”" ๋„๊ทธ๋งˆ์˜ ์œ„์„ ์„ ๊ฐ•์กฐํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ดœ์ฐฎ์•„์š”. ๋‚ด๊ฐ€ ๋ฐ”๋กœ ๊ฑฐ๊ธฐ์— ์žˆ์–ด. ํ•ธ๋“ค๋ฐ”๋ฅผ ์ข‹์•„ํ•˜์ง€๋งŒ ์ด ๋„์šฐ๋ฏธ๊ฐ€ ์—†์œผ๋ฉด ๊ฑฐ์˜ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋„์šฐ๋ฏธ๋ฅผ pull ์š”์ฒญ์œผ๋กœ ์ œ์ถœํ–ˆ์ง€๋งŒ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ if ๋ธ”๋ก์„ ์ œ๊ฑฐํ•œ ๋˜ ๋‹ค๋ฅธ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. /ํ•œ์ˆจ์„ ์‰ฌ๋‹ค

ใ…‹ใ…‹ใ…‹ใ…‹ Github์—๋Š” ์ฐฌ์„ฑ ๋ฒ„ํŠผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฑฐ์ ˆ๋‹นํ–ˆ์–ด? -_-

Handlebars์˜ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ์ข…๊ต์˜ ์ง‘์š”ํ•จ์€ ์ •๋ง ๋†€๋ž์Šต๋‹ˆ๋‹ค.

566 ๋ฐ #568

๊ทธ๋Š” ๊ทธ๊ฒƒ์„ README์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ ๋‚˜๋Š” ์ˆจ์„ ์ฃฝ์ด๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— +1! ์œผ์•…!

FWIW, Swag ์ €์žฅ์†Œ๋Š” ๋น„๊ต, ์ •๋ ฌ ๋ฐ ๊ธฐํƒ€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋„์šฐ๋ฏธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•ธ๋“ค๋ฐ” ์—†์ด๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฆ‰, ๊ฐœ์ธ์ ์œผ๋กœ ํ•ธ๋“ค๋ฐ”๋ฅผ ๊นจ๋—ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ํ•œ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ๊ฒƒ์„ ์›ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด _Swag_์™€ ๊ฐ™์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ์—ฌํ•˜์„ธ์š”. ์ด ํ”„๋กœ์ ํŠธ์˜ ๊ด€๋ฆฌ์ž๊ฐ€ ๋งˆ์Œ์„ ๋ฐ”๊พธ๋ฉด pull ์š”์ฒญ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.+1:

@aboutaaron "ํ•ธ๋“ค

  1. ํ•ธ๋“ค ๋ฐ”์— ๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๋Š” ์ฆ๊ฑฐ๋ฅผ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค. ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ์—ˆ๋‹ค๋ฉด ํ•ธ๋“ค๋ฐ”์— "์ง„์‹ค์„ฑ"๋งŒ ํ™•์ธํ•˜๋Š” if ๊ตฌ๋ฌธ์˜ ๋ถˆ์™„์ „ํ•œ ๋…ผ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ด๋ฏธ ์ž…์ฆ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ์ง€ ์•Š์•˜๋‹ค๋ฉด ์ €๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  2. ํ•ธ๋“ค๋ฐ”๊ฐ€ "์ง„์‹ค์„ฑ"๋งŒ ํ™•์ธํ•˜๋Š” if ๋ช…๋ น๋ฌธ์˜ ํ˜•ํƒœ๋กœ ๋ถˆ์™„์ „ํ•œ ๋…ผ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ฆ๊ฑฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    ์ด๊ฒƒ์€ ๋ชจ์ˆœ์ด ์•„๋‹™๋‹ˆ๊นŒ? ํ•ธ๋“ค๋ฐ”๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์กฐ๊ฑด๋ฌธ์„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ„๋‹จํ•˜์ง€ ์•Š์„๊นŒ์š”?
    ์˜ˆ๋ฅผ ๋“ค์–ด, ์™„์ „ํ•œ if ๋ฌธ์„ ์ œ๊ณตํ•˜๋Š” ํ•ธ๋“ค๋ฐ”๋Š” ํ•ธ๋“ค๋ฐ” AND swag๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ณด๋‹ค ์–ด๋–ป๊ฒŒ ๋œ ๊นจ๋—ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•ฉ๋‹ˆ๊นŒ?
    swag ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ ๋น„๊ต ์—ฐ์‚ฐ์ž(์˜ˆ: gt , gte , is ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ๋œ ๊นจ๋—ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. is , isnt , lt , lte ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž(์˜ˆ: and , or .
    ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ if ๋ฌธ ๋‚ด์—์„œ ์ด ๋ชจ๋“  ์ž‘์—…์„ ๋™์ผํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ฝ”๋“œ๋ฅผ ๋” ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ด๋ผ๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ž์ฒด๊ฐ€ "์ง„์‹ค์„ฑ" ์ด์™ธ์˜ ๊ฒƒ์„ ํ™•์ธํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์„ ์—†์•จ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ๋ณด์ง€ ๋ชปํ•œ๋‹ค.

์šฐ์—ฐํžˆ "ํ…œํ”Œ๋ฆฟ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋„ฃ์–ด๋ผ"๋Š” ์ง€๊ฒน๊ณ  ์ž…์ฆ๋˜์ง€ ์•Š์€ ์ฃผ์žฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์ด๋ฏธ ์ด ์Šค๋ ˆ๋“œ์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ, ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์— ์˜ํ•ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ๊ทธ๊ฒƒ์ด ์œ ํšจํ•œ ์ฃผ์žฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด๋ผ๋ฉด ์ด์ „ ์ง„์ˆ ๊ณผ ๋ชจ์ˆœ๋˜๋Š” swag ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ ํ•ธ๋“ค๋ฐ”์—์„œ if ์˜ ๋ถˆ์™„์ „ํ•œ ๊ตฌํ˜„์— ์™„์ „์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์–ด๋–ค ์‹์œผ๋กœ๋“  ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ํ•ต์‹ฌ. JavaScript ์–ธ์–ด ์ž์ฒด๋ฅผ ๋ณด๋ฉด Harmony๋Š” ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฐ˜๋ณต์ž, ๋ชจ๋“ˆ, ์ƒ์„ฑ๊ธฐ, ํด๋ž˜์Šค, ํ”„๋ก์‹œ ๋“ฑ์—์„œ ์ œ๊ณตํ•œ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  DOM API๋Š” ๋˜ํ•œ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ querySelector[All], CORS์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉฐ ์‹ฌ์ง€์–ด ํฌ๋กฌ ์นด๋‚˜๋ฆฌ์•„์—์„œ DOM Promises๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

"ํ•ธ๋“ค๋ฐ”๋ฅผ ๊นจ๋—ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์œ ์ง€ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋Šฅํ•œ ํ•œ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ์ƒํƒœ๋กœ ์œ ์ง€"ํ•œ๋‹ค๋Š” ์ฆ๊ฑฐ๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋™์‹œ์—, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ์ €๋Š” ์ด ์Šค๋ ˆ๋“œ์˜ ์ด์ „ ์˜๊ฒฌ์—์„œ ํ•ธ๋“ค๋ฐ”๊ฐ€ ์™„์ „ํ•œ if ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜๋ฉด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ…œํ”Œ๋ฆฟ์„ ์ฝ๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

@constantology +1 ์•„๋ฉ˜.

{{#if something > something_else}}์„(๋ฅผ) ์‹œ๋„ํ•˜๊ณ  ์ด ์ƒํ™ฉ์˜ ์ง„์‹ค์„ ๊นจ๋‹ฌ์€ ํ›„ ์—ฌ๊ธฐ๊นŒ์ง€ ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•ธ๋“ค๋ฐ” ์‚ฌ๋žŒ๋“ค์˜ ์˜๊ฒฌ์— ๋™์˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•ก์ฒด๋ฅผ ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉํ–ˆ๊ณ , ์ด์™€ ๊ฐ™์€ ์ฃผ์„ ์Šค๋ ˆ๋“œ๋Š” ํ•„์—ฐ์ ์œผ๋กœ ์‹ค์ œ๋กœ ๋ฐฑ์—”๋“œ์— ์†ํ–ˆ๋˜ ์ˆ˜ํ•™ ๋ฐ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ๊ณผ ๊ฐ™์€ ๋ฐ˜์ฏค ๊ตฌ์šด ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

"๋…ผ๋ฆฌ ์—†๋Š”" if ๋ฌธ์˜ ๋ชฉํ‘œ๋Š” ๋ฐฑ์—”๋“œ์—์„œ ๋…ผ๋ฆฌ ๋ถ€๋ถ„์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‹จ์ผ ๋ณ€์ˆ˜๋กœ "๋‹ต๋ณ€"์ด ํฌํ•จ๋œ ํ•ธ๋“ค๋ฐ”๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋Œ€๋‹ต์ด "์˜ˆ"์ด๋ฉด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” (์œ„์˜ ์ฃผ์„์„ ์ฝ์—ˆ์„ ๋•Œ) ๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ๊ณ , ์ง€๊ธˆ ๋‚ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Ÿฌ ๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ๋ถ€ Ember ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž‘์—…ํ•˜๊ณ  ๋‚ด ์˜๊ฒฌ์„ ๋˜์ง€๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. #if ๋ฌธ์ด ์ธ์ˆ˜๋ฅผ _(์„ ํƒ์ ์œผ๋กœ)_ ๋ฐ›์•„๋“ค์ธ๋‹ค๋ฉด ๋” ์ข‹์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. logic-less ์„ ๋‚จ๊ธฐ๊ณ  ์‹ถ์€ ๋งˆ์Œ์€ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜์ง€๋งŒ ๊ฐ€๋” ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ์ƒ๋‹นํžˆ ๋‹ต๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ํƒ๋˜๊ฑฐ๋‚˜ ์„ ํƒ ์ทจ์†Œ๋œ ๊ฐ„๋‹จํ•œ ์งˆ๋ฌธ ๋ชฉ๋ก์„ ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ์ •๋ง, ์ด ๋‘ ๋…ผ๋ฆฌ ๋ธ”๋ก์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

{{#if isSelected question}}
  <p>This question is selected</p>
{{else}}
  <p>This question is NOT selected</p>
{{/if}}
{{#if question.isSelected}}
  <p>This question is selected</p>
{{else}}
  <p>This question is NOT selected</p>
{{/if}}

์ด ๋‘ ์˜ˆ์ œ๋ฅผ ๋’ท๋ฐ›์นจํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์ƒ๋‹นํžˆ ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์ด ์žˆ์œผ๋ฉด ์ •๋ง ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ์ฒซ ๋ฒˆ์งธ๊ฐ€ ๋‘ ๋ฒˆ์งธ๋ณด๋‹ค ๋” ๋งŽ์€ ๋…ผ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹ค์ œ๋กœ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๊ฐ€ ๋งํ•˜๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ๊ฒƒ์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ํ•ธ๋“ค๋ฐ”์˜ ์ฒ ํ•™์„ ์ด์ œ์„œ์•ผ ์ดํ•ดํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‹ค Swag์™€ ๊ฐ™์€ ๋„์šฐ๋ฏธ ์ปฌ๋ ‰์…˜์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ Swag๊ฐ€ ๋„์™€์ค„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ๊ธฐ๋ณธ if ๋„์šฐ๋ฏธ๊ฐ€ ๋„ˆ๋ฌด ๋‹จ์ˆœํ•ด์„œ ํ˜ผ๋ž€์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค.
Hanlebars๊ฐ€ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๊ณ  ๋งํ•˜๋ฉด Handlebars์— ๋‚ด์žฅ ๋„์šฐ๋ฏธ๊ฐ€ ํ•„์š”ํ•œ์ง€ ์˜์‹ฌ๋ฉ๋‹ˆ๋‹ค.
๋นŒํŠธ์ธ ํ—ฌํผ๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด ํ•ธ๋“ค๋ฐ”์˜ ์ฒ ํ•™์„ ์ข€ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”.

logic-less ๋ฐ business logic ์— ๋Œ€ํ•ด ์ž˜ ์ดํ•ดํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์„ ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ์ปจํ…์ŠคํŠธ์—์„œ "{{foo}}"์™€ ๊ฐ™์ด ๋ถ€์šธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋‹จ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ผ if/unless(์กฐ๊ฑด๋ถ€ ์ œ์™ธ)๋ฅผ ๋…ผ๋ฆฌ๋กœ ๊ณ ๋ คํ•  ์ˆ˜๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋‹จ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ–‰๋™์„ ๋ฉˆ์ถฐ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. "๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๋ฉด ์™œ if ๋ฌธ์ด ์žˆ์ง€? HA-HA, ์ฒดํฌ๋ฉ”์ดํŠธ!!!"

๊ทธ๋Ÿฐ ๋‹ค์Œ "{{#if}}" ๋Œ€์‹  "{{#exists}}"๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ๋” ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

2013๋…„ 10์›” 5์ผ ์˜ค์ „ 10์‹œ 52๋ถ„์— cal127 [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ์ปจํ…์ŠคํŠธ์—์„œ "{{foo}}"์™€ ๊ฐ™์ด ๋ถ€์šธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋‹จ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ผ if/unless(์กฐ๊ฑด๋ถ€ ์ œ์™ธ)๋ฅผ ๋…ผ๋ฆฌ๋กœ ๊ณ ๋ คํ•  ์ˆ˜๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ์€ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋‹จ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ–‰๋™์„ ๋ฉˆ์ถฐ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. "๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๋ฉด ์™œ if ๋ฌธ์ด ์žˆ์ง€? HA-HA, ์ฒดํฌ๋ฉ”์ดํŠธ!!!"

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

:thumbsup: {{#if}}๋ฅผ {{#exists}} ๋˜๋Š” {{#isTrue}}๋กœ ๋ณ€๊ฒฝ

๋” ํ•ฉ๋ฆฌ์ ์ธ ์ด๋ฆ„์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. 'exists'๋Š” ๊ทธ๊ฒƒ์„ ํ•  ๊ฒƒ์ด๊ณ , ๋‚˜์˜ ์ œ์•ˆ์€ 'true' ๋˜๋Š” 'on'์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  '๋งŒ์•ฝ'์ด๋ผ๋Š” ์ด๋ฆ„์€ ์—ญ์‚ฌ์  ์ด์œ  ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ๋” ์ ์ ˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•ธ๋“ค๋ฐ”์˜ if ๊ตฌํ˜„์€ ๊ตฌ๋ฌธ์ ์œผ๋กœ ๋‹ค๋ฅธ if ๊ตฌํ˜„๊ณผ ๋‹ค๋ฅด์ง€ ์•Š์œผ๋ฉฐ ์ด์ „ "if ([predicate]) [do sth]" ๊ตฌ๋ฌธ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ ์€ [predicate]๋Š” ๋ฒ ์–ด bool ๋ณ€์ˆ˜์—ฌ์•ผ ํ•˜๋ฉฐ ํ‘œํ˜„์‹์ด ๋  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ '๋งŒ์•ฝ'์˜ ํ•œ๊ณ„๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Handlebars ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ํ‘œํ˜„์— ๋Œ€ํ•œ ์ง€์› ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์ œํ•œ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. (์ •ํ™•ํžˆ ์ด๊ฒƒ์ด ํ•ธ๋“ค๋ฐ”๋ฅผ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” btw๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š”)

์ฆ‰, ์ด '๋งŒ์•ฝ'์€ ๋‹ค๋ฅธ '๋งŒ์•ฝ'๊ณผ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  'if'์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” ์‹œ๋„๋Š” ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ด๋‹จ์œผ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๋งํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

{{#truthy}} ๋ฐ {{#falsey}} ๋ผ๊ณ  ๋ถ€๋ฅด์‹ญ์‹œ์˜ค. {{#truthy}} {{#if}} ๋ฐ {{#unless}} ๊ฐ€ ํ•˜๋Š” ๋ชจ๋“  ์ผ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์—๊ฒŒ: ๋ชจ๋ž˜์—์„œ ๋จธ๋ฆฌ๋ฅผ ๋นผ์‹ญ์‹œ์˜ค. ์ง„์ง€ํ•˜๊ฒŒ. ์ ์ ˆํ•œ if ๋ฌธ์— ๋Œ€ํ•œ ์š”๊ตฌ๊ฐ€ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์ €๋Š” '์š”๊ตฌ'๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค). ๋”ฐ๋ผ์„œ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๊ณ  ์ง•์ง•๊ฑฐ๋ฆฌ์ง€ ๋ง๊ณ  ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ํ…œํ”Œ๋ฆฟ์„ ๋…ผ๋ฆฌ ์—†์ด ๋งŒ๋“ค๋ ค๋ฉด {{#if}} ๋ฐ {{#each}} ํฌํ•จํ•œ ๋ชจ๋“  ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ ์ ˆํ•œ if ๋ฌธ์„ ๊ตฌํ˜„ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
์ž์‹ ์˜ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๊ณ  ๊ตณ๊ฒŒ ๋ฏฟ๋Š” ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ. ๊ฐ™์ด. ์ €๊ฒƒ.

๋‚˜๋Š” ์ด๋ฏธ ๋‹น์‹ ์„ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/wycats/handlebars.js/pull/566
https://gist.github.com/tniswong/5910264

2013๋…„ 10์›” 5์ผ ์˜คํ›„ 3์‹œ 20๋ถ„์— Thany [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

{{#truthy}} ๋ฐ {{#falsey}}๋ผ๊ณ  ๋ถ€๋ฅด์„ธ์š”. ๊ทธ๊ฒŒ {{#if}} ๋ฐ {{#unless}}์˜ ์ „๋ถ€์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์—๊ฒŒ: ๋ชจ๋ž˜์—์„œ ๋จธ๋ฆฌ๋ฅผ ๋นผ์‹ญ์‹œ์˜ค. ์ง„์ง€ํ•˜๊ฒŒ. ์ ์ ˆํ•œ if ๋ฌธ์— ๋Œ€ํ•œ ์š”๊ตฌ๊ฐ€ ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์ €๋Š” '์š”๊ตฌ'๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค). ๋”ฐ๋ผ์„œ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๊ณ  ์ง•์ง•๊ฑฐ๋ฆฌ์ง€ ๋ง๊ณ  ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค. ํ…œํ”Œ๋ฆฟ์„ ๋…ผ๋ฆฌ ์—†์ด ๋งŒ๋“ค๋ ค๋ฉด {{#if}} ๋ฐ {{#each}}๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.

์ ์ ˆํ•œ if ๋ฌธ์„ ๊ตฌํ˜„ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ž์‹ ์˜ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๊ณ  ๊ตณ๊ฒŒ ๋ฏฟ๋Š” ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ. ๊ฐ™์ด. ์ €๊ฒƒ.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์†”๋ฃจ์…˜์€ ํ•ต์‹ฌ ํŒจํ‚ค์ง€์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. "ifTest"๋ผ๋Š” ์šฉ์–ด๋Š” ์•„๋งˆ๋„ ํ•ธ๋“ค๋ฐ”๊ฐ€ "if"๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ฐ€๋กœ์ฑ„๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์ ์€ ifTest๊ฐ€ ๋ฌธ์ž์—ด์„ ๊ฐ€์ ธ์™€ ๋Ÿฐํƒ€์ž„์— ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ˜๋ฉด ์ ์ ˆํ•œ if-block์ด ํ•ต์‹ฌ ํŒจํ‚ค์ง€์— ์žˆ์œผ๋ฉด ์ปดํŒŒ์ผ๋œ ํ…œํ”Œ๋ฆฟ์— ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ •ํ™•ํžˆ Handlebars์˜ ๊ฐ•๋ ฅํ•œ ํฌ์ธํŠธ - if ๋ฐ else์— eval() ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ ๋ฐ–์œผ๋กœ ๋˜์ง€๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์ด 100% ๋งž์Šต๋‹ˆ๋‹ค. ๊ทธ ๋‹น์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

2013๋…„ 10์›” 5์ผ ์˜คํ›„ 3์‹œ 41๋ถ„์— Thany [email protected]์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์†”๋ฃจ์…˜์€ ํ•ต์‹ฌ ํŒจํ‚ค์ง€์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ "ifTest"๋ผ๋Š” ์šฉ์–ด๋Š” ์•„๋งˆ๋„ ํ•ธ๋“ค๋ฐ”๊ฐ€ "if"๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๊ฐ€๋กœ์ฑ„๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์ ์€ ifTest๊ฐ€ ๋ฌธ์ž์—ด์„ ๊ฐ€์ ธ์™€ ๋Ÿฐํƒ€์ž„์— ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ˜๋ฉด ์ ์ ˆํ•œ if-block์ด ํ•ต์‹ฌ ํŒจํ‚ค์ง€์— ์žˆ์œผ๋ฉด ์ปดํŒŒ์ผ๋œ ํ…œํ”Œ๋ฆฟ์— ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ •ํ™•ํžˆ Handlebars์˜ ๊ฐ•๋ ฅํ•œ ํฌ์ธํŠธ - if ๋ฐ else์— eval()์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ ๋ฐ–์œผ๋กœ ๋˜์ง€๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

Handlebars์—์„œ ๋น„๊ต๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋™์•ˆ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์šฐ์—ฐํžˆ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. {{#if}} ๋ฐ {{#each}} ๋ธ”๋ก์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์ ์ ˆํ•œ if ๋ฌธ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์–ธ์–ด์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ธฐ๊ฐ„. ์ •๋ง ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ํ…œํ”Œ๋ฆฟ์„ ์›ํ•œ๋‹ค๋ฉด Mustache๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

ํ…œํ”Œ๋ฆฟ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ(์˜ˆ: ๋””์ž์ด๋„ˆ)๋„ ์ฝ์„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฐœ๋ฐœ์ž ์˜๊ฒฌ์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ A) ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๋””์ž์ด๋„ˆ์™€ ํ•จ๊ป˜ ์ผํ•œ ์ ์ด ์—†์œผ๋ฉฐ B) ์ ‘๊ทผ ๋ฐฉ์‹์€ ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ์ผ๋ฐ˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ํ™•์žฅ์œผ๋กœ ๋ถ€์šธ ์ „์šฉ ๊ฒ€์‚ฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ. ๋˜ํ•œ {{#ifValueEqualsA}} ๋ฐ {{#ifValueEqualsB}} {{#ifValueEqualsA}} ์™€ ๊ฐ™์€ ๋„์šฐ๋ฏธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‹จ์ˆœํžˆ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ƒ์šฉ๊ตฌ ์ฝ”๋“œ๋ฅผ ๋งŽ์ด ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋‹ค์ง€ ํฌ์ง€ ์•Š์€ ๋ชจ๋ฐ”์ผ ํ”„๋กœ์ ํŠธ์—์„œ ์ผํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๋น„๊ต๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์ด๋ฏธ 200์ค„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ•œ ์ผ๋ฐ˜์ ์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ๊ณ ๋ฐฉ์‹์— ๋ฐ˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ cal127 "๋‚˜๋Š” ๋‹น์‹ ์ด ๋‹จ์ˆœํžˆ ํ•˜๋‚˜์˜ if/unless(์กฐ๊ฑด๋ถ€ ์—†์ด)๋ฅผ ๋…ผ๋ฆฌ๋กœ ๊ณ ๋ คํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค." - ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌด์—‡์ด ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ? ๋ถ€์šธ ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ‘œํ˜„์‹์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋” ๋…ผ๋ฆฌ์ ์ธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ˆ˜ํ‘œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๊ฐ„. ๊ทธ๊ฒƒ์ด ์—ฌ๊ธฐ์„œ ์ˆ˜ํ–‰๋˜๋Š” ๋…ผ๋ฆฌ์ด๋ฉฐ ํ‘œํ˜„์‹์ด ์•„๋‹™๋‹ˆ๋‹ค(๋ถ€์šธ ๊ฐ’์€ ํ‘œํ˜„์‹์ด๊ธฐ ๋•Œ๋ฌธ์—). ๋ฌผ๋ก  ํ‘œํ˜„์‹์ด ๋น„์ฆˆ๋‹ˆ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ UI ๋กœ์ง์„ ๋‚˜ํƒ€๋‚ธ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

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

@thany ๋ฐ”์œ„. ๋‚˜๋Š” ์–ด์ œ ์ฝง์ˆ˜์—ผ(๋˜ ๋‹ค๋ฅธ ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ํ…œํ”Œ๋ฆฟ ์–ธ์–ด)์— ๋Œ€ํ•ด ๋‚˜์™”๊ณ  ์ด๊ฒƒ์€ ์ •ํ™•ํžˆ ๋ช‡ ๋ถ„ ํ›„์— ๋‚ด ๋จธ๋ฆฌ์— ๋– ์˜ค๋ฅธ ์งˆ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด๊ฒƒ์ด ๋ฉ‹์ง€๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์„๊นŒ์š”? ์ด๊ฒƒ์€ ๋ฌธ์ œ๋ฅผ ์•…ํ™”์‹œํ‚ฌ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์•„๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์€ "BUSINESS ๋…ผ๋ฆฌ์™€ PRESENTATION ๋…ผ๋ฆฌ์˜ ๋ถ„๋ฆฌ"์ž…๋‹ˆ๋‹ค. ๊ทธ def๋Š” ํ”„๋ ˆ์  ํ…Œ์ด์…˜์— ๋…ผ๋ฆฌ๊ฐ€ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: mvc์™€ ๊ฐ™์€ ํŒจํ„ด์˜ ํ…œํ”Œ๋ฆฟ์„ ํฌํ•จ/ํฌํ•จํ•˜๋Š” ๋ณด๊ธฐ). ์–ด๋–ป๊ฒŒ ๊ทธ๋“ค์€ ๊ทธ๊ฒƒ์„ ๋ถ€์ •ํ•˜๊ณ  ํ”„๋ ˆ์  ํ…Œ์ด์…˜์—์„œ ๋…ผ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๊นŒ?

์‹œ๋‚˜๋ฆฌ์˜ค: ๋ณด๊ธฐ์—์„œ ๋ฃจํ”„๋ฅผ ์‹คํ–‰ ์ค‘์ด๊ณ  x ๋ฐ˜๋ณต ํ›„์— ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํ•ธ๋“ค ๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ œ ๋„์šฐ๋ฏธ๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ๋ฃจํ”„์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๋‚ด ์‚ถ์„ ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๊นŒ? count==x๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜์—ˆ๋‚˜์š”????? ํ…œํ”Œ๋ฆฟ์— PHP ์ž์ฒด์™€ ๊ฐ™์€ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ทธ๊ฒŒ ๋” ๋‚ซ์Šต๋‹ˆ๊นŒ? ๋…ผ๋ฆฌ์  ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ํ†ตํ•ด ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋ฉ๋‹ˆ๊นŒ?

๋‚˜? ๋…ผ๋ฆฌ ์ง€ํ–ฅ์ ์ธ ์ž‘์—…์—๋Š” ๋…ผ๋ฆฌ๊ฐ€ ์—†๋Š” ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค!

๋‚˜๋Š” ๋‹น์‹ ์ด ์–ผ๋งˆ๋‚˜ ๋ฌด์ง€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฏฟ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ํ˜„์‹ค์ด ์•„๋‹ˆ๋ผ ์™„์ „ํ•œ ์‹ ํ™”, ์˜ค๋ฅ˜, ๊ฑฐ์ง“ ์ข…๊ต์ž…๋‹ˆ๋‹ค. ๋ช‡ ์ค„ ์ด์ƒ์˜ ํ…œํ”Œ๋ฆฟ์€ ์ „ํ˜€ ๋…ผ๋ฆฌ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ์‹ค์šฉ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๋‹ค์‹œ ํ•œ ๋ฒˆ ์žฌ๊ฒ€ํ† ๋ฅผ ์ด‰๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ, ์ž ๊น, ์žฌ๊ณ ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋“ฃ๊ณ  ์˜ณ์€ ์ผ์„ ํ•˜์‹ญ์‹œ์˜ค. ํ…œํ”Œ๋ฆฟ์— ๊ทธ๋Ÿฐ ์–ด๋ฆฌ์„์€ ๋…ผ๋ฆฌ๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๋“ค์€ ๋…ผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๊ณ„์†ํ•ด์„œ ์‚ฌ์•…ํ•œ ๋ฐฉ์‹์„ ๊ณ„์†ํ•˜๊ณ  ์˜จ๊ฐ– ์ข…๋ฅ˜์˜ ๊ณ ๋ฆฌ๋ฅผ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

๋‹น์‹ ์ด๋‚˜ ๋‹ค๋ฅธ ๋ˆ„๊ตฌ๋„ ์ˆ˜๋งŽ์€ ์Šค๋ ˆ๋“œ์—์„œ ์ด์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์ˆ˜๋งŽ์€ ์ฃผ์žฅ์„ ๋‹ค๋ฃจ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ด๋Ÿฌํ•œ ์ธ์ˆ˜๊ฐ€ ๋ช…ํ™•ํ•˜๋„๋ก:
1) ๊ธฐ์กด ์ƒํƒœ๊ณ„๋ฅผ ๊ต๋ž€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋ฅผ ์›ํ•˜์ง€๋งŒ ~2๋…„ ๋™์•ˆ ์ž์ฒด IF๋ฅผ ๊ฐ–๊ณ  ์žˆ๋˜ ํŒ€์—๊ฒŒ ์ถฉ๋Œ๊ณผ ์žฌ์ž‘์—…์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
2) ๋‹ค์Œ์— ์š”์ฒญํ•  ๋‹ค๋ฅธ ๋ชจ๋“  ๋„์šฐ๋ฏธ์™€ ํ•จ๊ป˜ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•  ๊ธฐ์กด ๋„์šฐ๋ฏธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
3) ์ด 'if'๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๋™์˜ํ•˜๋Š” ์ฆ‰์‹œ ์ƒˆ ์ธ์ˆ˜๋Š” ์ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„. ํ†ต์‚ฌ๋ก . ์ธ์ˆ˜. ๊ทธ๊ฒƒ์ด ๋‚˜ํƒ€๋‚˜๋ฉด ๋งŒ์กฑํ•˜๊ฒ ๋‹ค๊ณ  ์•ฝ์†ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ์ƒˆ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฆ‰์‹œ ์—ฌ๊ธฐ์— ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
4) ์กด์žฌํ•˜๋Š” 'if'๋Š” ์ •ํ™•ํžˆ -rendering-์„ ์œ„ํ•ด ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "Y๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ X ํ‘œ์‹œ". ์ด๊ฒƒ์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹น์‹ ์˜ ๋ชจ๋ธ์—์„œ ์ผ์–ด๋‚˜์•ผ ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค(์ €๋Š” Backbone์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹น์‹ ์€ ๋‹น์‹ ์˜ ๋ชจ๋ธ์—์„œ isXXX() ๋ฉ”์†Œ๋“œ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๋‹น์‹ ์ด ์›ํ•˜๋Š” ๋ฌด์—‡์ด๋“  ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

์šฐ๋ฆฌ๋Š” ์„œ๋กœ์—๊ฒŒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์š”๊ตฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ธฐ์ˆ ์ ์ธ ๋…ผ์˜๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ณ„์†ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ขŒ์ ˆํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ฆฌ์„์€ ์ผ์ž…๋‹ˆ๋‹ค. ์›ํ•˜๋Š” 'IF'๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์™„๋ฃŒํ•˜์„ธ์š”.

1) ์•„๋‹ˆ์š”. ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์œผ๋ฉด ํ…œํ”Œ๋ฆฟ์ด ๊ณ„์† ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ชจ๋“  ๊ฒƒ์ด ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ๋‹จ์ˆœํžˆ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
2) if ๋ฌธ์€ ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๋งํ•˜๋Š” ๊ฒƒ์€ ์ž๋™์ฐจ์˜ ๋ฐ”ํ€ด๊ฐ€ ์ด์ œ ์„ ํƒ ์‚ฌํ•ญ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
3) if ๋ฌธ์˜ ๊ตฌ๋ฌธ์€ ๊ฑฐ์˜ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋‹จ์ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—๋Š” ํ•˜๋‚˜๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ์–ธ์–ด๋Š” ์ •ํ™•ํžˆ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ ์ ˆํ•œ if ๋ฌธ์„ ๊ฐ–๋Š” ๊ฒƒ์ด ์ง€๊ธˆ๋ณด๋‹ค ๋‚ซ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
4) ํ‹€๋ฆฝ๋‹ˆ๋‹ค. "ํ…œํ”Œ๋ฆฟ ๋…ผ๋ฆฌ"๋ฅผ ์œ„์ชฝ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜์‹ญ์‹œ์˜ค.

๋‹น์‹ ์˜ ๋งˆ์ง€๋ง‰ ์ž…์žฅ์— ๊ด€ํ•ด์„œ๋Š”, ์ฃผ์žฅ์ด _์žˆ์–ด_ ํ–ˆ๊ณ , ๊ฑด์ „ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ช‡ ๋ฒˆ์ด๊ณ  ๊ฑฐ๋“ญ๊ฑฐ๋“ญ ๋…ผ์Ÿ์ด ๋˜์—ˆ์ง€๋งŒ, ๊ทธ๊ฒƒ์€ ์ •๋ง๋กœ ์ข…๊ต์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๊นจ์ง€์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋„ˆ๋ฌด ์•ฝํ•ฉ๋‹ˆ๋‹ค.

์กฐ์ง€ ํ”„๋ฆญ -

1) ์ด๊ฒƒ์ด ์ง€๊ธˆ๊นŒ์ง€ ์กด์žฌํ•œ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ๊ณผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๊นŒ?
2) ๋‹น์‹  ๋ง์ด ๋งž์•„. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ๊ธฐ๋ณธ์ ์ด๊ณ  ํ•„์š”ํ•œ ๊ฒƒ์—๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
3) ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
4) ์š”์ ์„ ์™„์ „ํžˆ ๋†“์ณค์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์˜ ๋ˆ„๊ตฌ๋„ ๋ณด๊ธฐ ๊ณ„์ธต์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋…ผ๋ฆฌ์— ๋Œ€ํ•ด ๋…ผ์Ÿํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ทฐ ๋ ˆ์ด์–ด์—์„œ USEFUL ๋””์Šคํ”Œ๋ ˆ์ด ๋กœ์ง์— ๋Œ€ํ•ด ๋…ผ์Ÿํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ "if"๋Š” true๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ํ˜ผ๋™์„ ์ค๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ "์กด์žฌํ•œ๋‹ค"์— ๊ฐ€๊น๋‹ค.

์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์ด ํ…œํ”Œ๋ฆฟ์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด, ๋‹น์‹ ์ด ์–ด๋ฆฌ์„์€ ๊ฒƒ์„ ๊ณ ์น  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ๋‹น์‹ ์ด ์˜ณ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‚˜์œ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๊ทธ ๊ณผ์ •์—์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์ข‹์€(๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ) ์ผ์„ ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

2013๋…„ 11์›” 22์ผ ์˜คํ›„ 3์‹œ 55๋ถ„์— George Frick [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

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

๋‹น์‹ ์ด๋‚˜ ๋‹ค๋ฅธ ๋ˆ„๊ตฌ๋„ ์ˆ˜๋งŽ์€ ์Šค๋ ˆ๋“œ์—์„œ ์ด์— ๋ฐ˜๋Œ€ํ•˜๋Š” ์ˆ˜๋งŽ์€ ์ฃผ์žฅ์„ ๋‹ค๋ฃจ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์—์„œ ์ธ์ˆ˜๊ฐ€ ๋ช…ํ™•ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
1) ๊ธฐ์กด ์ƒํƒœ๊ณ„๋ฅผ ๊ต๋ž€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋ฅผ ์›ํ•˜์ง€๋งŒ ~2๋…„ ๋™์•ˆ ์ž์ฒด IF๋ฅผ ๊ฐ–๊ณ  ์žˆ๋˜ ํŒ€์—๊ฒŒ ์ถฉ๋Œ๊ณผ ์žฌ์ž‘์—…์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
2) ๋‹ค์Œ์— ์š”์ฒญํ•  ๋‹ค๋ฅธ ๋ชจ๋“  ๋„์šฐ๋ฏธ์™€ ํ•จ๊ป˜ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•  ๊ธฐ์กด ๋„์šฐ๋ฏธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
3) ์ด 'if'๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๋™์˜ํ•˜๋Š” ์ฆ‰์‹œ ์ƒˆ ์ธ์ˆ˜๋Š” ์ด๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„. ํ†ต์‚ฌ๋ก . ์ธ์ˆ˜. ๊ทธ๊ฒƒ์ด ๋‚˜ํƒ€๋‚˜๋ฉด ๋งŒ์กฑํ•˜๊ฒ ๋‹ค๊ณ  ์•ฝ์†ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ์ƒˆ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฆ‰์‹œ ์—ฌ๊ธฐ์— ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
4) ์กด์žฌํ•˜๋Š” 'if'๋Š” ์ •ํ™•ํžˆ -rendering-์„ ์œ„ํ•ด ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "Y๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ X ํ‘œ์‹œ". ์ด๊ฒƒ์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹น์‹ ์˜ ๋ชจ๋ธ์—์„œ ์ผ์–ด๋‚˜์•ผ ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค(์ €๋Š” Backbone์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹น์‹ ์€ ๋‹น์‹ ์˜ ๋ชจ๋ธ์—์„œ isXXX() ๋ฉ”์†Œ๋“œ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๋‹น์‹ ์ด ์›ํ•˜๋Š” ๋ฌด์—‡์ด๋“  ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

์šฐ๋ฆฌ๋Š” ์„œ๋กœ์—๊ฒŒ ๋ฌด์–ธ๊ฐ€๋ฅผ ์š”๊ตฌํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ธฐ์ˆ ์ ์ธ ๋…ผ์˜๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ณ„์†ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ขŒ์ ˆํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ฆฌ์„์€ ์ผ์ž…๋‹ˆ๋‹ค. ์›ํ•˜๋Š” 'IF'๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์™„๋ฃŒํ•˜์„ธ์š”.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

@thany
์ฃผ์žฅ์„ ๋ฐ˜์ฆํ•˜๋Š” ๊ฒƒ๊ณผ ๊ทธ๊ฒƒ์„ ๊ธฐ๊ฐํ•˜๋Š” ๊ฒƒ์€ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "WRONG"์€ "NUH UH!"์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ๊ฐœ์ธ์ ์ธ ๊ฒƒ์„ ์‹œ๋„ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

@tniswong
1) ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์–ด๋–ค ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
2) ์ด๊ฒƒ์„ ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ๋กœ ์ ์šฉํ•œ๋‹ค๋ฉด Node๋Š” ๊ทธ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์ด ๊ธฐ๋ณธ์ ์ด๊ฑฐ๋‚˜ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๋…ผ์Ÿ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ์ง€๋งŒ ํ‘œ์ค€ ํ”„๋ ˆ์ž„์›Œํฌ ์™ธ๋ถ€์—์„œ ๊ทธ๊ฒƒ๋“ค์„ ๋ชจ๋‘ ํ•จ๊ป˜ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ์ถ”์ƒํ™” ๋ฐ ๋ถ„๋ฆฌ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์ด์–ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ํ”„๋กœ์ ํŠธ์—๋Š” ๊ทธ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ์—๋Š” ํŠน๋ณ„ํ•œ ๋ฒ„์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ‘œ์ค€ ์„ธํŠธ๋ฅผ ํ”Œ๋Ÿฌ๊ทธ์ธํ•˜๊ฑฐ๋‚˜, ์ง์ ‘ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋„์šฐ๋ฏธ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กค์ธ๋˜๋Š” ๊ธฐ์ˆ ์ ์œผ๋กœ ํƒ€๋‹นํ•œ ์ด์œ ๋Š” ์—†์Šต๋‹ˆ๋‹ค.
3) ๋‹น์‹ ์˜ ์ง„์ˆ ์€ ์–ด๋–ค ์‹์œผ๋กœ๋“  ์›๋ž˜์˜ ์š”์ ์„ ๋ถ€์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ๋•์Šต๋‹ˆ๋‹ค. If๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ 20๊ฐœ์˜ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ. ๋‚˜๋Š” ๊ฐœ๋ฐœ ํŒ€์ด ๊ทธ๊ฒƒ๋“ค์„ ํ†ต๊ณผํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•  ๊ฒƒ์ด๋ผ๊ณ  ์žฅ๋‹ดํ•  ๊ฒƒ์ด๋‹ค.
4) ์ •ํ™•ํžˆ๋Š” '์žˆ๋‹ค'์ž…๋‹ˆ๋‹ค. ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ด๊ฒƒ์„ ๋ Œ๋”๋งํ•˜์‹ญ์‹œ์˜ค.
'์•„๋ฌด๋„'์— ๋Œ€ํ•ด ์“ธ ์ˆ˜ ์—†์„ ๋•Œ ํ•˜๋‚˜์˜ ๋ฐ˜๋Œ€ ์˜ˆ๋ฅผ ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. _์†์„ ๋“ ๋‹ค_.

์œ„์˜ ๋ฉ”๋ชจ์—์„œ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. if ์„ exists ํ•˜๊ณ  ํ•ธ๋“ค๋ฐ”๋ฅผ "๋…ผ๋ฆฌ ์—†๋Š”" ํ˜ธ์ถœ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ ‡์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—).
  2. if ์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜์—ฌ if ๋ฌธ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. if ์™„์ „ํžˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์— ๋งŒ์กฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์žŠ์ง€ ๋งˆ์„ธ์š” {{#unless}}

2013๋…„ 11์›” 22์ผ ์˜คํ›„ 4์‹œ 40๋ถ„์— Aaron M [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋ฉ”๋ชจ์—์„œ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ  ํ•ธ๋“ค๋ฐ”๋ฅผ "๋…ผ๋ฆฌ ์—†๋Š”" ํ˜ธ์ถœ ์ค‘์ง€(๊ทธ๋ ‡์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—)
if ๋ฌธ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก if ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
์™„์ „ํžˆ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.
๋‚˜๋Š” ๊ทธ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์— ๋งŒ์กฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์ด๊ฒƒ์ด ์ง„์ •์œผ๋กœ ์š”์•ฝ๋˜๋Š” ๊ฒƒ์€ Aaron์— ์˜ํ•ด ๋ฉ‹์ง€๊ฒŒ ์š”์•ฝ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  1. ๋…ผ๋ฆฌ๊ฐ€ ์—†๋‹ค๊ณ  ์ฃผ์žฅํ•˜๊ณ  if/unless๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์œ„์„ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ฃผ์–ด์ง„ "if"๋Š” ์ž˜๋ชป๋œ ๋ช…์นญ์ž…๋‹ˆ๋‹ค.

๋‘˜ ๋‹ค ์ˆ˜์ •ํ•˜๋ฉด ์ด ์ฃผ์žฅ์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

2013๋…„ 11์›” 22์ผ ์˜คํ›„ 4์‹œ 43๋ถ„์— Todd Niswonger [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์žŠ์ง€ ๋งˆ์„ธ์š” {{#unless}}

2013๋…„ 11์›” 22์ผ ์˜คํ›„ 4์‹œ 40๋ถ„์— Aaron M [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋ฉ”๋ชจ์—์„œ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ  ํ•ธ๋“ค๋ฐ”๋ฅผ "๋…ผ๋ฆฌ ์—†๋Š”" ํ˜ธ์ถœ ์ค‘์ง€(๊ทธ๋ ‡์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—)
if ๋ฌธ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก if ์ง€์›์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
์™„์ „ํžˆ ์ œ๊ฑฐํ•˜์‹ญ์‹œ์˜ค.
๋‚˜๋Š” ๊ทธ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜์— ๋งŒ์กฑํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.

@georgefrick
๋‚˜๋Š” ๊ทธ์˜ ์ฃผ์žฅ์ด ์ด์ „์— ๋ฐฑ๋งŒ ๋ฒˆ์ด๋‚˜ ๋ฐ˜์ฆ๋˜์—ˆ๋‹ค๋Š” ์ด์œ ๋กœ ๋‹จ์ˆœํžˆ ๊ทธ์˜ ์ฃผ์žฅ์„ ๊ธฐ๊ฐํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ์˜ค๋žซ๋™์•ˆ ๊ณ ๋ฏผํ•ด ์™”์œผ๋ฉฐ ๋๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. if ๋ฌธ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋ฉฐ ์•„๋ฌด๋„ ๋ถˆ์ด์ต์„ ๋ฐ›์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋‘๊ฐ€ ํ–‰๋ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๋ชจ๋“  ์ง‘์— ์—์–ด์ปจ์„ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‚ด ์ง‘์—์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ๋‚ด๊ฐ€ ํŒ๋‹จํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๊ฒƒ์ด ๋‹น์‹ ์˜ ๊ฒƒ์ด๊ณ  ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ทธ๋Œ€๋กœ ๋‘์‹ญ์‹œ์˜ค. ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

@webgovernor
์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ if ๋ฌธ์€ ํ˜„์žฌ ๋ฌธ๊ณผ ์™„์ „ํžˆ ํ˜ธํ™˜๋˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” "if boolean then..."์ด๊ณ  ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ if-๋ฌธ์ด ์ •ํ™•ํžˆ ๊ทธ๋ ‡๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ํ•ด๋‹น ๋ถ€์šธ ํ•ญ๋ชฉ๋งŒ ํ•˜๋‚˜์˜ ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ํ‘œํ˜„์‹์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@tniswong
์–ผ๋งˆ๋‚˜ ์ข‹์€๋ฐ์š”? if-block์ด ๊ตฌํ˜„๋  ๋•Œ ๋„ˆ๋ฌด ๋‹จ์ˆœํ™”๋˜์–ด ํ‘œํ˜„์‹์„ ๋ถ€์ •ํ•  ์ˆ˜๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋”๋Ÿฌ์šด ์ถ”๊ฐ€ ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฏธ๋ž˜์˜ ํ•ธ๋“ค๋ฐ”์—์„œ๋Š” if not ํƒœ๊ทธ๊ฐ€ ๋‹จ์ˆœํžˆ "if not"์˜ ๋ณ„์นญ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ do..while ๋Œ€ while..do์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‘˜์€ ์ฃผ๋กœ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์กด์žฌํ•˜๊ณ  ๊ธฐ์ˆ ์ ์ธ ์ด์œ ๋กœ _์‹ค์ œ๋กœ_๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

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

@jeremiahlee ๊ฑฐ๊ธฐ์— ๋™์˜ํ•˜๋Š”์ง€ ๋™์˜ํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์–ด๋Š ์ชฝ์ด๋“  ๊ท€ํ•˜์˜ ์˜๊ฒฌ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :)

์–ด๋Š ์ชฝ์ด๋“ , ๋‚˜๋Š” ๊ณผ๊ฑฐ์— Handlebars๋กœ ์ž‘์—…ํ–ˆ์œผ๋ฉฐ ์ ์ ˆํ•œ if-block์„ ๊ตฌํ˜„ํ•˜๋„๋ก ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ ๋…ผ๋ฆฌ๊ฐ€ ๋ชจ๋ธ์— ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฐ€์งœ ์ฒ ํ•™์— ๋Œ€ํ•œ ๋…ผํ‰์ด ์Ÿ์•„์กŒ์Šต๋‹ˆ๋‹ค. ํ•ธ๋“ค๋ฐ” ๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ์˜ ์ž‘์€ ์„ธ๊ณ„์—์„œ 1๋ฐ€๋ฆฌ๋ฏธํ„ฐ ์ •๋„ ๋ฐ–์— ์ƒ๊ฐํ•˜๊ณ  ์‹ถ์–ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋ฌด๋ก€ํ•œ ํ‘œํ˜„์ด ์žˆ์ง€๋งŒ ๊ฑด๋„ˆ๋›ฐ๊ฒ ์Šต๋‹ˆ๋‹ค). ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ฆ๊ฑฐ๋กœ ์‚ผ์œผ์‹ญ์‹œ์˜ค.

์ด๋กœ ์ธํ•ด ๋น„๊ต๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” "์–ธ์ œ"๋ผ๋Š” ๋„์šฐ๋ฏธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์ ์ ˆํ•œ if ๋ธ”๋ก ๊ตฌ์„ฑ์ด ์—†์ง€๋งŒ ๋‹น์‹œ์—๋Š” ์ถฉ๋ถ„ํžˆ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋งŽ์€ ๋ถˆํ•„์š”ํ•œ ์ž‘์—…์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

@thany : ๋‚˜๋Š” Handlebars๊ฐ€ ๋‚ด์žฅ๋œ ๋‘ ๊ฐ’์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๋น„๊ต๋ฅผ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ ์—†๋Š” ํ…œํ”Œ๋ฆฟ๋„ ๊ณต๊ฐ์ด ์ ์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ @thany ์™€ ๋‹ค๋ฅธ ์ฃผ์žฅ์— ํˆฌํ‘œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. if else ๋ฌธ์€ ๋„ˆ๋ฌด ๊ธฐ๋ณธ์ ์ž…๋‹ˆ๋‹ค.
์กฐ๊ฑด๋ถ€ ํด๋ž˜์Šค์™€ select ๋ฏธ๋ฆฌ ์„ ํƒ๋œ์™€ ์ƒ์ž option ๋“ค ํ•ธ๋“ค์˜ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.

์ค‘์ฒฉ ๋„์šฐ๋ฏธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์ด์ƒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

{{#if (greater-than array.length 3)}}
  ...
{{/if}}

์ข‹์€ ์˜ˆ @mmun :+1:

์ข€ ์ด์ƒํ•˜๊ณ  boolean combinator๊ฐ€ ํ•˜๋‚˜๋„ ์•ˆ๋ณด์ด๋„ค์š”... ํ•˜์ง€๋งŒ ๋ฌด์—‡๋ณด๋‹ค ์ด ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”์ธํ…Œ์ด๋„ˆ๋“ค์˜ ์ „์ฒด์ ์ธ ์ž…์žฅ์€ ๋ฐ”๋€Œ์ง€ ์•Š๊ณ , ๊นจ์ง€์ง€ ์•Š๋Š” "NO LOGIC!!11!! 1!1" ์ข…๋ฅ˜์˜ ๋ณด๊ธฐ์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰