Mustache.js: μ˜΅μ…˜ μΆ”κ°€: μ•Œ 수 μ—†λŠ” λ³€μˆ˜μ— λŒ€ν•œ κ²½κ³ 

에 λ§Œλ“  2016λ…„ 09μ›” 14일  Β·  18μ½”λ©˜νŠΈ  Β·  좜처: janl/mustache.js

λ•Œλ•Œλ‘œ μš°λ¦¬λŠ” λ³€μˆ˜ 이름에 μ˜€νƒ€λ₯Ό λ§Œλ“­λ‹ˆλ‹€(autosuggestλ₯Ό μ‚¬μš©ν•˜λ”λΌλ„).
mustache-jsκ°€ 빈 λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•˜λŠ” λŒ€μ‹ (사양을 μ€€μˆ˜ν•˜λ”λΌλ„) 'μ•Œ 수 μ—†λŠ”' λ³€μˆ˜μ— λŒ€ν•œ κ²½κ³ λ₯Ό μƒμ„±ν•˜λ„λ‘ ꡬ성이 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€.

Mustache 맨 νŽ˜μ΄μ§€λŠ” λ‹€μŒκ³Ό 같이 λ§ν•©λ‹ˆλ‹€.
By default a variable "miss" returns an empty string. This can usually be configured in your Mustache library. The Ruby version of Mustache supports raising an exception in this situation, for instance.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

예λ₯Ό λ“€μ–΄ Express와 ν•¨κ»˜ μ‚¬μš©ν•  λ•Œ μ΅œμ’… μ‚¬μš©μžκ°€ 잘λͺ» λ Œλ”λ§λœ νŽ˜μ΄μ§€λ₯Ό 보고 μžˆλŠ” λ™μ•ˆ μ–΄λ”˜κ°€μ— λ‘œκ·Έκ°€ μ•„λ‹ˆλΌ 500 응닡이 λ˜λ„λ‘ ν•˜λŠ” 것을 μ„ ν˜Έν•©λ‹ˆλ‹€. λ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ•Ό 함); 이것은 500νŽ˜μ΄μ§€κ°€ μ–Όλ§ˆλ‚˜ 쒋은지와 잘λͺ» λ Œλ”λ§λœ νŽ˜μ΄μ§€κ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κΈ°λŠ₯에 μ–Όλ§ˆλ‚˜ λ‚˜μœμ§€μ— 따라 둜컬 κ°œλ°œλ³΄λ‹€ ν”„λ‘œλ•μ…˜μ—μ„œ 훨씬 더 μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ„Ήμ…˜μ„ μ‚¬μš©ν•˜λ©΄ ν…œν”Œλ¦Ώμ—μ„œ 직접 μ‚¬μš©ν•˜κΈ° μœ„ν•œ ν•˜λ“œ 였λ₯˜κ°€ μžˆλŠ” κ²½μš°μ—λ„ λˆ„λ½λœ λ³€μˆ˜λ₯Ό λ¬΄μ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 문제λ₯Ό 기둝해야 ν•˜λŠ” 더 높은 μˆ˜μ€€μ˜ μ‚¬μš©μ€ 기둝 μ‹œμŠ€ν…œμ„ μ œμ–΄ν•˜λ―€λ‘œ ν…ŒμŠ€νŠΈ λŸ¬λ„ˆ λ˜λŠ” 이와 μœ μ‚¬ν•œ κ²ƒμ˜ 좜λ ₯을 λ°©ν•΄ν•˜λŠ” Mustache의 λ‚΄λΆ€ κ²½κ³  λ©”μ»€λ‹ˆμ¦˜μ— λŒ€ν•΄ κ±±μ •ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

https://github.com/ScottFreeCode/mustache.js 에 ν”„λ‘œν† νƒ€μž…μ΄ μžˆμŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜λŠ” 방법을 μ•Œμ•„λ‚΄λŠ” 데 도움을 받을 μˆ˜λŠ” μžˆμ§€λ§Œμš”.

λͺ¨λ“  18 λŒ“κΈ€

λ‘œμ»¬μ—μ„œ κ°œλ°œν•˜λŠ” λ™μ•ˆ λ‹€λ₯Έ ν”„λ ˆμž„μ›Œν¬μ˜ 이 κΈ°λŠ₯을 μ’‹μ•„ν•˜λ―€λ‘œ μ €μ—κ²Œ +1ν•˜μ‹­μ‹œμ˜€! μ„±λŠ₯에 μ΅œμ†Œν•œμ˜ 영ν–₯을 λ―ΈμΉ˜κ±°λ‚˜ μ „ν˜€ 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠλŠ” 것이 μ€‘μš”ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ½”μ–΄λ₯Ό κ·ΈλŒ€λ‘œ μœ μ§€ν•˜λ©΄μ„œ κ°€λŠ₯ν• κΉŒμš”? 예λ₯Ό λ“€μ–΄ κ°œλ°œν•˜λŠ” λ™μ•ˆ μ΄λŸ¬ν•œ μ’…λ₯˜μ˜ λ™μž‘μ„ ν™œμ„±ν™”ν•˜κΈ° μœ„ν•΄ 일뢀 λ‚΄λΆ€ λ©”μ„œλ“œλ₯Ό μž¬μ •μ˜ν•©λ‹ˆλ‹€.

mustache.dev.js λ₯Ό μ‚¬μš©ν•˜μ—¬ λΉŒλ“œλœ mustache.js 및 검사 논리λ₯Ό ν¬ν•¨ν•˜λŠ” ν•¨μˆ˜ μž¬μ •μ˜κ°€ κ°€λŠ₯ν• κΉŒμš”?

