SlideShare a Scribd company logo
1 of 64
Clova Platform

인공지능을 엮는 기술
Name : 정민영

Team : Clova Platform
Naver Corp, Clova
AGENDA
1. Clova Platform

2. Architecture & Tech Stack

3. Clova Interface Connect

4. Clova Extension Kit
1.

Clova Platform
1. Platform Overview
1. Clova Platform
•처음부터 외부 오픈을 전제로 설계

•내부/외부 사용자간 동일 코드, 동일 서버, 동일 운영

•Device 개발자를 위한 Clova Interface Connect, CIC

•Service 개발자를 위한 Clova Extension Kit, CEK
1. Clova Platform
Clova Interface Connect
•하드웨어 개발자가 제품에 Clova Interface 연결 가능

•Public API 및 SDK (Java/Android/C++) 제공

•음성, Vision(예정)을 단일 인터페이스로 제공

•저전력 등의 IoT환경에도 적용 가능
1. Clova Platform
Clova Extension Kit
•Service 및 Content를 Clova에 손쉽게 연결

•간단한 설정과 REST API 연동으로 자연어 기반 서비스 개발

•Public API / SDK(예정, NodeJS/Python/Java/Ruby/..)

•Step by Step 형식의 Builder 및 온라인 테스트 환경 제공
1. Clova Platform
Open Platform
•네이버, 라인이 사용하는 Platform 그대로 공개

•Extension Marketplace

•최고 수준의 SDK / API 문서 지원

•인식, 합성, Vision 개별 API 제공
2.

Architecture & Tech Stack
2. Architecture & Tech Stack
Challenge
•요청을 받아서 분석하기 전까진 무슨 내용인지 알 수 없는 API

•Latency에 매우 민감

•하나의 요청을 처리 하기 위해 무수히 많은 서비스와 연결된다.

•요청을 받는 와중에라도 서버가 Interrupt 하거나 응답을 줘야 함
2. Architecture & Tech Stack
2. Architecture & Tech Stack
Protocol
•연결 신뢰성이 있어야 하거나, 확보할 수 있어야 하고

•Latency에 민감한 대응을 할 수 있어야 하고

•민감 정보(음성/사진)를 다루기 때문에 보안성이 우수해야 하며

•Open Platform을 지향하므로, Client 구현이 쉬워야 하는

•Protocol을 선택해야 했음
2. Architecture & Tech Stack
HTTP/2
•가장 최적의 Protocol

•Header 압축, Multiplexing등을 통한 Latency 감소

•Binary Frame based Protocol

•Single TCP Connection & Ping-Pong Mechanism

•TLS Based Security
2. Architecture & Tech Stack
HTTP/2
•HTTP/2는 한개의 Connection에 여러개의 논리적인 연결, Stream으로 구성

•순서와 방향이 섞여도 문제 없는 구성
Image from https://docs.google.com/presentation/d/1r7QXGYOLCh4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/present?slide=id.gae999cde7_0_40
2. Architecture & Tech Stack
HTTP/2
•하나의 Stream은 Header와 Data Frame으로 구성

•End Flag가 지정될때까진 몇개의 Frame 이라도 전송 가능

•한 Stream 내에서 Request -> Response 구조인건 HTTP/1.X와 동일
Image from https://docs.google.com/presentation/d/1r7QXGYOLCh4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/present?slide=id.gae999cde7_0_40
DATA FRAME
(200ms PCM)
2. Architecture & Tech Stack
HTTP/2
•여러개의 Frame으로 구성할 수 있다는 점을 이용해서 Streaming & Downsteram 활용

