> For the complete documentation index, see [llms.txt](https://bdd-codelabs.gitbook.io/bdd-codelab/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bdd-codelabs.gitbook.io/bdd-codelab/2/2-1-default-initializations.md).

# 2-1 Default Initializations

#### default-init

<div align="left"><img src="https://273918599-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lrq1jp4p9KfAreFLMyA%2F-LtS5Ea9QVMYCBM5Mjex%2F-LtS5KIBE262lhz4tydA%2Fimage.png?alt=media&amp;token=01e6425c-dc8e-4f0b-80ca-9ec562d1a4b5" alt=""></div>

playground.restaurant에서 사용된 default-init 기능에 대해 알아보도록 하겠습니다. default-init에 대한 설명을 따라가면서 위의 코드에 비워져있는 곳을 채워주시면 됩니다.

{% hint style="info" %}
goal에 들어갈 정답은 input으로 사용된 concept의 type과 일치합니다.
{% endhint %}

**지금부터 Developer Center의 예제를 통해서 정답을 찾아보도록 하겠습니다!**

아래에 보이는 action(CheckStatus)은 receipt이라는 input concept에 min(Required)를 설정하였습니다. 이것은 receipt에 무조건 값이 저장되어야 한다는 뜻입니다. 만약 receipt에 값이 들어가지 않으면, default-init으로 설정된 값이 자동으로 저장되게 됩니다.

```
action (CheckStatus) {  
    type (RefreshActivity)  
    collect {    
        input (receipt) {      
            type (Receipt)      
            min (Required)      
            default-init {        
                intent {          
                    goal: Receipt        
                }      
            }    
        }  
    }  
    output (Receipt)
}
```

위에 보이는default-init block은 새로운 intent를 정의하고 있습니다. intent 통해서 사용자의 입력이 들어오지 않으면 receipt concept에 output인 Receipt를 default로 저장하게 됩니다.&#x20;

default-init을 사용하려면 선언한 input concept에 맞는 intent를 넘겨주어야 합니다. 만약 없다면 최근에 요청했던 값이 들어가거나 값이 제공되지 않을 수 있습니다. 그렇기 때문에 intent가 return하는 값이 input concept의 type과 같은 type으로 설정되어야 합니다.

{% content-ref url="/pages/-Lrq42oy3CieeDR\_G\_Yy" %}
[퀘스트2. Bixby로 주변 맛집 찾기](/bdd-codelab/2.md)
{% endcontent-ref %}
