๋ค์๊ณผ ๊ฐ์ด resultcount๋ฅผ ์์ฑํ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค.
{{#if count == 0}}๊ฒฐ๊ณผ ์์{/if}}
{{#if count == 1}}๊ฒฐ๊ณผ 1๊ฐ{{/if}}
{{#if count > 1}}{{count}}๊ฐ ๊ฒฐ๊ณผ{{/if}}
์ด๊ฒ์ ๋ถ๊ฐ๋ฅํด ๋ณด์ ๋๋ค. ์ด๊ฑฐ ๋ง๋ค์ด๋ ๋๋์?
์ด๊ฒ์ ๋์ฐ๋ฏธ์ ์ํด ์ํ๋ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ณด์ญ์์ค: 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
์ด๋ ค์ ๋ฆฌํฉํ ๋ง - -, ๊ทธ๊ฒ์ ์ ์ฌ์ ์ผ๋ก๋ณด๊ธฐ ์ฝ๋๊ฐ ๋ ์ทจ์ฑ ๋ณ๊ฒฝํ ์์๋ ์๋์ ์คํค๋ง๋ฅผ ๋ง๋ ๊ฒฝ์ฐ.๊ทธ๊ฒ๋ค์ ๋ด ๋จธ๋ฆฌ ๊ผญ๋๊ธฐ์์ ๋ฒ์ด ๋ฌ๊ณ , ๋๋ ๊ทธ๊ฒ์ ๋ท๋ฐ์นจํ๊ธฐ ์ํด ์ ๋ํ ๊ฐ๋ฅํ ์ฐ๊ตฌ๋ฅผ ์ํํ์ง ์์์ง๋ง ์๊ฐ์์ํ ์์์ ๋๋ค. :^)
์๋ ์ง๋ฌธ์ ๊ฒฝ์ฐ ๋น๊ตํ๋ ๋์ฐ๋ฏธ๊ฐ ์๋ชป๋ ๊ฒฝ์ฐ์
๋๋ค. ์ผ๋ฐ์ ์ธ ์๋๋ฆฌ์ค์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ๋์ฐ๋ฏธ์
๋๋ค.
{{#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์ ๋ ผ๋ฆฌ๊ฐ ์๋ ์ข ๊ต์ ์ง์ํจ์ ์ ๋ง ๋๋์ต๋๋ค.
๊ทธ๋ ๊ทธ๊ฒ์ README์ ์ถ๊ฐํ ์ ์๋ค๊ณ ์ธ๊ธํ์ง๋ง ๋๋ ์จ์ ์ฃฝ์ด๊ณ ์์ง ์์ต๋๋ค.
์ด๊ฒ์ +1! ์ผ์ !
FWIW, Swag ์ ์ฅ์๋ ๋น๊ต, ์ ๋ ฌ ๋ฐ ๊ธฐํ ๋ฉ์ง ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๋์ฐ๋ฏธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํธ๋ค๋ฐ ์์ด๋ ์๋ฌด๊ฒ๋ ๋ง๋ค์ง ์์ต๋๋ค.
์ฆ, ๊ฐ์ธ์ ์ผ๋ก ํธ๋ค๋ฐ๋ฅผ ๊นจ๋ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง ๊ด๋ฆฌํ ์ ์๋๋ก ์ ์งํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ํ ๋ ผ๋ฆฌ๊ฐ ์๋ ์ํ๋ก ์ ์งํ๋ ๋ฐ ๋์ํฉ๋๋ค. ๋ ๋ง์ ๊ฒ์ ์ํ๋ฉด ํ๋ก์ ํธ ๋ฒ์๋ฅผ ๋ฒ์ด๋ ํญ๋ชฉ์ ๋ํด _Swag_์ ๊ฐ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ธฐ์ฌํ์ธ์. ์ด ํ๋ก์ ํธ์ ๊ด๋ฆฌ์๊ฐ ๋ง์์ ๋ฐ๊พธ๋ฉด pull ์์ฒญ๋ง ํ๋ฉด ๋ฉ๋๋ค.+1:
@aboutaaron "ํธ๋ค
if
๊ตฌ๋ฌธ์ ๋ถ์์ ํ ๋
ผ๋ฆฌ๊ฐ ํฌํจ๋์ด ์๋ค๋ ๊ฒ์ด ์ด๋ฏธ ์
์ฆ๋์์์ ์ ์ ์์ต๋๋ค. ์ค๋ ๋๋ฅผ ์ฝ์ง ์์๋ค๋ฉด ์ ๋ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ์ ์ํ ๊ฒ์
๋๋ค.if
๋ช
๋ น๋ฌธ์ ํํ๋ก ๋ถ์์ ํ ๋
ผ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค๋ ์ฆ๊ฑฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.if
๋ฌธ์ ์ ๊ณตํ๋ ํธ๋ค๋ฐ๋ ํธ๋ค๋ฐ AND 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) ์ ํํ๋ '์๋ค'์
๋๋ค. ์กด์ฌํ๋ ๊ฒฝ์ฐ ์ด๊ฒ์ ๋ ๋๋งํ์ญ์์ค.
'์๋ฌด๋'์ ๋ํด ์ธ ์ ์์ ๋ ํ๋์ ๋ฐ๋ ์๋ฅผ ๋ค์ด์ผ ํฉ๋๋ค. _์์ ๋ ๋ค_.
์์ ๋ฉ๋ชจ์์ ๋ค์ ์ค ํ๋๊ฐ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
if
์ exists
ํ๊ณ ํธ๋ค๋ฐ๋ฅผ "๋
ผ๋ฆฌ ์๋" ํธ์ถ์ ์ค์งํฉ๋๋ค(๊ทธ๋ ์ง ์๊ธฐ ๋๋ฌธ์).if
์ ๋ํ ์ง์์ ์ถ๊ฐํ์ฌ if
๋ฌธ์ผ๋ก ์๋ํฉ๋๋ค.if
์์ ํ ์ ๊ฑฐํฉ๋๋ค.๋๋ ๊ทธ ์ต์ ์ค ํ๋์ ๋ง์กฑํ ๊ฒ์ ๋๋ค.
์์ง ๋ง์ธ์ {{#unless}}
2013๋ 11์ 22์ผ ์คํ 4์ 40๋ถ์ Aaron M [email protected] ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
์์ ๋ฉ๋ชจ์์ ๋ค์ ์ค ํ๋๊ฐ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
์กด์ฌํ๋ ๊ฒฝ์ฐ ์ด๋ฆ์ ๋ฐ๊พธ๊ณ ํธ๋ค๋ฐ๋ฅผ "๋ ผ๋ฆฌ ์๋" ํธ์ถ ์ค์ง(๊ทธ๋ ์ง ์๊ธฐ ๋๋ฌธ์)
if ๋ฌธ์ผ๋ก ์๋ํ๋๋ก if ์ง์์ ์ถ๊ฐํฉ๋๋ค.
์์ ํ ์ ๊ฑฐํ์ญ์์ค.
๋๋ ๊ทธ ์ต์ ์ค ํ๋์ ๋ง์กฑํ ๊ฒ์ ๋๋ค.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ํ์ ํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
์ด๊ฒ์ด ์ง์ ์ผ๋ก ์์ฝ๋๋ ๊ฒ์ Aaron์ ์ํด ๋ฉ์ง๊ฒ ์์ฝ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ ๋ค ์์ ํ๋ฉด ์ด ์ฃผ์ฅ์ด ์ฌ๋ผ์ง๋๋ค.
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" ์ข ๋ฅ์ ๋ณด๊ธฐ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๊ทธ๊ฒ์ด ๋๋ ค์ ๋ค.
๋๋ ๋์ฐ๋ฏธ๋ก ๊ทธ๋ฐ ์ผ์ ํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค ... ๊ทธ๋ฌ๋, ๋ด ๋ง์, ๋ฌผ๊ฑด์ ๋น๊ตํ๋ ๊ฒ์ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ด๋ฏ๋ก ๊ธฐ๋ณธ ํจํค์ง์ ์์ด์ผํฉ๋๋ค.