•음성인식의 경우 한 Frame을 200ms 단위로 구성해서 서버에서 Streaming 받아 처리
POST Request Stream: /v1/events
DATA FRAME
(200ms PCM)
DATA FRAME
(200ms PCM)
DATA FRAME
(200ms PCM)
DATA FRAME
(200ms PCM)
DATA FRAME
(200ms PCM)
DATA FRAME
(200ms PCM)
DA
(2
2. Architecture & Tech Stack
HTTP/2
•Client의 요청 중, 혹은 요청하지 않은 경우에도 서버가 먼저 응답을 줘야하는 경우

•HTTP/2에 기본으로 포함된 Push는 Client 요청 시, 요청하지 않은 내용을 함께 전달

•따라서, 응답을 종료하지 않고(End Flag) 필요시 DATA Frame을 계속 전달하는 방법 사용
HEADERS (END_FLAG)
DATA
DATA
DATA
DATA
2. Architecture & Tech Stack
HTTP/2
•하지만.. 어려운 점

•Client 구현이 다른 검토 대상 (web socket, …) 대비 미성숙

•Downstream은 curl 같은 도구로 테스트 하기 어렵다

•생각보다 HTTP/1.X와 다르지만 비슷해 보여서 개발자들의 학습 비용

•그래도 세상은 빠르게 HTTP/2로 전환 중!
2. Architecture & Tech Stack
Golang
•개발/설계 당시 언어 및 제반 환경에 대한 조사 후 Golang 선택

•회사에 기존에 쌓여있는 C/C++ 기반의 자산을 활용하기 쉽고

•검토 당시 가장 성숙한 HTTP/2 서버 구현 보유

•또한, Platform 특성상 대부분의 Workload는 I/O에서 발생
2. Architecture & Tech Stack
Golang
•Cgo는 무척 편리한 도구이고 강력하지만

•생각보다 cost가 높고, 개발 환경 구축, 빌드, 배포 등에 지연 요소

•기존 자산을 활용해 시간을 벌고, 단계적으로 Native go 구현으로 이전 중
2. Architecture & Tech Stack
Monitoring
•복잡하게 연관된 시스템에 대한 모니터링

•특정 API에 대한 성공/실패에 대한 점검 만으로는 의미가 없거나 부족함

•“알 수 없는” 시스템을 검사해야 하는, Blackbox Testing
2. Architecture & Tech Stack
Monitoring
•End To End Blackbox Testing

•“자연어 입력”과 “기대 결과”를 검사

•“자연어 입력”은 텍스트 혹은 음성

•그런데 “오늘 날씨 어때?”나 “지금 몇시야?”에 대한 “기대 결과”는?

•오늘날씨알려줘에 대해 네이버에서 검색해봤어요. 오늘날씨왜이렇게더운가요?? 남극의눈물
이녹아서그래요 내일은비가올까요 안올까요 쨍쨍할까요 날씨좋은날이태원해밀털호텔수영장에
다녀왔어요구름씨의블로그추천꾹눌르세요 더 많은 결과는 네이버 클로바 앱에서 확인해보세요.
2. Architecture & Tech Stack
Monitoring
•Test 목적의 CIC Client 개발 

•Input에 대해서 Client의 작동을 모사

•Input/Output에 대해 Python으로 DSL 작성
2. Architecture & Tech Stack
Monitoring
•Why Python? Go에 비해 문자열 조작이 편하고 DSL을 만들기 쉬웠음

•Python-Hyper

•다양한 경우와 작동에 대한 테스트

•24/365 끝없는 Regression Test, Alerting
3.

Clova Interface Connect
3. Clova Interface Connect
Interface Connect
•새로운 Human Interface 에 대한 표준 API 제공

•음성, (예정) Vision, ….

•Downstream Channel과 Event Request로 구성

•요청(Event)을 보내서 명령(Directive)을 수신
3. Clova Interface Connect
Interface Connect - Auth
•한국/일본간 인증 기반과 체계가 다름(Naver/Line)

•기술 체계도 미묘하게 다르고 법률 문제

•Platform 사용자에게 oAuth 2.0 기반의 단일 Interface를 제공하고 Backend 추상화

•각 국가별 Transparent 한 API 제공
3. Clova Interface Connect
Interface Connect - Downstream Channel
•모든 CIC Client는 반드시 1개의 Downstream Channel을 유지

•Clova Platform에서 먼저 전달하는 명령(Directive)

•HTTP/2 Multiplexing
3. Clova Interface Connect
Event
•Clova Client에서 올려 보내는 모든 요청

•요청의 내용이 아닌 요청의 종류에 대응

•음성 인식 요청, 영상 인식 요청, 재생 상태 보고, 버튼 눌림 보고, ...

•요청 ID

•Wake-Up Word 같은 각종 Interruption 요소
3. Clova Interface Connect
•모든 인식 요청은 요청 발생 시점에 ID를 Client
에서 생성

•서버는 해당 인식 요청에 대한 모든 Directive
에 요청 ID를 Tag

•만약 Client가 마지막에 가지고 있던 요청 ID와
응답의 요청 ID가 다르면 해당 요청 무시
3. Clova Interface Connect
Directive
•Client의 Event에 대응하여 Platform에서 지시하는 명령

•TTS 재생, 음악 재생, 화면 표시, ...

•Client는 일종의 Execution Engine으로 작동

•Client Queue를 규정
3. Clova Interface Connect
Directive - 표준화
•‘작동’의 표준적인 지시에 대한 문제

•Software/Hardware적 환경이 모든 Client마다 다름

•화면 유무, 해상도 차이, 음악 재생 능력 차이 등

•Directive는 특정 표현을 규정하는게 아닌 의미를 규정
3. Clova Interface Connect
Directive - Template
•디바이스의 물리적 특성은 모두 다르고 강제 불가

•고 수준의 Markup Langauge는 구현 부담이 큼

•표현 대신 의미를 기술하는 Template 선택

•Background, Image, MainText, SubText, RefText
3. Clova Interface Connect
Context & Event Driven
•“멈처줘” - Ambiguity 문제

•Client는 Event에 항상 자신의 “현재 상태 정보”를 전달

•Platform 에서는 상태 정보를 참고하여 Ambiguity 처리

•알람 상태, 음악 재생 상태, 음소거 상태 등
3. Clova Interface Connect
Context & Event Driven
•Client가 Directive를 수행하리란 보장이 없거나, 언제 수행할 지 알수 없음

•따라서, 지시 -> Callback Event -> 지시 -> Callback Event … 의 반복 구성

•주로 Directive의 수행 성공/실패를 전달 받음

•혹은 Timeout과 결합하여 Action 수행 실패 자체를 파악
3. Clova Interface Connect
Intent
“Clova, 아이유 노래 틀어줘”
Music.Play
•자연어, 행동등을 {Namespace}.{Name} 의 형태로 표현 

•표현이 다르지만 같은 (틀어줘, 틀어, 들려줘, ...)의미는 같
은 Intent로 표현

•Intent 마다 개별 Parameter(Slot)를 가질 수 있음
Slot: Artist
3. Clova Interface Connect
Intent Routing
•Platform은 Intent를 기준으로 실제 요청을 처리할 서비스를 선택

•Intent에 대한 입력과 출력 포맷을 표준화
Music.Play
Naver Music
Music Service
Radio Service
Intent
Router
3. Clova Interface Connect
Backward Compatibility
•Embedded 환경에 많이 배포되는 특성상 하위 호환성이 무척 중요

•Text 기반의 Protocol, Semantic Versioning을 통한 Version 협상

•Field는 항상 추가만 수행, 적정 시점에서 Interface 분리

•Client 는 Unknown Field/Directive는 정책에 따라 무시 대응 (Silently Ignore)
4.

Clova Extension Kit
4. Clova Extension Kit
Interaction Model
•자연어를 어떻게 이해하고 분석할지 정의

•명령 의도별 (Intent) 예시 문장과 변수 (Slot) 태깅
“Clova, Dash에게 앞으로 가라 해”
Dash.Move
{Direction: Forward}
Intent
Slots
4. Clova Extension Kit
Interaction Model
•“앞으로 가라 해”

•“앞으로 이동”

•“전진”

•“직진 시켜”
Intent: Dash.MoveForward
4. Clova Extension Kit
Interaction Model
•“앞으로 가라 해”

•“앞으로 이동”

•“전진”

•“직진 시켜”
Intent: Dash.MoveForward
•“{Direction} 가라 해”

•“{Direction} 이동”

•“{Direction}”

•“{Direction} 시켜”
Intent: Dash.Move

Slot: {Direction, Forward|Backward|…}
4. Clova Extension Kit
Interaction Model
•통계 기반 언어 분석

•(예정) Multi turn 지원

•주요 기본 표현을 위한 Builtin Intent 지원

•화폐, 주소 같은 기본적인 Slot 사전 지원
4. Clova Extension Kit
Request Model
•모든 요청은 JSON Request & Response

•(예정) HTTPS Required

•사용자, 기기에 대한 정보 제공

•사용자와의 대화에 따른 생명주기

•Session 제공
4. Clova Extension Kit
Request Model - Context
•사용자, 기기에 대한 정보

•사용자 식별자, 기기 식별자

•기기가 지원하는 기능 (음악 재생 가능 여부 등)

•기기의 상태, ex) 볼륨 크기, 음소거 여부 등
4. Clova Extension Kit
Request Model - Lifecycle
•Extension 은 실행되어, 요청을 받고, 종료되는 생명주기를 가짐