예λ₯Ό λ“€μ–΄ Express와 ν•¨κ»˜ μ‚¬μš©ν•  λ•Œ μ΅œμ’… μ‚¬μš©μžκ°€ 잘λͺ» λ Œλ”λ§λœ νŽ˜μ΄μ§€λ₯Ό 보고 μžˆλŠ” λ™μ•ˆ μ–΄λ”˜κ°€μ— λ‘œκ·Έκ°€ μ•„λ‹ˆλΌ 500 응닡이 λ˜λ„λ‘ ν•˜λŠ” 것을 μ„ ν˜Έν•©λ‹ˆλ‹€. λ³€μˆ˜λ₯Ό μ‚¬μš©ν•΄μ•Ό 함); 이것은 500νŽ˜μ΄μ§€κ°€ μ–Όλ§ˆλ‚˜ 쒋은지와 잘λͺ» λ Œλ”λ§λœ νŽ˜μ΄μ§€κ°€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ κΈ°λŠ₯에 μ–Όλ§ˆλ‚˜ λ‚˜μœμ§€μ— 따라 둜컬 κ°œλ°œλ³΄λ‹€ ν”„λ‘œλ•μ…˜μ—μ„œ 훨씬 더 μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ„Ήμ…˜μ„ μ‚¬μš©ν•˜λ©΄ ν…œν”Œλ¦Ώμ—μ„œ 직접 μ‚¬μš©ν•˜κΈ° μœ„ν•œ ν•˜λ“œ 였λ₯˜κ°€ μžˆλŠ” κ²½μš°μ—λ„ λˆ„λ½λœ λ³€μˆ˜λ₯Ό λ¬΄μ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그리고 문제λ₯Ό 기둝해야 ν•˜λŠ” 더 높은 μˆ˜μ€€μ˜ μ‚¬μš©μ€ 기둝 μ‹œμŠ€ν…œμ„ μ œμ–΄ν•˜λ―€λ‘œ ν…ŒμŠ€νŠΈ λŸ¬λ„ˆ λ˜λŠ” 이와 μœ μ‚¬ν•œ κ²ƒμ˜ 좜λ ₯을 λ°©ν•΄ν•˜λŠ” Mustache의 λ‚΄λΆ€ κ²½κ³  λ©”μ»€λ‹ˆμ¦˜μ— λŒ€ν•΄ κ±±μ •ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

https://github.com/ScottFreeCode/mustache.js 에 ν”„λ‘œν† νƒ€μž…μ΄ μžˆμŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•˜λŠ” 방법을 μ•Œμ•„λ‚΄λŠ” 데 도움을 받을 μˆ˜λŠ” μžˆμ§€λ§Œμš”.

