답은 알고리즘 뿐이야!

빅스비 캡슐 개발 2 [모델링] 본문

빅스비

빅스비 캡슐 개발 2 [모델링]

skyde47 2019. 10. 11. 12:50

 빅스비 개발은 크게 4가지로 나눌 수 있습니다.

 

1. 모델링

2. 비즈니스 로직 (Code)

3. 뷰, 레이아웃

4. 트레이닝

 

우선 첫번째 모델링 부터 설명하겠습니다.

 

모델링은 Concept과 Action을 정의하는 단계입니다.

 

O Concept

Concept은 크게 Primitive와 Structure로 나눌 수 있습니다.

Primitive는 다른언어의 Integer, String, Boolean 처럼 기본적인 자료형을 말합니다.

Bixby Studio 안에서는 Integer, Decimal, Enum, Name, Text로 나뉩니다.

여기서 저는 Integer, Enum, Text만 사용해서 프로젝트 구현을 하였습니다.

Primitive의 생성은 우클릭 -> New -> Model을 선택하시면 됩니다.

저는 text형식의 Primitive를 선언 해 보겠습니다.

 

Primitive를 생성 하시면 아래와 같이 기본 형식으로 text와 description이 생깁니다.

1번 줄은 SampleText라는 Text를 선언하겠다는 것이고

2번 줄은 SampleText에 대한 설명입니다. description 안에 쌍따옴표 없이 설명을 붙이시면 됩니다.

 

 

 

 

 

 

Structure는 말그대로 구조체 즉, Primitive의 집합을 말합니다.

Structure의 생성은 Primitive와 마찬가지로 우클릭 -> New -> Model을 선택하시면 됩니다.

 

Structure은 안에 property로 Primitive를 사용합니다.

property는 구조체 안의 변수 같은 개념으로 이해하시면 됩니다.

 

 

property의 소괄호는 Primitive의 변수명이 선언될 자리이고,

type의 소괄호는 어떤 Primitive 인지 선언될 자리입니다.

저는 이러한 이유 때문에 보통 Primitive는 대문자로 선언하고, property는 소문자로 선언합니다.

min은 Optional과 Required 라는 두가지 타입이 있는데,

Optional은 이 property가 없어도 됨(필수가 아님)을 의미하고,

Required는 이 property가 필수임을 의미합니다.

Required값이 없으면 빅스비는 오류를 띄웁니다.

 

 

max는 One과 Many 라는 두가지 타입이 있는데,

One 은 이 property를 하나만 받겠다는 말이고, Many는 여러개를 받겠다는 말입니다.

Many는 하나의 결과 값에 배열로 리턴값이 들어올때 사용합니다.

 

O Action

Action은 쉽게 말해서 JavaScript로 구현할 로직을 Bixby 형식에 맞게 input값과 output값을 선언 하는 부분입니다.

Action의 생성도 마찬가지로 우클릭 -> New -> Model을 선택하시면 됩니다.

 

Action은 type, input, output에 대한 정의가 들어갑니다.

type은 Calculation, Search 등등이 있으며 그 액션의 역할을 가진다고 보시면 됩니다.

계산 같은 경우에는 Calculation, DB 검색 같은 경우에는  Search 이런식으로 쓰시면 됩니다.

input은 collet안에 선언 되는데, 여러개가 들어갈 수 있습니다. 

input도 property와 똑같이 선언해주시면 되고,

output은 그냥 선언해주시면 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

Action은 여기서 끝이 아니라 endpoint라는 것을 설정 해주어야합니다.

endpoint는 Action과 JavaScript Code를 연결해 주는 역할을 합니다.

endpoint 연결은 프로젝트의 resources 폴더 안에있는 endpoints.bxb라는 파일을 통해 아래와 같이 연결해 줍니다.

 

 

 

 

 

 

action-endpoint에 Action의 이름,

accepted-inputs에 input들의 변수명,

local-endpoint에 javascript의 이름을 넣어주시면 됩니다.

endpoint를 더 설정하시고 싶으시다면

action-endpoints 중괄호 안에다가 똑같은 형식으로 선언 해주시면 됩니다.

 

 

endpoint에는 이 외에도 외부 API를 연결하는 방법도 있는데 나중에 사용하게 되면 포스팅하겠습니다.

이것으로 Modeling에 대한 대략적인 설명은 끝났습니다.

다음 포스팅에서는 비즈니스 로직 즉, JavaScript (Code)에 대해 포스팅하도록 하겠습니다.

더 자세히 알고싶으시다면 SWEA라는 사이트에 Bixby 강의가 있으니 참고하시면 될것같습니다.

https://swexpertacademy.com/main/main.do

Comments