퀘스트2. 야구경기정보 확인하기
아래 퀘스트 질문과 단계별 가이드를 이용하여 Bixby로 프로야구팀 정보를 조회하는 Capsule을 만들어보세요 각 퀘스트의 코드들은, 어느 정도 이미 만들어져 있습니다. 하지만, 가이드에서 "==> [실습 코드에 추가해보세요]" 표시가 있는 부분의 코드는 실습코드에서 빠져있는데요. 이 부분을 실습코드에 채워서 동작하는 Capsule로 만들어 보세요.
시작
이번 퀘스트에서는, enum/symbol Type을 이용하여, Concept을 선언하는 법과, 외부 서버와 연동하는 법에 대해서 알아 보겠습니다.
*외부연동서버는 내렸습니다. ^^ 비슷한 방법으로 여러가지 다 Open API를 시험해보세요. *
Step1. Capsule 개발 기본설정
Bixby Developer Studio와 basebinfo Capsule개발은 위한 기본 코드는, CodeLabs 진행공간에 이미 준비되어 있습니다. 부담없이, Bixby Developer Studio와 Capsule 개발 방법을 체험해 보세요.
Step2. Modeling 하기
Modeling은, 정연이가 말한 내용을 통해 정확히 무슨일을 처리하고 싶어하는지 인지할 수 있도록 하는 작업입니다. 이를 위해서 먼저, 정연이가 사용할 수 있는 "발화 시나리오"들을 정리하고, 발화에서 사용한 Input Concept과 Output Concept을 정리해 보겠습니다.
발화 시나리오
Input Concept
Output
삼성 라이온즈 팀 정보 알려
라이온즈 (enum/symbol)
팀명
영문 팀명
홈 그라운드 위치
연고지
로고 이미
라이온즈 정보 알려줄
라이온즈 (enum/symbol)
팀명
영문 팀명
홈 그라운드 위치
연고지
로고 이미
Concept 생성하기
==> [실습 코드에 추가해보세요.]
자 그럼, models/concept 폴더에, Input Concept과 Output Concept을 생성하여 저장해보겠습니다. Concept은, 정연이의 말한(발화) 전체 내용 중에서, "발화 인식을 위해서, 중요하게 고려되어야 하는 값(Input Concept)"과 "발화의 결과를 리턴할 때 사용할 값(Output Concept)"으로 생각하시면 됩니다. 정연이가 "삼성 라이온즈 팀 정보 알려" 라고 말했을 때(발화), 우리는 "라이온즈"(InputTeamName) 를 중요한 명명으로 사용하고자 합니다. 그럼 Input Concept부터 먼저 선언해 봅시다. 국내에 프로야구 구단이 10개가 있습니다. 이렇게, 가능한 값들이 예상되어, 고정 집합으로 구성이 가능할 때, 또는 가능한 모든 값을 미리 나열하는 것이 더 효율적인 경우는, enum과 symbol을 사용할 수도 있습니다. 아래 영상과 링크를 참고 하세요.
동영상 가이드 : https://youtu.be/gFRYUbbT0to
Input Concept에 대한 설계는 끝났네요. 그럼 조회 결과를 알려주는 Output Concept도 만들어 보겠습니다. 이 Ouput Concept은 앞으로 만들 Action의 Output으로 사용될 예정입니다. Output Concept중에서는, Likes만 추가해보세요. 나머지 Concept들은 실습코드에 이미 생성되어 있습니다.
동영상 가이드 : https://youtu.be/A26rXhxuISU
Action 생성하기
이렇게 하여, Concept에 대한 준비는 모두 끝났네요. 생성한 Concept을 사용하여 사용자 발화를 처리할 Action도 만들어 보겠습니다. Action을 선언하는 작업은, "정연이가 한말이 어떤 목적을 가지고 어떤 명명들을 사용하여 어떤 작업을 하기를 원하는지를" Bixby가 잘 이해하도록 정의하는 작업이라고 생각하시면 됩니다. 우리는 정연이가 요청한 프로야구 정보를 조회해서, 결과를 알려주는 Action을 만들어 보겠습니다. 아래와 같이, Action을 선언해 보겠습니다.
동영상 가이드 : https://youtu.be/yrgvnzGcl8I
Step3. Javascript 개발하기
외부서버와 연동하기
==> [실습 코드에 추가해보세요.]
지금부터는 Javascript를 활용하여, "Bixby가 알아들은 말의 목적에 맞는, 실제 처리를 진행할 수 있도록 하는" 개발 작업을 진행하도록 하겠습니다. 우리는, 프로야구 정보를 제공하는 외부서버와 연동하여, 조회결과를 가져와 보겠습니다. 아래 영상과와 같이, 코드 처리를 하게 되면, Bixby가 정연이가 말한 요청을 처리하는 실제작업에 대한, 구현이 완료됩니다.
동영상 가이드 : https://youtu.be/O7jCkiGg4aY
Step4. endpoint 선언하기
endpoint 선언을 하여, Modeling한 내용 중 Action과 Javascript 부분을 서로 연결하여 보겠습니다. 먼저 resource 폴더 밑에 endpoint 파일을 만들고, 아래 영상과 같이, 작성해보겠습니다.
동영상 가이드 : https://youtu.be/0ebaGIzTQEc
Step5. Bixby Views 활용하기
코드 처리는 모두 끝났네요. 하지만, Bixby가 basebinfo capsule의 처리결과를 단말에 내려줄때 적절한 Layout을 표현하기 위해서, Bixby Views기능을 사용해보겠습니다.
동영상 가이드 : https://youtu.be/sWfgsdZEAW8
Step6. 자연어 트레이닝하기
조회 발화 입력하여 NL 트레이닝
==> [실습코드에 추가해보세요]
이제 Bixby Capsule이 정연이의 말을 잘 알아듣고 처리할 코드 준비가 완료되었습니다. 이 Capsule 코드가 잘 동작하도록 자연어 트레이닝을 진행하고, Simulator를 구동해보겠습니다. 자연어 발화를 입력한 후, 트레이닝하고 Simulator를 구동하는 방법을 알아보겠습니다.
동영상 가이드 : https://youtu.be/tPCB870HnHw
완성.
아래와 같은, Simulator 실행결과가 나왔나요?

수고하셨습니다. 이제 정연이는 Bixby basebinfo 캡슐로 삼성라이온즈 정보를 조회할 수 있게 되었습니다. CodeLabs 튜터님께 완성된 결과를 보여주세요.
Simulator 구동이 완료되면, CodeLabs 튜터에게 퀘스트 완료 Stamp를 받고, 선물도 받으세요.
Private Submission 등 Submission 방법은 CodeLabs 튜터에게 문의하세요.
추가적인 Bixby Developer Guide는 https://bixbydevelopers.com 를 참조하세요.
추가 문의사항은 support@bixbydevelopers.com으로 문의 부탁드립니다.
Last updated
Was this helpful?