2-3 Expression Language

Using Expression Language

playground.restaurant์—์„œ ์‚ฌ์šฉ๋œ Expression Language์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์„ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ์œ„ ์ฝ”๋“œ์˜ ๋น„์›Œ์ ธ ์žˆ๋Š” value์™€ template ๋ถ€๋ถ„์„ ์ฑ„์›Œ๋ณด์„ธ์š”.

slot1์˜ value์—๋Š” ์Œ์‹์ ์˜ ์ด๋ฆ„์„, slot2์˜ value์—๋Š” ์Œ์‹์ ์˜ ์ฃผ์†Œ๋ฅผ ๊ทธ๋ฆฌ๊ณ  image-url์˜ template ๋ถ€๋ถ„์—๋Š” ์ด๋ฏธ์ง€์˜ ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด์„œ ์บก์А์„ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

์œ„์˜ Restaurant ๊ตฌ์กฐ์ฒด์—๋Š” ์Œ์‹์ ์˜ ์ด๋ฆ„์ธ name, ์ฃผ์†Œ์ธ location ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ์ง€์˜ ์ฃผ์†Œ์ธ url์ด ๋‹ด๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๋ถ€ํ„ฐ Developer Center์˜ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด์„œ ์ •๋‹ต์„ ์ฐพ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

Bixby์˜ Expression Language(EL)๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์บก์А์˜ concept, action, layout ๊ทธ๋ฆฌ๊ณ  dialog๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Expression Language๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. (layout ์ด์™ธ์— concept, action ๊ทธ๋ฆฌ๊ณ  dialog ํŒŒ์ผ ๋“ฑ์—์„œ๋„ Expression Language๋ฅผ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

layout {  
    mode (Summary)  
    match: Recipe (this)  
    
    content {    
        section {      
            title {        
                template ("#{value(this.name)}")      
            }      
            content {        
                if (exists(this.totalTime)) {          
                    single-line {            
                        text {              
                            value ("Total Time: #{value(this.totalTime)} minutes")            
                        }          
                    }        
                }        
                if (exists(recipe.servings)) {          
                    single-line {            
                        text {              
                            value ("Servings: #{value(servings)}")            
                        }          
                    }        
                }      
            }    
        }  
    }
}
  • ์œ„ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด match๋Š” Recipe์˜ ๊ฐ’์„ (this) ๋ณ€์ˆ˜์— ๋ฐ”์ธ๋”ฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • this ์Šฌ๋กฏ์€ . operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. (ex) this.name

  • exists(this.totalTime)ํ•จ์ˆ˜๋Š” this.totalTime์— ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ match ํŒจํ„ด์ด Recipe(this)๊ฐ€ ์•„๋‹ˆ๋ผ Recipe (r)์ด์˜€๋‹ค๋ฉด, exists(r.totalTime) ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Expression Language๋Š” #{} ํ‘œํ˜„์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, #{value(this.totalTime)} ๋Š” this.totalTime์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ‘œํ˜„์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ€˜์ŠคํŠธ2. Bixby๋กœ ์ฃผ๋ณ€ ๋ง›์ง‘ ์ฐพ๊ธฐ

Last updated

Was this helpful?