•“Clova, Dash 열어줘” -> “Clova, Dash 종료”

•Extension 스스로도 종료 여부를 결정할 수 있음

•한 생명 주기 내에서 Clova Platform에 정보를 저장할 수 있는 Session 제공
Launch
Intent
End
4. Clova Extension Kit
Request Model - Event Request
•기본적으로 Extension은 사용자의 명시적인 실행이 있는 경우에만 호출 됨

•단, 사용자가 명령하지 않았어도 Extension이 호출되는 경우가 있음

•Ex) “음악이 재생됨” / “음악이 정지됨”
4. Clova Extension Kit
Response Model
•다양한 환경의 기기에 응답을 제공

•단순 응답외에 행동을 제어해야 하는 경우

•좀 더 복잡한 처리를 위한, 추가 입력 요청
4. Clova Extension Kit
Response Model - TTS, Template
•Extension은 음성 안내를 위한 “답변” 문구를 제공

•음성 안내는 간단한 상태와, 자세한 상태 두가지로 제공 가능

•음성외 10여 종의 Template 제공

•CIC Device들은, 각 Device의 환경에 따라 Template 해석 및 처리

•Template은 표현 형태가 아닌 데이터를 기술
4. Clova Extension Kit
Response Model - Directive Model
•요청한 CIC Device의 작동을 제어

•ex) AudioPlayer.Play

•모든 Device가 지정한 Directive를 수행을 보장하지 않음

•Extension은 Device에 해당 작동을 요청하고, Device는 그 작동의 수행 여부를 응답
4. Clova Extension Kit
Response Model - Multi Turn
•Extension이 추가적인 입력을 원할 경우

•ex) “내일 몇시에 알려 드릴까요?”

•Extension이 종료를 희망하지 않을 경우 CIC는 무조건 추가 입력을 시도

•CEK Session을 통해서 대화 상태 관리
4. Clova Extension Kit
Builder
•웹 기반의 Extension 관리 및 개발/테스트 도구

•호출어, 연동 정보(Extension 서버 주소), 언어 모델, Market 정보 등 입력

•Interaction Model 편집 및 테스트 도구

•호출어 등에 대한 리뷰 진행
4. Clova Extension Kit
Builder
4. Clova Extension Kit
Builder
4. Clova Extension Kit
Builder
4. Clova Extension Kit
Builder
4. Clova Extension Kit
Builder
4. Clova Extension Kit
Builder
Dash Robot
Extension Demo
4. Clova Extension Kit
Dash Extension
FRIENDS CIC
Dash robot

extension
server
Dash robot
control

APP
Dash robot
intent: “moveForward”

slots: [{

name: “speed”,

value: “fast”

}]
“클로바, 대시 앞으로 빠르게 전진”
{

“command”: “move”,

“params": {

“speed”: “fast”,

“direction”: “forward”

}

}
COMMAND: MOVE

PARAMS:

DIRECTION: FORWARD

SPEED: FAST
4. Clova Extension Kit
Dash Extension
4. Clova Extension Kit
Dash Extension
Q & A
Thank you

More Related Content

What's hot

Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Youngtaek Oh
 