흠, κ·Έλž˜μ„œ if ( {{#thing}} )둜 개체의 쑴재λ₯Ό μ‚¬μš©ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆκΉŒ? (λ‚˜λŠ” 이것이 κ½€ ν”ν•œ 일이라고 μƒκ°ν•œλ‹€)

μ•„λ‹ˆλ©΄ λ³€μˆ˜μ˜ μ‹€μ œ λ Œλ”λ§( {{ id }} )μ—μ„œλ§Œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆκΉŒ? 무슨 μƒκ°ν•˜κ³  μžˆμ—ˆλ˜κ±°μ•Ό?

νŽΈμ§‘: λ²ˆκ±°λ‘­μ§€ μ•Šμ€ 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ μ „κ³΅μ—μ„œ 기본적으둜 ν™œμ„±ν™”ν•˜λ„λ‘ +1ν•  수 μžˆλŠ” 맀우 멋진 κΈ°λŠ₯μž…λ‹ˆλ‹€.

λ‚΄ 생각에 첫 λ²ˆμ§ΈλŠ” 였λ₯˜μ΄κ³  두 λ²ˆμ§ΈλŠ” 'κ²½κ³ 'μ—¬μ•Ό ν•©λ‹ˆλ‹€.
λ‘˜ λ‹€ λˆ„λ½λœ 값이 μžˆλŠ”μ§€ μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

두 번째 κ²½μš°μ—λŠ” 기술적으둜 깨지지 μ•Šμ„ 수 μžˆμ§€λ§Œ νŽ˜μ΄μ§€μ— 큰 영ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ κ·Έ λ°˜λŒ€μ˜ κ²½μš°λ„ 쒋을 κ²ƒμž…λ‹ˆλ‹€. μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” λ³€μˆ˜... ν•˜μ§€λ§Œ 훨씬 더 λ§Žμ€ 영ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆλ‹€. :NS

2016λ…„ 11μ›” 8일 14μ‹œ 19뢄에 David da Silva [email protected]이 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

흠, κ·Έλ ‡λ‹€λ©΄ 객체의 쑴재λ₯Ό if({{#thing}})둜 μ‚¬μš©ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆκΉŒ? (λ‚˜λŠ” 이것이 κ½€ ν”ν•œ 일이라고 μƒκ°ν•œλ‹€)

μ•„λ‹ˆλ©΄ λ³€μˆ˜μ˜ μ‹€μ œ λ Œλ”λ§({{ id }})만 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆκΉŒ? 무슨 μƒκ°ν•˜κ³  μžˆμ—ˆλ˜κ±°μ•Ό?

β€”
μŠ€λ ˆλ“œλ₯Ό μž‘μ„±ν–ˆκΈ° λ•Œλ¬Έμ— 이 λ©”μ‹œμ§€λ₯Ό λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHub https://github.com/janl/mustache.js/issues/599#issuecomment -259133973μ—μ„œ ν™•μΈν•˜κ±°λ‚˜ μŠ€λ ˆλ“œ https://github.com/notifications/unsubscribe-auth/λ₯Ό μŒμ†Œκ±°

λ‚΄ 생각에 첫 λ²ˆμ§ΈλŠ” 였λ₯˜μ΄κ³  두 λ²ˆμ§ΈλŠ” 'κ²½κ³ 'μ—¬μ•Ό ν•©λ‹ˆλ‹€.
λ‘˜ λ‹€ λˆ„λ½λœ 값이 μžˆλŠ”μ§€ μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

@MatthijsZw μ•Œκ² μŠ΅λ‹ˆλ‹€ . 방금 속성에 λŒ€ν•΄ null 값을 μ €μž₯ν•  수 μžˆλ‹€λŠ” 것을 κΈ°μ–΅ν–ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 쒋은 μΌμ΄λ―€λ‘œ μ˜ˆμ™Έκ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. (특히 if κ²½μš°μ— λŒ€ν•΄ μ–ΈκΈ‰)

νŽΈμ§‘: λ‚΄ ν˜„μž¬ μž…μž₯은 λ‘˜ λ‹€ Err을 μ„ ν˜Έν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ‚˜λŠ” μΌκ΄€λœ 행동을 μ„ ν˜Έν•˜λ©° 빈 결츑값에 λŒ€ν•΄ null μ‚¬μš©μ„ μ‹œν–‰ν•  것인데, 이것이 λ°”λžŒμ§ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ˜ν•œ κ·Έ λ°˜λŒ€μ˜ κ²½μš°λ„ 쒋을 κ²ƒμž…λ‹ˆλ‹€. μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” λ³€μˆ˜... ν•˜μ§€λ§Œ 훨씬 더 λ§Žμ€ 영ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆλ‹€. :NS

ν…œν”Œλ¦Ώμ΄ μ˜ˆμƒν•˜λŠ” 데이터에 λŒ€ν•œ μŠ€ν‚€λ§ˆλ₯Ό μ–΄λ–»κ²Œλ“  κ°€μ Έμ˜€κ³  이λ₯Ό μ‚¬μš©ν•˜μ—¬ GraphQL 쿼리λ₯Ό μƒμ„±ν•˜κ±°λ‚˜... λ˜λŠ” 이와 μœ μ‚¬ν•œ 것을 μ‚¬μš©ν•˜λŠ” 것이 λ©‹μ§ˆ 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

더 생각해 보면, μ—¬κΈ°μ„œ 문제의 μΌλΆ€λŠ” λˆ„λ½λœ 데이터가 _λ•Œλ¬Έμ—_ μœ νš¨ν•˜μ§€ μ•Šλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ _λ§Œμ•½_ ν…œν”Œλ¦Ώμ΄ ν•΄λ‹Ή 데이터λ₯Ό _κΈ°λŒ€ν•˜λŠ”_ κ²ƒμž…λ‹ˆλ‹€. λ”°λΌμ„œ ν…œν”Œλ¦Ώμ΄ 일반 ν‘œμ‹œν•  수 μžˆλŠ” λˆ„λ½λœ λ°μ΄ν„°λŠ” ν•΄λ‹Ή 논리에 μ˜ν•΄ 항상 μœ νš¨ν•˜μ§€ μ•Šμ§€λ§Œ ν…œν”Œλ¦Ώμ΄ ν•œ κ³³μ—μ„œ νŠΉμ • 데이터λ₯Ό μ‚¬μš©ν•  수 있고 이λ₯Ό μΌμ’…μ˜ μ°Έ/거짓 ν”Œλž˜κ·Έλ‘œ λΆ„κΈ°ν•  수 μžˆλ‹€κ³  생각할 수 μžˆμŠ΅λ‹ˆλ‹€. λˆ„λ½λœ κ²ƒλ§ŒνΌ 거짓이 μ•„λ‹ˆμ–΄μ„œ ν•΄λ‹Ή κΈ°λŒ€μΉ˜λ₯Ό μΆ©μ‘±ν•˜μ§€ λͺ»ν•˜λŠ” 경우 μœ νš¨ν•˜μ§€ μ•Šμ§€λ§Œ, λ‹€λ₯Έ λ°μ΄ν„°μ—μ„œλŠ” 데이터가 μ‚¬μš© κ°€λŠ₯ν•˜κ±°λ‚˜ μ‚¬μš© λΆˆκ°€λŠ₯ν•  수 있으며 μ‚¬μš© κ°€λŠ₯ν•œμ§€ 여뢀에 따라 λΆ„κΈ°ν•  수 μžˆμŠ΅λ‹ˆλ‹€(이 경우 μœ νš¨ν•˜μ§€ μ•ŠμŒ).

그런 κ΄€μ μ—μ„œ null λ₯Ό μ‚¬μš©ν•˜μ—¬ 이것을 μ œμ–΄ν•˜λŠ” ​​것은 λ‚˜μ—κ²Œ 그닀지 μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

  • 데이터가 잘λͺ»λœ 경우(μ˜ˆμƒμ„ μΆ©μ‘±ν•˜μ§€ λͺ»ν•˜λŠ” 경우) 잘λͺ»λœ 데이터 μ²˜λ¦¬μ— λŒ€ν•œ ν…œν”Œλ¦Ώ λ™μž‘μ„ μ œμ–΄ν•˜λŠ” β€‹β€‹μž˜λͺ»λœ 데이터λ₯Ό μ–΄λ–»κ²Œ κΈ°λŒ€ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?
  • μ–΄μ¨Œλ“  κΈ°λŒ€λŠ” μ‹€μ œλ‘œ ν…œν”Œλ¦Ώμ— μžˆμŠ΅λ‹ˆλ‹€.
  • null λŠ” 데이터λ₯Ό κΈ°λŒ€ν•˜κ³  데이터 λˆ„λ½μ— λŒ€ν•΄ μœ νš¨ν•˜μ§€ μ•Šμ€ κ²ƒμœΌλ‘œ κ°„μ£Όν•˜λŠ” 진싀성에 λŒ€ν•œ 뢄기에 λŒ€ν•œ 잘λͺ»λœ 값일 수 μžˆμ§€λ§Œ, μ—¬μ „νžˆ 데이터가 μ „ν˜€ μ œκ³΅λ˜μ—ˆλŠ”μ§€ 여뢀에 λŒ€ν•œ λΆ„κΈ°κ°€ ν•„μš”ν•©λ‹ˆλ‹€. 데이터가 μ±„μ›Œμ§€μ§€ μ•Šμ„ 수 μžˆλ‹€κ³  μ˜ˆμƒν•˜μ‹­μ‹œμ˜€( null μ•„λ‹ˆλ”λΌλ„ λˆ„λ½λœ 데이터에 λŒ€ν•΄ null λ₯Ό μ‚¬μš©ν•˜λŠ” μ†ŒμŠ€μ—μ„œ μ˜€λŠ” κ²½μš°κ°€ μ•„λ‹ˆλΌλ©΄, 예λ₯Ό λ“€μ–΄ SQL -- 그리고 μ‹€μ œλ‘œ, μ΄λŠ” null λ₯Ό λˆ„λ½λœ κ²ƒμœΌλ‘œ μ·¨κΈ‰ν•˜κ±°λ‚˜ 데이터 μ†ŒμŠ€λ₯Ό 기반으둜 ꡬ성할 수 μ—†μŒ).

μš°λ¦¬κ°€ ν•„μš”λ‘œ ν•˜λŠ” 것은 ν…œν”Œλ¦Ώ λΆ€λΆ„μ—μ„œ λ‹€λ₯Έ κΈ°λŒ€λ₯Ό μœ„ν•œ 두 가지 μœ ν˜•μ˜ λΆ„κΈ°μž…λ‹ˆλ‹€. λ‚΄κ°€ μ•„λŠ” ν•œ 언어에 ꡬ애받지 μ•ŠλŠ” Mustache 사양 λ•Œλ¬Έμ— λΆˆν–‰ν•œ μΌμ΄μ§€λ§Œ λˆ„λ½ 된 데이터가 였λ₯˜μΈμ§€ 여뢀에 λŒ€ν•œ ꡬ성을 ν—ˆμš©ν•˜μ§€λ§Œ λ‹€λ₯Έ μœ ν˜•μ˜ 뢄기에 λŒ€ν•œ 정보가 μ—†λ‹€λŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 이 μ μ—μ„œ λ‹€λ₯Ό 것이닀. 흠...


λ°˜λŒ€λ‘œ, λ‚˜λŠ” ν˜„μž¬ κ΄€λ ¨ μ—†λŠ”/μž‰μ—¬/λ―Έμ‚¬μš© 데이터가 μ‹€μ œλ‘œ 잘λͺ»λœ λ°μ΄ν„°μ˜ λ¬Έμ œκ°€ μ•„λ‹ˆλΌ μ‘μš© ν”„λ‘œκ·Έλž¨/데이터/ λͺ¨λΈμ΄ μ‚¬μš©λ  κ²ƒμœΌλ‘œ μ˜ˆμƒλ©λ‹ˆλ‹€. 즉, 일뢀 ν•­λͺ©μ΄ 잠재적으둜 μ‚¬μš© κ°€λŠ₯ν•˜μ§€λ§Œ ν…œν”Œλ¦Ώμ΄ κ΄€λ ¨μ„± μ—¬λΆ€λ₯Ό κ²°μ •ν•  수 μžˆλŠ” 경우 ν…œν”Œλ¦Ώμ΄ ν•΄λ‹Ή ν•­λͺ©μ„ μΈμ‡„ν•˜λŠ”μ§€ μ—¬λΆ€λŠ” μ€‘μš”ν•˜μ§€ μ•Šμ§€λ§Œ 일뢀 ν•­λͺ©μ΄ μ‚¬μš©μžμ—κ²Œ μ‹€μ œλ‘œ ν‘œμ‹œλ˜μ–΄μ•Ό _ν•„μš”_ν•˜λ‹€λ©΄ ν…œν”Œλ¦Ώμ΄ t 그것을 ν‘œμ‹œν•˜λŠ” 것은 였λ₯˜μž…λ‹ˆλ‹€. μΌμ’…μ˜ λ°˜μ „μœΌλ‘œμ„œ κΈ°λŒ€λŠ” ν…œν”Œλ¦Ώ 외뢀에 있고(λͺ¨λΈμ—μ„œ?) κ·Έ κΈ°λŒ€λ₯Ό μΆ©μ‘±ν•˜μ§€ λͺ»ν•˜λŠ” λ¬΄νš¨μ„±μ€ ν…œν”Œλ¦Ώμ— μžˆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ λ³„λ„λ‘œ ν•΄κ²°ν•˜λŠ” 것이 κ°€μž₯ 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€.


μœ„μ˜ λ‚΄μš©μ€ κ°•ν•œ 의견이 μ•½ν•˜κ²Œ μœ μ§€λ˜κ³  μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

null 값을 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” κ°’μœΌλ‘œ ν•΄μ„ν•˜λŠ” IMOλŠ” 잘λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

{ name: null }

ν•΄λ‹Ή κ°œμ²΄μ—λŠ” 잘λͺ»λœ 값이 μžˆλŠ” name 속성이 μžˆμœΌλ―€λ‘œ μœ νš¨ν•˜μ§€ μ•Šμ€ κ²ƒμœΌλ‘œ κ°„μ£Όλ˜μ–΄μ„œλŠ” μ•ˆ λ˜λ―€λ‘œ 던질 μ΄μœ κ°€ μ•„λ‹™λ‹ˆλ‹€.

더 μ μ ˆν•œ κ²€μ‚¬λŠ” μš”μ²­ν•œ 속성이 mustache.hasProperty() μ—μ„œμ™€ 같이 μ •μ˜λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ‹€λ₯Έ λ°μ΄ν„°μ—μ„œλŠ” 데이터가 μ‚¬μš© κ°€λŠ₯ν•˜κ±°λ‚˜ μ‚¬μš© λΆˆκ°€λŠ₯ν•  수 있으며 μ‚¬μš© κ°€λŠ₯ 여뢀에 따라 λΆ„κΈ°ν•  수 μžˆμŠ΅λ‹ˆλ‹€(이 경우 μœ νš¨ν•˜μ§€ μ•ŠμŒ).

λ‚΄κ°€ μ „λ‹¬ν•˜λ €λŠ” 것은 X 킀에 따라 λΆ„κΈ°ν•˜λŠ” 경우(예: {{#X}} , 제곡된 λ°μ΄ν„°λŠ” X 킀에 λŒ€ν•œ 값이 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 거짓 κ°’μ΄μ§€λ§Œ ν™•μ‹€νžˆ undefined μ•„λ‹™λ‹ˆλ‹€.

  • null "예, 값이 μ—†λ‹€λŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 값이 μ—†μŒμ„ λͺ…μ‹œμ μœΌλ‘œ ν‘œμ‹œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€"λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
  • undefined λŒ€λΆ€λΆ„ X ν‚€κ°€ μ •μ˜λ˜μ§€ μ•Šμ•˜μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€( undefined κ°’μœΌλ‘œ ν‚€λ₯Ό μ •μ˜ν•˜λŠ” 경우 null μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€) . 그리고 ν‚€κ°€ μ •μ˜λ˜μ§€ μ•Šμ€ 경우 데이터 선언이 '게으λ₯Έ'(예: 객체 μ°Έμ‘°κ°€ 없을 λ•Œ null μ‚¬μš©ν•˜μ§€ μ•ŠμŒ) λ˜λŠ” μ‚¬λžŒμ˜ μ‹€μˆ˜(μ˜€νƒ€, λ―Έλ„λŸ¬μ§, ν˜Όλ™) λ•Œλ¬Έμž…λ‹ˆλ‹€.

λ”°λΌμ„œ 이 경우 였λ₯˜λ₯Ό λ˜μ§€λ©΄ 이점이 μžˆμŠ΅λ‹ˆλ‹€. (값이 undefined ν‚€μ—μ„œ λΆ„κΈ°ν•˜λ €κ³  함)

λ‹€λ₯Έ κ²½μš°μ—λŠ” undefined λ˜λŠ” null λ₯Ό λ Œλ”λ§ν•˜λ €κ³  ν•˜λ©΄ 이에 λŒ€ν•œ μ‚¬μš© 사둀가 μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ κ·Έ λΆ€λΆ„μ—μ„œλ„ 였λ₯˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SQLκ³Ό 같이 λˆ„λ½λœ 데이터에 null을 μ‚¬μš©ν•˜λŠ” μ†ŒμŠ€μ—μ„œ μ˜€λŠ” κ²½μš°κ°€ μ•„λ‹ˆλ©΄

Afaik, Mustache 철학은 λͺ¨λΈμ„ μžˆλŠ” κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λͺ¨λΈμ—μ„œ '보기'λ₯Ό μƒμ„±ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κ³΅κΈ‰μžκ°€ μ–΄λ–»κ²Œ λ“  그렇지 μ•Šμ€ 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ null μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” ν˜„μž¬ κ΄€λ ¨ μ—†λŠ”/μž‰μ—¬/λ―Έμ‚¬μš© 데이터가 μ‹€μ œλ‘œ μœ νš¨ν•˜μ§€ μ•Šμ€ λ°μ΄ν„°μ˜ λ¬Έμ œκ°€ μ•„λ‹ˆλΌ μ• ν”Œλ¦¬μΌ€μ΄μ…˜/데이터/λͺ¨λΈμ΄ μ˜ˆμƒν•  λ•Œ ν•΄λ‹Ή 데이터λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 경우 ν…œν”Œλ¦Ώμ΄ μœ νš¨ν•˜μ§€ μ•Šλ‹€λŠ” 문제라고 μƒκ°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄μš©λ˜λ‹€

음, 제곡된 데이터λ₯Ό λͺ¨λ‘ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 일반적이라고 μƒκ°ν•©λ‹ˆλ‹€. μ €λŠ” μ œκ°€ μ œμ•ˆν•œ GraphQL 쿼리 생성과 같은 μœ μš©ν•œ νˆ΄λ§μ„ μœ„ν•΄ 주둜 아이디어λ₯Ό λ˜μ‘ŒμŠ΅λ‹ˆλ‹€.

일뢀 ν•­λͺ©μ΄ μ‹€μ œλ‘œ μ‚¬μš©μžμ—κ²Œ ν‘œμ‹œλ˜μ–΄μ•Ό ν•˜λŠ” 경우 ν…œν”Œλ¦Ώμ— ν‘œμ‹œλ˜μ§€ μ•ŠμœΌλ©΄ 였λ₯˜μž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ "μ‚¬μš©μžμ—κ²Œ μ§„μ •μœΌλ‘œ ν‘œμ‹œλ˜μ–΄μ•Ό ν•˜λŠ” 것"이 ​​무엇인지 λˆ„κ°€/무엇을 κ²°μ •ν•©λ‹ˆκΉŒ? λ‚΄κ°€ μΆ”μΈ‘ν•˜λŠ” ν…œν”Œλ¦Ώ μž‘κ°€? μ‚¬λžŒλ“€μ΄ 보기의 λͺ¨λ“  데이터λ₯Ό μ‚¬μš©ν•˜λ„λ‘ κ°•μ œν•˜λŠ” 경우 λ Œλ”λ§ν•˜λ €λŠ” 각 ν…œν”Œλ¦Ώμ— λŒ€ν•΄ λ§žμΆ€ν˜• 보기λ₯Ό μƒμ„±ν•˜λ„λ‘ κ°•μš”ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

참고둜 제 μ‚¬μš© μ‚¬λ‘€λŠ” λΆ„κΈ° μ—†λŠ” μˆ˜λ™ μ„€μ •μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 'λ‹€λ₯Έ μ‚¬λžŒλ“€'이 데이터(이벀트)λ₯Ό μˆ˜λ™μœΌλ‘œ μƒμ„±ν•˜λ„λ‘ ν–ˆκ³  κ·Έ 경우 그듀이 λͺ¨λ“  ν•„λ“œλ₯Ό μ±„μš°κ±°λ‚˜ λ³€μˆ˜ 이름에 μ˜€νƒ€λ₯Ό λ§Œλ“€μ—ˆλŠ”μ§€ 확인할 방법이 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ ν…œν”Œλ¦Ώμ€ "{{ event.name }} on {{ event.date }}"라고 ν‘œμ‹œλ©λ‹ˆλ‹€. 이 경우 λˆ„λ½λœ 값은 λ”μ°ν•œ νŽ˜μ΄μ§€λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
λͺ¨λ“  ν•„λ“œκ°€ ν•„μˆ˜μ΄λ―€λ‘œ {{ event.date }}λ₯Ό ν‘œμ‹œν•˜μ§€ μ•ŠλŠ” 논리λ₯Ό μΆ”κ°€ν•˜λŠ” 것은 μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

이 경우 'μ‚¬μš©λ˜μ§€ μ•ŠλŠ”' λ³€μˆ˜λ„ μ•Œκ³ , μ˜€νƒ€λ‚˜ μΆ”κ°€ν•œ ν•­λͺ©μ΄ νŽ˜μ΄μ§€μ— 'λ§ˆλ²•μ²˜λŸΌ' λ‚˜νƒ€λ‚  것이라고 μƒκ°ν•˜λŠ” ν•­λͺ©μ„ λ‹€μ‹œ ν™•μΈν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. :)

λ‚˜λŠ” 이 μ‚¬μš© 사둀가 μ–΄λ–»κ²Œλ“  Mustache의 이념을 μ–΄κΈ°λŠ” 것이라고 ν™•μ‹ ν•˜μ§€λ§Œ μ‹€μ œ μ‹œλ‚˜λ¦¬μ˜€μž…λ‹ˆλ‹€.
그리고 두 가지 상황(κ²°μΈ‘κ°’ + μ‚¬μš©ν•˜μ§€ μ•Šμ€ κ°’) λͺ¨λ‘ κ²½κ³ λ₯Ό μƒμ„±ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

2016λ…„ 11μ›” 9일 10μ‹œ 53뢄에 David da Silva [email protected]이 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ‹€λ₯Έ λ°μ΄ν„°μ—μ„œλŠ” 데이터가 μ‚¬μš© κ°€λŠ₯ν•˜κ±°λ‚˜ μ‚¬μš© λΆˆκ°€λŠ₯ν•  수 있으며 μ‚¬μš© κ°€λŠ₯ 여뢀에 따라 λΆ„κΈ°ν•  수 μžˆμŠ΅λ‹ˆλ‹€(이 경우 μœ νš¨ν•˜μ§€ μ•ŠμŒ).

λ‚΄κ°€ μ „λ‹¬ν•˜λ €λŠ” 것은 ν‚€ X에 따라 λΆ„κΈ°ν•˜λŠ” 경우(예: {{#X}}, 제곡된 λ°μ΄ν„°λŠ” ν‚€ X에 λŒ€ν•œ 값이 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. μ°Έ λ˜λŠ” 거짓 κ°’μ΄μ§€λ§Œ ν™•μ‹€νžˆ μ •μ˜λ˜μ§€ μ•Šμ€ 값은 μ•„λ‹™λ‹ˆλ‹€.

null은 "예, 값이 μ—†λ‹€λŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. 값이 μ—†μŒμ„ λͺ…μ‹œμ μœΌλ‘œ ν‘œμ‹œν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€"λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€.
undefinedλŠ” λŒ€λΆ€λΆ„ ν‚€ Xκ°€ μ •μ˜λ˜μ§€ μ•Šμ•˜μŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€(undefined κ°’μœΌλ‘œ ν‚€λ₯Ό μ •μ˜ν•˜λŠ” 경우 null을 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€). ν‚€κ°€ μ •μ˜λ˜μ§€ μ•Šμ€ 경우 데이터 선언이 '게으λ₯Έ'(예: 객체 μ°Έμ‘°κ°€ μ—†λŠ” 경우 null을 μ‚¬μš©ν•˜μ§€ μ•ŠμŒ) λ˜λŠ” μ‚¬λžŒμ˜ μ‹€μˆ˜(μ˜€νƒ€, μ‹€μˆ˜, ν˜Όλ™) λ•Œλ¬Έμž…λ‹ˆλ‹€.
λ”°λΌμ„œ 이 경우 였λ₯˜λ₯Ό λ˜μ§€λ©΄ 이점이 μžˆμŠ΅λ‹ˆλ‹€. (값이 μ •μ˜λ˜μ§€ μ•Šμ€ ν‚€μ—μ„œ λΆ„κΈ°λ₯Ό μ‹œλ„ν•¨)

λ‹€λ₯Έ κ²½μš°μ—λŠ” μ •μ˜λ˜μ§€ μ•Šμ•˜κ±°λ‚˜ null을 λ Œλ”λ§ν•˜λ €κ³  μ‹œλ„ν–ˆμ§€λ§Œ 이에 λŒ€ν•œ μ‚¬μš© 사둀가 μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ κ·Έ λΆ€λΆ„μ—μ„œλ„ 였λ₯˜κ°€ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

SQLκ³Ό 같이 λˆ„λ½λœ 데이터에 null을 μ‚¬μš©ν•˜λŠ” μ†ŒμŠ€μ—μ„œ μ˜€λŠ” κ²½μš°κ°€ μ•„λ‹ˆλ©΄

Afaik, Mustache 철학은 λͺ¨λΈμ„ μžˆλŠ” κ·ΈλŒ€λ‘œ μ‚¬μš©ν•˜λŠ” 것이 μ•„λ‹ˆλΌ λͺ¨λΈμ—μ„œ '보기'λ₯Ό μƒμ„±ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. κ³΅κΈ‰μžκ°€ μ–΄λ–»κ²Œ λ“  그렇지 μ•Šμ€ 경우λ₯Ό λŒ€λΉ„ν•˜μ—¬ null을 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” ν˜„μž¬ κ΄€λ ¨ μ—†λŠ”/μž‰μ—¬/λ―Έμ‚¬μš© 데이터가 μ‹€μ œλ‘œ μœ νš¨ν•˜μ§€ μ•Šμ€ λ°μ΄ν„°μ˜ λ¬Έμ œκ°€ μ•„λ‹ˆλΌ μ• ν”Œλ¦¬μΌ€μ΄μ…˜/데이터/λͺ¨λΈμ΄ μ˜ˆμƒν•  λ•Œ ν•΄λ‹Ή 데이터λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 경우 ν…œν”Œλ¦Ώμ΄ μœ νš¨ν•˜μ§€ μ•Šλ‹€λŠ” 문제라고 μƒκ°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄μš©λ˜λ‹€

음, 제곡된 데이터λ₯Ό λͺ¨λ‘ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” 것이 일반적이라고 μƒκ°ν•©λ‹ˆλ‹€. μ €λŠ” μ œκ°€ μ œμ•ˆν•œ GraphQL 쿼리 생성과 같은 μœ μš©ν•œ νˆ΄λ§μ„ μœ„ν•΄ 주둜 아이디어λ₯Ό λ˜μ‘ŒμŠ΅λ‹ˆλ‹€.

일뢀 ν•­λͺ©μ΄ μ‹€μ œλ‘œ μ‚¬μš©μžμ—κ²Œ ν‘œμ‹œλ˜μ–΄μ•Ό ν•˜λŠ” 경우 ν…œν”Œλ¦Ώμ— ν‘œμ‹œλ˜μ§€ μ•ŠμœΌλ©΄ 였λ₯˜μž…λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ "μ‚¬μš©μžμ—κ²Œ μ§„μ •μœΌλ‘œ ν‘œμ‹œλ˜μ–΄μ•Ό ν•˜λŠ” 것"이 ​​무엇인지 λˆ„κ°€/무엇을 κ²°μ •ν•©λ‹ˆκΉŒ? λ‚΄κ°€ μΆ”μΈ‘ν•˜λŠ” ν…œν”Œλ¦Ώ μž‘κ°€? μ‚¬λžŒλ“€μ΄ 보기의 λͺ¨λ“  데이터λ₯Ό μ‚¬μš©ν•˜λ„λ‘ κ°•μ œν•˜λŠ” 경우 λ Œλ”λ§ν•˜λ €λŠ” 각 ν…œν”Œλ¦Ώμ— λŒ€ν•΄ λ§žμΆ€ν˜• 보기λ₯Ό μƒμ„±ν•˜λ„λ‘ κ°•μš”ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHub https://github.com/janl/mustache.js/issues/599#issuecomment -259374603μ—μ„œ ν™•μΈν•˜κ±°λ‚˜ μŠ€λ ˆλ“œ https://github.com/notifications/unsubscribe-auth/λ₯Ό μŒμ†Œκ±°

λ‚˜λŠ” 이 μ‚¬μš© 사둀가 μ–΄λ–»κ²Œλ“  Mustache의 이념을 μ–΄κΈ°λŠ” 것이라고 ν™•μ‹ ν•˜μ§€λ§Œ μ‹€μ œ μ‹œλ‚˜λ¦¬μ˜€μž…λ‹ˆλ‹€. 그리고 두 가지 상황(κ²°μΈ‘κ°’ + μ‚¬μš©ν•˜μ§€ μ•Šμ€ κ°’) λͺ¨λ‘ κ²½κ³ λ₯Ό μƒμ„±ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

λ‘˜ λ‹€ κ°€λŠ₯ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€. CI에 μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

디버깅을 μœ„ν•΄ λ·°μ—μ„œ 직접 λ§€κ°œλ³€μˆ˜λ₯Ό λ³΄λŠ” 것을 μ„ ν˜Έν•©λ‹ˆλ‹€.

λ‚΄ μ‚¬μš© μ‚¬λ‘€λŠ” μ•½κ°„ λ‹€λ¦…λ‹ˆλ‹€. μ €λŠ” Mustacheλ₯Ό μ‚¬μš©ν•˜μ—¬ Gulpλ₯Ό μ‚¬μš©ν•˜μ—¬ Terraform ν…œν”Œλ¦Ώμ„ λ³€ν™˜ν•©λ‹ˆλ‹€. λ³€μˆ˜κ°€ μ—†μœΌλ©΄ 특히 자유 ν˜•μ‹ λ¬Έμžμ—΄λ‘œ λŒ€μ²΄ν•  λ•Œ μΈμŠ€ν„΄μŠ€κ°€ μ˜¬λ°”λ₯΄κ²Œ λΆ€νŒ…λ˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. 이 κΈ°λŠ₯을 μ–»κΈ° μœ„ν•΄ λΉ λ₯Έ μ›μˆ­μ΄ 패치λ₯Ό 생각해 λƒˆμ§€λ§Œ 이상적이지 μ•ŠμŠ΅λ‹ˆλ‹€.

var mustache = require("mustache");

var errors = [];
var lookup = mustache.Context.prototype.lookup;

mustache.Context.prototype.lookup = function(name) {
    var value = lookup.bind(this)(name);

    if (value === undefined) {
        console.error("Unknown symbol", name);
        errors.push(name);
    }

    return value;
}

var render = mustache.render;

mustache.render = function(template, view, partials) {
    var result = render.bind(this)(template, view, partials);

    if (errors.length > 0) {
        throw {message: "Unknown symbols: " + errors.join(", ")};
    }

    return result;
}

λ…ΈνŠΈ:

  • 쀄 λ²ˆν˜Έλ‚˜ μ™„μ „ν•œ 기호 이름을 μ œκ³΅ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • 닀쀑 μŠ€λ ˆλ“œ ν™˜κ²½μ—μ„œ μž‘μ—…ν•˜λŠ” 경우 μ™„μ „νžˆ μ•ˆμ „ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 그것은 λ‚΄ λͺ©μ μ„ μœ„ν•΄ 잘 μž‘λ™ν–ˆμœΌλ©° ν•„μš”ν•œ 경우 λˆ„κ΅°κ°€κ°€ μ‘°μ •ν•  수 μžˆλ‹€κ³  ν™•μ‹ ν•©λ‹ˆλ‹€.

λͺ¨λ“  μ’…λ₯˜μ˜ ꡬ성 관리 ν™˜κ²½μ—μ„œ μ½§μˆ˜μ—Όμ„ ν…œν”Œλ¦Ώ μ—”μ§„μœΌλ‘œ μ‚¬μš©ν•˜λ €λ©΄ λˆ„λ½λœ λ³€μˆ˜μ— λŒ€ν•œ ν•˜λ“œ 였λ₯˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. μ €λŠ”λŠ” Kubernetesμ—κ²Œ 배포 λ¬Έμ„œλ₯Ό λ³€ν™˜, @steverukuts에 μ‚¬μš©ν•˜λŠ” κ²½μš°μ™€ μœ μ‚¬ν•©λ‹ˆλ‹€. 이 μ‚¬μš© μ‚¬λ‘€μ—μ„œ λˆ„λ½λœ λ³€μˆ˜λŠ” 항상 였λ₯˜μž…λ‹ˆλ‹€.

@stefanegλ₯Ό μž‘μ„±ν•œ 지 λͺ‡ 달 ν›„ μ‹€μ œλ‘œ Terraform이 JSON ν˜•μ‹μœΌλ‘œ μž‘μ„±λœ ꡬ성을 μ§€μ›ν•œλ‹€λŠ” 것을 λ°œκ²¬ν–ˆκΈ° λ•Œλ¬Έμ— 이제 Mustacheλ₯Ό μ‚¬μš©ν•˜λŠ” λŒ€μ‹  이것을 μ‚¬μš©ν•©λ‹ˆλ‹€. 이것은 훨씬 더 μ’‹κ³  ν”„λ‘œκ·Έλž˜λ°μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. 이제 이에 λŒ€ν•œ Mustache μ‚¬μš©μ΄ 더 이상 μ‚¬μš©λ˜μ§€ μ•ŠμœΌλ©° 배포 νŒŒμ΄ν”„λΌμΈμ˜ λ‹€μŒ κ°œμ •νŒμ—μ„œ 제거될 κ²ƒμž…λ‹ˆλ‹€.

Kubernetes 배포 λ¬Έμ„œλ₯Ό μ‚΄νŽ΄λ³΄λ©΄ 이것이 YAML νŒŒμΌμž„μ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—λŠ” YAML을 읽고 μ“Έ 수 μžˆλŠ” λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžˆμœΌλ―€λ‘œ λŒ€μ‹  이 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. λ‚΄ μ‹€ν—˜μ—μ„œ λ‚˜λŠ” 기계가 읽을 수 μžˆλŠ” ν˜•μ‹μ„ μ‘°μž‘ν•˜λ €κ³  ν•  λ•Œ 거의 항상 Mustache보닀 더 λ‚˜μ€ 선택이 μžˆλ‹€λŠ” 것을 λ°°μ› μŠ΅λ‹ˆλ‹€.

μ°Έκ³ : λ‚˜λŠ” 더 이상 Mustacheλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ§€λ§Œ 이것이 μœ νš¨ν•œ κΈ°λŠ₯ μš”μ²­μ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€.

해결책은 λ™μΌν•œ ꡬ문을 μ§€μ›ν•˜κ³  이 μ‚¬μš© 사둀에 μ •ν™•νžˆ ν•„μš”ν•œ μ—„κ²©ν•œ μ˜΅μ…˜λ„ μžˆλŠ” ν•Έλ“€λ°”λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

@steverukuts 지원해야 ν•˜λŠ” 미리 κ²°μ •λœ μ‘°μž‘μ΄ μžˆλŠ” 경우, 특히 일뢀 슀마트 κΈ°λŠ₯이 λ‚΄μž₯λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜λŠ” 경우 기계 νŒλ… κ°€λŠ₯ ν˜•μ‹μ„ μ‘°μž‘ν•˜λŠ” 것이 μ˜³μŠ΅λ‹ˆλ‹€. κ°œλ°©ν˜• ꡬ성 λ„κ΅¬μ˜ 경우 λ„ˆλ¬΄ 빨리 μœ μ—°μ„±μ΄ λ–¨μ–΄μ§€λ―€λ‘œ ν…œν”Œλ¦Ώμ΄ ν•„μš”ν•©λ‹ˆλ‹€. μž„μ˜μ˜ μœ„μΉ˜μ— μž„μ˜μ˜ κ°’ μ‚½μž…μ„ μ§€μ›ν•˜λŠ” 도ꡬλ₯Ό μž‘μ„±ν•΄ λ³΄μ‹­μ‹œμ˜€. 그러면... 곧 ν…œν”Œλ¦Ώ 엔진을 κ°–κ²Œ λ©λ‹ˆλ‹€.

직μž₯μ—μ„œ μš°λ¦¬λŠ” μ§€λ‚œ λͺ‡ λ…„ λ™μ•ˆ Kubernetes λ¦¬μ†ŒμŠ€λ₯Ό κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ kontemplate 을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. 기본적으둜 ν•΄λ‹Ή ν”„λ‘œμ νŠΈμ˜ sprig 및 μ‚¬μš©μž 지정 κΈ°λŠ₯의 λͺ‡ 가지 νŽΈλ¦¬ν•œ κΈ°λŠ₯이 μžˆλŠ” go ν…œν”Œλ¦Ώ μ—”μ§„μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 킀보닀 κ°€λ²Όμš΄ μ ‘κ·Ό λ°©μ‹μœΌλ‘œ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€.

μœ„μ˜ λ…Όμ˜μ™€ κ΄€λ ¨ν•˜μ—¬; μ•Œ 수 μ—†λŠ” λ³€μˆ˜μ—μ„œλ„ ν­λ°œν•©λ‹ˆλ‹€.

해결책은 λ™μΌν•œ ꡬ문을 μ§€μ›ν•˜κ³  이 μ‚¬μš© 사둀에 μ •ν™•νžˆ ν•„μš”ν•œ μ—„κ²©ν•œ μ˜΅μ…˜λ„ μžˆλŠ” ν•Έλ“€λ°”λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

이 문제둜 인해 핸듀바도 μ‚¬μš©ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이것은 μ½§μˆ˜μ—Όμ—μ„œ μ§€μ›λ˜μ§€ μ•ŠλŠ” 것이 λ„ˆλ¬΄ λ‚˜μ©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰

κ΄€λ ¨ 문제

barbalex picture barbalex  Β·  5μ½”λ©˜νŠΈ

chlab picture chlab  Β·  11μ½”λ©˜νŠΈ

funston picture funston  Β·  7μ½”λ©˜νŠΈ

ForbesLindesay picture ForbesLindesay  Β·  14μ½”λ©˜νŠΈ

SmasherHell picture SmasherHell  Β·  18μ½”λ©˜νŠΈ