디지털 트윈(Digital Twin) - 도시와 공간정보 관점에서
디지털 트윈(Digital Twin) - 도시와 공간정보 관점에서디지털 트윈(Digital Twin) - 도시와 공간정보 관점에서
디지털 트윈(Digital Twin) - 도시와 공간정보 관점에서SANGHEE SHIN
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향 애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향 Young-Ho Cho
 
도메인 주도 설계의 본질
도메인 주도 설계의 본질도메인 주도 설계의 본질
도메인 주도 설계의 본질Young-Ho Cho
 
트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기Yan So
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)SangIn Choung
 
Oracle Cloud PaaS & IaaS:2020年3月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2020年3月度サービス情報アップデートOracle Cloud PaaS & IaaS:2020年3月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2020年3月度サービス情報アップデートオラクルエンジニア通信
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and GraphicsAndreas Jakl
 
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기CONNECT FOUNDATION
 
디지털 트윈:현실 세계의 미러링, 그 가능성과 한계
디지털 트윈:현실 세계의 미러링, 그 가능성과 한계디지털 트윈:현실 세계의 미러링, 그 가능성과 한계
디지털 트윈:현실 세계의 미러링, 그 가능성과 한계SANGHEE SHIN
 
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...Tae-Seong Park
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
개인화 추천은 어디로 가고 있는가?
개인화 추천은 어디로 가고 있는가?개인화 추천은 어디로 가고 있는가?
개인화 추천은 어디로 가고 있는가?choi kyumin
 
스프링 부트와 로깅
스프링 부트와 로깅스프링 부트와 로깅
스프링 부트와 로깅Keesun Baik
 
디지털 트윈 기술과 활용 사례 - 공간정보를 중심으로
디지털 트윈 기술과 활용 사례 - 공간정보를 중심으로 디지털 트윈 기술과 활용 사례 - 공간정보를 중심으로
디지털 트윈 기술과 활용 사례 - 공간정보를 중심으로 SANGHEE SHIN
 
적당한 스터디 발표자료 만들기
적당한 스터디 발표자료 만들기적당한 스터디 발표자료 만들기
적당한 스터디 발표자료 만들기종빈 오
 

What's hot (20)

Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템Python과 Git으로 만드는 모바일 게임 패치 시스템
Python과 Git으로 만드는 모바일 게임 패치 시스템
 
디지털 트윈(Digital Twin) - 도시와 공간정보 관점에서
디지털 트윈(Digital Twin) - 도시와 공간정보 관점에서디지털 트윈(Digital Twin) - 도시와 공간정보 관점에서
디지털 트윈(Digital Twin) - 도시와 공간정보 관점에서
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향 애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향
 
도메인 주도 설계의 본질
도메인 주도 설계의 본질도메인 주도 설계의 본질
도메인 주도 설계의 본질
 
트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)
 
Oracle Cloud PaaS & IaaS:2020年3月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2020年3月度サービス情報アップデートOracle Cloud PaaS & IaaS:2020年3月度サービス情報アップデート
Oracle Cloud PaaS & IaaS:2020年3月度サービス情報アップデート
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics
 
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
[부스트캠프 Tech Talk] 진명훈_datasets로 협업하기
 
디지털 트윈:현실 세계의 미러링, 그 가능성과 한계
디지털 트윈:현실 세계의 미러링, 그 가능성과 한계디지털 트윈:현실 세계의 미러링, 그 가능성과 한계
디지털 트윈:현실 세계의 미러링, 그 가능성과 한계
 
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
[AWSKRUG] 혼자서 커뮤니티 귀동냥하며 만든 Next.js & Amplify & serverless framework 서버리스 웹 플...
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
개인화 추천은 어디로 가고 있는가?
개인화 추천은 어디로 가고 있는가?개인화 추천은 어디로 가고 있는가?
개인화 추천은 어디로 가고 있는가?
 
(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code(ARC307) Infrastructure as Code
(ARC307) Infrastructure as Code
 
스프링 부트와 로깅
스프링 부트와 로깅스프링 부트와 로깅
스프링 부트와 로깅
 
디지털 트윈 기술과 활용 사례 - 공간정보를 중심으로
디지털 트윈 기술과 활용 사례 - 공간정보를 중심으로 디지털 트윈 기술과 활용 사례 - 공간정보를 중심으로
디지털 트윈 기술과 활용 사례 - 공간정보를 중심으로
 
적당한 스터디 발표자료 만들기
적당한 스터디 발표자료 만들기적당한 스터디 발표자료 만들기
적당한 스터디 발표자료 만들기
 

Viewers also liked

what is_tabs_share
what is_tabs_sharewhat is_tabs_share
what is_tabs_shareNAVER D2
 
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까NAVER D2
 
[124]자율주행과 기계학습
[124]자율주행과 기계학습[124]자율주행과 기계학습
[124]자율주행과 기계학습NAVER D2
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라NAVER D2
 
밑바닥부터시작하는360뷰어
밑바닥부터시작하는360뷰어밑바닥부터시작하는360뷰어
밑바닥부터시작하는360뷰어NAVER D2
 
[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래NAVER D2
 
[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자NAVER D2
 
[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동NAVER D2
 
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 [143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 NAVER D2
 
[141]네이버랩스의 로보틱스 연구 소개
[141]네이버랩스의 로보틱스 연구 소개[141]네이버랩스의 로보틱스 연구 소개
[141]네이버랩스의 로보틱스 연구 소개NAVER D2
 
웨일 보안 이야기
웨일 보안 이야기웨일 보안 이야기
웨일 보안 이야기NAVER D2
 
[142] 생체 이해에 기반한 로봇 – 고성능 로봇에게 인간의 유연함과 안전성 부여하기
[142] 생체 이해에 기반한 로봇 – 고성능 로봇에게 인간의 유연함과 안전성 부여하기[142] 생체 이해에 기반한 로봇 – 고성능 로봇에게 인간의 유연함과 안전성 부여하기
[142] 생체 이해에 기반한 로봇 – 고성능 로봇에게 인간의 유연함과 안전성 부여하기NAVER D2
 
[113]how can realm_make_efficient_mobile_database
[113]how can realm_make_efficient_mobile_database[113]how can realm_make_efficient_mobile_database
[113]how can realm_make_efficient_mobile_databaseNAVER D2
 
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기NAVER D2
 
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.NAVER D2
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화NAVER D2
 
[115]14일만에 깃헙 스타 1,000개 받은 차트 오픈소스 개발기
[115]14일만에 깃헙 스타 1,000개 받은 차트 오픈소스 개발기[115]14일만에 깃헙 스타 1,000개 받은 차트 오픈소스 개발기
[115]14일만에 깃헙 스타 1,000개 받은 차트 오픈소스 개발기NAVER D2
 
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색NAVER D2
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술NAVER D2
 
[246]reasoning, attention and memory toward differentiable reasoning machines
[246]reasoning, attention and memory   toward differentiable reasoning machines[246]reasoning, attention and memory   toward differentiable reasoning machines
[246]reasoning, attention and memory toward differentiable reasoning machinesNAVER D2
 

Viewers also liked (20)

what is_tabs_share
what is_tabs_sharewhat is_tabs_share
what is_tabs_share
 
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
 
[124]자율주행과 기계학습
[124]자율주행과 기계학습[124]자율주행과 기계학습
[124]자율주행과 기계학습
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
 
밑바닥부터시작하는360뷰어
밑바닥부터시작하는360뷰어밑바닥부터시작하는360뷰어
밑바닥부터시작하는360뷰어
 
[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래
 
[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자
 
[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동[111]open, share, enjoy 네이버의 오픈소스 활동
[111]open, share, enjoy 네이버의 오픈소스 활동
 
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 [143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
 
[141]네이버랩스의 로보틱스 연구 소개
[141]네이버랩스의 로보틱스 연구 소개[141]네이버랩스의 로보틱스 연구 소개
[141]네이버랩스의 로보틱스 연구 소개
 
웨일 보안 이야기
웨일 보안 이야기웨일 보안 이야기
웨일 보안 이야기
 
[142] 생체 이해에 기반한 로봇 – 고성능 로봇에게 인간의 유연함과 안전성 부여하기
[142] 생체 이해에 기반한 로봇 – 고성능 로봇에게 인간의 유연함과 안전성 부여하기[142] 생체 이해에 기반한 로봇 – 고성능 로봇에게 인간의 유연함과 안전성 부여하기
[142] 생체 이해에 기반한 로봇 – 고성능 로봇에게 인간의 유연함과 안전성 부여하기
 
[113]how can realm_make_efficient_mobile_database
[113]how can realm_make_efficient_mobile_database[113]how can realm_make_efficient_mobile_database
[113]how can realm_make_efficient_mobile_database
 
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
[125] 머신러닝으로 쏟아지는 유저 cs 답변하기
 
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
[135] 오픈소스 데이터베이스, 은행 서비스에 첫발을 내밀다.
 
웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화웨일브라우저 성능 및 메모리 최적화
웨일브라우저 성능 및 메모리 최적화
 
[115]14일만에 깃헙 스타 1,000개 받은 차트 오픈소스 개발기
[115]14일만에 깃헙 스타 1,000개 받은 차트 오픈소스 개발기[115]14일만에 깃헙 스타 1,000개 받은 차트 오픈소스 개발기
[115]14일만에 깃헙 스타 1,000개 받은 차트 오픈소스 개발기
 
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
 
[246]reasoning, attention and memory toward differentiable reasoning machines
[246]reasoning, attention and memory   toward differentiable reasoning machines[246]reasoning, attention and memory   toward differentiable reasoning machines
[246]reasoning, attention and memory toward differentiable reasoning machines
 

Similar to [112]clova platform 인공지능을 엮는 기술

Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기Tae Young Lee
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Sung-jae Park
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료choi kyumin
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기Ted Won
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기흥배 최
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선NAVER D2
 
Private cloud network architecture (2018)
Private cloud network architecture (2018)Private cloud network architecture (2018)
Private cloud network architecture (2018)Gasida Seo
 
Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발
Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발 Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발
Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발 Clova Platform
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기Jay Park
 
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solutionOpenStack Korea Community
 
2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)NAIM Networks, Inc.
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020Ji-Woong Choi
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 

Similar to [112]clova platform 인공지능을 엮는 기술 (20)

Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
Network researching
Network researchingNetwork researching
Network researching
 
Quic을 이용한 네트워크 성능 개선
 Quic을 이용한 네트워크 성능 개선 Quic을 이용한 네트워크 성능 개선
Quic을 이용한 네트워크 성능 개선
 
Private cloud network architecture (2018)
Private cloud network architecture (2018)Private cloud network architecture (2018)
Private cloud network architecture (2018)
 
Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발
Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발 Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발
Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기
 
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
 
2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

[112]clova platform 인공지능을 엮는 기술

  • 1. Clova Platform 인공지능을 엮는 기술 Name : 정민영 Team : Clova Platform Naver Corp, Clova
  • 2. AGENDA 1. Clova Platform 2. Architecture & Tech Stack 3. Clova Interface Connect 4. Clova Extension Kit
  • 5. 1. Clova Platform •처음부터 외부 오픈을 전제로 설계 •내부/외부 사용자간 동일 코드, 동일 서버, 동일 운영 •Device 개발자를 위한 Clova Interface Connect, CIC •Service 개발자를 위한 Clova Extension Kit, CEK
  • 6. 1. Clova Platform Clova Interface Connect •하드웨어 개발자가 제품에 Clova Interface 연결 가능 •Public API 및 SDK (Java/Android/C++) 제공 •음성, Vision(예정)을 단일 인터페이스로 제공 •저전력 등의 IoT환경에도 적용 가능
  • 7. 1. Clova Platform Clova Extension Kit •Service 및 Content를 Clova에 손쉽게 연결 •간단한 설정과 REST API 연동으로 자연어 기반 서비스 개발 •Public API / SDK(예정, NodeJS/Python/Java/Ruby/..) •Step by Step 형식의 Builder 및 온라인 테스트 환경 제공
  • 8. 1. Clova Platform Open Platform •네이버, 라인이 사용하는 Platform 그대로 공개 •Extension Marketplace •최고 수준의 SDK / API 문서 지원 •인식, 합성, Vision 개별 API 제공
  • 10. 2. Architecture & Tech Stack Challenge •요청을 받아서 분석하기 전까진 무슨 내용인지 알 수 없는 API •Latency에 매우 민감 •하나의 요청을 처리 하기 위해 무수히 많은 서비스와 연결된다. •요청을 받는 와중에라도 서버가 Interrupt 하거나 응답을 줘야 함
  • 11. 2. Architecture & Tech Stack
  • 12. 2. Architecture & Tech Stack Protocol •연결 신뢰성이 있어야 하거나, 확보할 수 있어야 하고 •Latency에 민감한 대응을 할 수 있어야 하고 •민감 정보(음성/사진)를 다루기 때문에 보안성이 우수해야 하며 •Open Platform을 지향하므로, Client 구현이 쉬워야 하는 •Protocol을 선택해야 했음
  • 13. 2. Architecture & Tech Stack HTTP/2 •가장 최적의 Protocol •Header 압축, Multiplexing등을 통한 Latency 감소 •Binary Frame based Protocol •Single TCP Connection & Ping-Pong Mechanism •TLS Based Security
  • 14. 2. Architecture & Tech Stack HTTP/2 •HTTP/2는 한개의 Connection에 여러개의 논리적인 연결, Stream으로 구성 •순서와 방향이 섞여도 문제 없는 구성 Image from https://docs.google.com/presentation/d/1r7QXGYOLCh4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/present?slide=id.gae999cde7_0_40
  • 15. 2. Architecture & Tech Stack HTTP/2 •하나의 Stream은 Header와 Data Frame으로 구성 •End Flag가 지정될때까진 몇개의 Frame 이라도 전송 가능 •한 Stream 내에서 Request -> Response 구조인건 HTTP/1.X와 동일 Image from https://docs.google.com/presentation/d/1r7QXGYOLCh4fcUq0jDdDwKJWNqWK1o4xMtYpKZCJYjM/present?slide=id.gae999cde7_0_40
  • 16. DATA FRAME (200ms PCM) 2. Architecture & Tech Stack HTTP/2 •여러개의 Frame으로 구성할 수 있다는 점을 이용해서 Streaming & Downsteram 활용 •음성인식의 경우 한 Frame을 200ms 단위로 구성해서 서버에서 Streaming 받아 처리 POST Request Stream: /v1/events DATA FRAME (200ms PCM) DATA FRAME (200ms PCM) DATA FRAME (200ms PCM) DATA FRAME (200ms PCM) DATA FRAME (200ms PCM) DATA FRAME (200ms PCM) DA (2
  • 17. 2. Architecture & Tech Stack HTTP/2 •Client의 요청 중, 혹은 요청하지 않은 경우에도 서버가 먼저 응답을 줘야하는 경우 •HTTP/2에 기본으로 포함된 Push는 Client 요청 시, 요청하지 않은 내용을 함께 전달 •따라서, 응답을 종료하지 않고(End Flag) 필요시 DATA Frame을 계속 전달하는 방법 사용 HEADERS (END_FLAG) DATA DATA DATA DATA
  • 18. 2. Architecture & Tech Stack HTTP/2 •하지만.. 어려운 점 •Client 구현이 다른 검토 대상 (web socket, …) 대비 미성숙 •Downstream은 curl 같은 도구로 테스트 하기 어렵다 •생각보다 HTTP/1.X와 다르지만 비슷해 보여서 개발자들의 학습 비용 •그래도 세상은 빠르게 HTTP/2로 전환 중!
  • 19. 2. Architecture & Tech Stack Golang •개발/설계 당시 언어 및 제반 환경에 대한 조사 후 Golang 선택 •회사에 기존에 쌓여있는 C/C++ 기반의 자산을 활용하기 쉽고 •검토 당시 가장 성숙한 HTTP/2 서버 구현 보유 •또한, Platform 특성상 대부분의 Workload는 I/O에서 발생
  • 20. 2. Architecture & Tech Stack Golang •Cgo는 무척 편리한 도구이고 강력하지만 •생각보다 cost가 높고, 개발 환경 구축, 빌드, 배포 등에 지연 요소 •기존 자산을 활용해 시간을 벌고, 단계적으로 Native go 구현으로 이전 중
  • 21. 2. Architecture & Tech Stack Monitoring •복잡하게 연관된 시스템에 대한 모니터링 •특정 API에 대한 성공/실패에 대한 점검 만으로는 의미가 없거나 부족함 •“알 수 없는” 시스템을 검사해야 하는, Blackbox Testing
  • 22. 2. Architecture & Tech Stack Monitoring •End To End Blackbox Testing •“자연어 입력”과 “기대 결과”를 검사 •“자연어 입력”은 텍스트 혹은 음성 •그런데 “오늘 날씨 어때?”나 “지금 몇시야?”에 대한 “기대 결과”는? •오늘날씨알려줘에 대해 네이버에서 검색해봤어요. 오늘날씨왜이렇게더운가요?? 남극의눈물 이녹아서그래요 내일은비가올까요 안올까요 쨍쨍할까요 날씨좋은날이태원해밀털호텔수영장에 다녀왔어요구름씨의블로그추천꾹눌르세요 더 많은 결과는 네이버 클로바 앱에서 확인해보세요.
  • 23. 2. Architecture & Tech Stack Monitoring •Test 목적의 CIC Client 개발 •Input에 대해서 Client의 작동을 모사 •Input/Output에 대해 Python으로 DSL 작성
  • 24. 2. Architecture & Tech Stack Monitoring •Why Python? Go에 비해 문자열 조작이 편하고 DSL을 만들기 쉬웠음 •Python-Hyper •다양한 경우와 작동에 대한 테스트 •24/365 끝없는 Regression Test, Alerting
  • 26. 3. Clova Interface Connect Interface Connect •새로운 Human Interface 에 대한 표준 API 제공 •음성, (예정) Vision, …. •Downstream Channel과 Event Request로 구성 •요청(Event)을 보내서 명령(Directive)을 수신
  • 27. 3. Clova Interface Connect Interface Connect - Auth •한국/일본간 인증 기반과 체계가 다름(Naver/Line) •기술 체계도 미묘하게 다르고 법률 문제 •Platform 사용자에게 oAuth 2.0 기반의 단일 Interface를 제공하고 Backend 추상화 •각 국가별 Transparent 한 API 제공
  • 28. 3. Clova Interface Connect Interface Connect - Downstream Channel •모든 CIC Client는 반드시 1개의 Downstream Channel을 유지 •Clova Platform에서 먼저 전달하는 명령(Directive) •HTTP/2 Multiplexing
  • 29. 3. Clova Interface Connect Event •Clova Client에서 올려 보내는 모든 요청 •요청의 내용이 아닌 요청의 종류에 대응 •음성 인식 요청, 영상 인식 요청, 재생 상태 보고, 버튼 눌림 보고, ... •요청 ID •Wake-Up Word 같은 각종 Interruption 요소
  • 30. 3. Clova Interface Connect •모든 인식 요청은 요청 발생 시점에 ID를 Client 에서 생성 •서버는 해당 인식 요청에 대한 모든 Directive 에 요청 ID를 Tag •만약 Client가 마지막에 가지고 있던 요청 ID와 응답의 요청 ID가 다르면 해당 요청 무시
  • 31. 3. Clova Interface Connect Directive •Client의 Event에 대응하여 Platform에서 지시하는 명령 •TTS 재생, 음악 재생, 화면 표시, ... •Client는 일종의 Execution Engine으로 작동 •Client Queue를 규정
  • 32. 3. Clova Interface Connect Directive - 표준화 •‘작동’의 표준적인 지시에 대한 문제 •Software/Hardware적 환경이 모든 Client마다 다름 •화면 유무, 해상도 차이, 음악 재생 능력 차이 등 •Directive는 특정 표현을 규정하는게 아닌 의미를 규정
  • 33. 3. Clova Interface Connect Directive - Template •디바이스의 물리적 특성은 모두 다르고 강제 불가 •고 수준의 Markup Langauge는 구현 부담이 큼 •표현 대신 의미를 기술하는 Template 선택 •Background, Image, MainText, SubText, RefText
  • 34. 3. Clova Interface Connect Context & Event Driven •“멈처줘” - Ambiguity 문제 •Client는 Event에 항상 자신의 “현재 상태 정보”를 전달 •Platform 에서는 상태 정보를 참고하여 Ambiguity 처리 •알람 상태, 음악 재생 상태, 음소거 상태 등
  • 35. 3. Clova Interface Connect Context & Event Driven •Client가 Directive를 수행하리란 보장이 없거나, 언제 수행할 지 알수 없음 •따라서, 지시 -> Callback Event -> 지시 -> Callback Event … 의 반복 구성 •주로 Directive의 수행 성공/실패를 전달 받음 •혹은 Timeout과 결합하여 Action 수행 실패 자체를 파악
  • 36. 3. Clova Interface Connect Intent “Clova, 아이유 노래 틀어줘” Music.Play •자연어, 행동등을 {Namespace}.{Name} 의 형태로 표현 •표현이 다르지만 같은 (틀어줘, 틀어, 들려줘, ...)의미는 같 은 Intent로 표현 •Intent 마다 개별 Parameter(Slot)를 가질 수 있음 Slot: Artist
  • 37. 3. Clova Interface Connect Intent Routing •Platform은 Intent를 기준으로 실제 요청을 처리할 서비스를 선택 •Intent에 대한 입력과 출력 포맷을 표준화 Music.Play Naver Music Music Service Radio Service Intent Router
  • 38. 3. Clova Interface Connect Backward Compatibility •Embedded 환경에 많이 배포되는 특성상 하위 호환성이 무척 중요 •Text 기반의 Protocol, Semantic Versioning을 통한 Version 협상 •Field는 항상 추가만 수행, 적정 시점에서 Interface 분리 •Client 는 Unknown Field/Directive는 정책에 따라 무시 대응 (Silently Ignore)
  • 40. 4. Clova Extension Kit Interaction Model •자연어를 어떻게 이해하고 분석할지 정의 •명령 의도별 (Intent) 예시 문장과 변수 (Slot) 태깅 “Clova, Dash에게 앞으로 가라 해” Dash.Move {Direction: Forward} Intent Slots
  • 41. 4. Clova Extension Kit Interaction Model •“앞으로 가라 해” •“앞으로 이동” •“전진” •“직진 시켜” Intent: Dash.MoveForward
  • 42. 4. Clova Extension Kit Interaction Model •“앞으로 가라 해” •“앞으로 이동” •“전진” •“직진 시켜” Intent: Dash.MoveForward •“{Direction} 가라 해” •“{Direction} 이동” •“{Direction}” •“{Direction} 시켜” Intent: Dash.Move Slot: {Direction, Forward|Backward|…}
  • 43. 4. Clova Extension Kit Interaction Model •통계 기반 언어 분석 •(예정) Multi turn 지원 •주요 기본 표현을 위한 Builtin Intent 지원 •화폐, 주소 같은 기본적인 Slot 사전 지원
  • 44. 4. Clova Extension Kit Request Model •모든 요청은 JSON Request & Response •(예정) HTTPS Required •사용자, 기기에 대한 정보 제공 •사용자와의 대화에 따른 생명주기 •Session 제공
  • 45. 4. Clova Extension Kit Request Model - Context •사용자, 기기에 대한 정보 •사용자 식별자, 기기 식별자 •기기가 지원하는 기능 (음악 재생 가능 여부 등) •기기의 상태, ex) 볼륨 크기, 음소거 여부 등
  • 46. 4. Clova Extension Kit Request Model - Lifecycle •Extension 은 실행되어, 요청을 받고, 종료되는 생명주기를 가짐 •“Clova, Dash 열어줘” -> “Clova, Dash 종료” •Extension 스스로도 종료 여부를 결정할 수 있음 •한 생명 주기 내에서 Clova Platform에 정보를 저장할 수 있는 Session 제공 Launch Intent End
  • 47. 4. Clova Extension Kit Request Model - Event Request •기본적으로 Extension은 사용자의 명시적인 실행이 있는 경우에만 호출 됨 •단, 사용자가 명령하지 않았어도 Extension이 호출되는 경우가 있음 •Ex) “음악이 재생됨” / “음악이 정지됨”
  • 48. 4. Clova Extension Kit Response Model •다양한 환경의 기기에 응답을 제공 •단순 응답외에 행동을 제어해야 하는 경우 •좀 더 복잡한 처리를 위한, 추가 입력 요청
  • 49. 4. Clova Extension Kit Response Model - TTS, Template •Extension은 음성 안내를 위한 “답변” 문구를 제공 •음성 안내는 간단한 상태와, 자세한 상태 두가지로 제공 가능 •음성외 10여 종의 Template 제공 •CIC Device들은, 각 Device의 환경에 따라 Template 해석 및 처리 •Template은 표현 형태가 아닌 데이터를 기술
  • 50. 4. Clova Extension Kit Response Model - Directive Model •요청한 CIC Device의 작동을 제어 •ex) AudioPlayer.Play •모든 Device가 지정한 Directive를 수행을 보장하지 않음 •Extension은 Device에 해당 작동을 요청하고, Device는 그 작동의 수행 여부를 응답
  • 51. 4. Clova Extension Kit Response Model - Multi Turn •Extension이 추가적인 입력을 원할 경우 •ex) “내일 몇시에 알려 드릴까요?” •Extension이 종료를 희망하지 않을 경우 CIC는 무조건 추가 입력을 시도 •CEK Session을 통해서 대화 상태 관리
  • 52. 4. Clova Extension Kit Builder •웹 기반의 Extension 관리 및 개발/테스트 도구 •호출어, 연동 정보(Extension 서버 주소), 언어 모델, Market 정보 등 입력 •Interaction Model 편집 및 테스트 도구 •호출어 등에 대한 리뷰 진행
  • 53. 4. Clova Extension Kit Builder
  • 54. 4. Clova Extension Kit Builder
  • 55. 4. Clova Extension Kit Builder
  • 56. 4. Clova Extension Kit Builder
  • 57. 4. Clova Extension Kit Builder
  • 58. 4. Clova Extension Kit Builder
  • 60. 4. Clova Extension Kit Dash Extension FRIENDS CIC Dash robot
 extension server Dash robot control
 APP Dash robot intent: “moveForward”
 slots: [{
 name: “speed”,
 value: “fast”
 }] “클로바, 대시 앞으로 빠르게 전진” {
 “command”: “move”,
 “params": {
 “speed”: “fast”,
 “direction”: “forward” } } COMMAND: MOVE
 PARAMS:
 DIRECTION: FORWARD
 SPEED: FAST
  • 61. 4. Clova Extension Kit Dash Extension
  • 62. 4. Clova Extension Kit Dash Extension
  • 63. Q & A