SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
울트론 개발 가이드
Version 3.0
메시지 송/수신
메시지 송/수신
● Properties
○ 연동 정보 및 이벤트 API 정보
● Template
○ Base Template
■ HTTP 통신을 위한 기본 Template
○ EventTemplate
■ TeamUp Event API를 담당
○ Oauth2Template
■ TeamUp Oauth2 연동을 담당
○ EdgeTemplate
■ TeamUp 메시지 송/수신 등 행위 담당
● TokenManager
○ Oauth2Template로부터 갱신된 Token 정보를
저장 및 반환
● Message Service
○ Edge Template를 사용하는 서비스
메시지 송/수신
● Event
○ TeamUpEventSensor
■ TeamUP API로부터 수신된 이벤트를
Queue에 담는 역할
○ EventQueue
■ TeamUp Event Queue
○ TaskRunner
■ 일정 시간을 주기로 EventQueue에 쌓인
하나의 이벤트를 하나의 Thread로
실행시킴.
● DispatcherBrain
○ Event를 구현부로 Dispatch하며, 구현부에서
작성된 결과를 역할(Message, Feed, Emoticon 등)
에 맞도록 TeamUp API에 전송
메시지 송/수신
핵심 구조
BASE
● BrainRequest
○ DispatcherBrain에서는 TeamUp으로부터 받은
정보를 BrainRequest로 가공하여 구현체로 전송
● BrainFacotry
○ Annotaion 기반으로 구현체를 저장
○ DisPatcherBrain은 BrainFactory로부터 구현체를
꺼내 Dispatch
● BaseBrain
○ 기능목록,이모티콘 등 기본 기초 기능을
구현해놓은 구현체
● KnowledgeBrain
○ 학습 기능을 구현해놓은 구현체
BrainFactory
BrainFactory는 @Brain, @BrainCell 어노테이션을 Reflection 탐색하여 구현체를 Map에 저장
@Brain ● Class에 선언 가능
● 해당 Class가 구현체 기능들을 모아놓은
Class임을 선언
● Spring의 @Controller와 비슷
● Request Type으로 COMMON과 API를
갖을 수 있음
○ COMMON : 코드 내에 직접 기능을
구현하는 구현체
○ API : 외부 API를 통해 기능을
수신하는 구현체
BrainFactory
BrainFactory는 @Brain, @BrainCell 어노테이션을 Reflection 탐색하여 구현체를 Map에 저장
@BrainCell
● Method에 선언 가능
● Bot 하나의 명령어에 대한 구현체
● Key
○ 명령어
● explain
○ 기능에 대한 설명
● example
○ 기능 실행 예시
● type으로 MESSAGE, FEED, EMOTICON을
갖을 수 있음
○ MESSAGE
■ 팀업 메시지
○ FEED
■ 팀업 피드
○ EMOTICON
■ 이모티콘
● min(AOP 사용)
○ 명령어 외 최소 파라미터 갯수(공백 spilit)
개발하기
Example - Common
Example - API (1) ApiRequest
● API의 구현체 데이터를 미리 정의해 놓아야 함
● 데이터는 요청하기 위한 데이터와 요청해서
받아온 데이터의 반환 Type을 정의해놓을 수
있음
○ 전체 구조를 맞추기 위한 방법
Example - API (2) Api Brain
Example - API (2) Api Brain
현재 울트론 구조

Contenu connexe

Similaire à 울트론 개발 가이드 V3.0

구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발LGU+
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning CompilerTae Young Lee
 
20140122 techdays mini 앱 개발 세미나(3) - 센서활용 앱 개발
20140122 techdays mini  앱 개발 세미나(3) - 센서활용 앱 개발20140122 techdays mini  앱 개발 세미나(3) - 센서활용 앱 개발
20140122 techdays mini 앱 개발 세미나(3) - 센서활용 앱 개발영욱 김
 
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[E6]2012. netty internals
[E6]2012. netty internals[E6]2012. netty internals
[E6]2012. netty internalsNAVER D2
 
2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain전 민규
 
REST API Development with Spring
REST API Development with SpringREST API Development with Spring
REST API Development with SpringKeesun Baik
 
Angular 2 rc5 조사
Angular 2 rc5 조사Angular 2 rc5 조사
Angular 2 rc5 조사Rjs Ryu
 
Klaytn Developer Meetup_20191022
Klaytn Developer Meetup_20191022Klaytn Developer Meetup_20191022
Klaytn Developer Meetup_20191022Klaytn
 
Tcp ip & io model
Tcp ip & io modelTcp ip & io model
Tcp ip & io modelNam Hyeonuk
 
Tizen main loop 이해
Tizen main loop 이해Tizen main loop 이해
Tizen main loop 이해Hermet Park
 
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...Jemin Huh
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기흥배 최
 
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)AWSKRUG - AWS한국사용자모임
 
Flipper 불완전 정복
Flipper 불완전 정복Flipper 불완전 정복
Flipper 불완전 정복Sewon Ann
 

Similaire à 울트론 개발 가이드 V3.0 (20)

구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발 구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
구글 기술을 이용한 모바일 클라우드 애플리케이션 개발
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning Compiler
 
20140122 techdays mini 앱 개발 세미나(3) - 센서활용 앱 개발
20140122 techdays mini  앱 개발 세미나(3) - 센서활용 앱 개발20140122 techdays mini  앱 개발 세미나(3) - 센서활용 앱 개발
20140122 techdays mini 앱 개발 세미나(3) - 센서활용 앱 개발
 
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
(C#,네트워크강좌)간단한 TCP 클라이언트/서버 구현, 멀티쓰레드 기반 에코우 클라이언트/서버_C추천#/WPF/자마린실무교육학원
 
Ddd start 10장
Ddd start 10장Ddd start 10장
Ddd start 10장
 
[E6]2012. netty internals
[E6]2012. netty internals[E6]2012. netty internals
[E6]2012. netty internals
 
2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain2. klaytn developer meetup #2 univ chain
2. klaytn developer meetup #2 univ chain
 
REST API Development with Spring
REST API Development with SpringREST API Development with Spring
REST API Development with Spring
 
Angular 2 rc5 조사
Angular 2 rc5 조사Angular 2 rc5 조사
Angular 2 rc5 조사
 
Klaytn Developer Meetup_20191022
Klaytn Developer Meetup_20191022Klaytn Developer Meetup_20191022
Klaytn Developer Meetup_20191022
 
Tcp ip & io model
Tcp ip & io modelTcp ip & io model
Tcp ip & io model
 
Portfolio
PortfolioPortfolio
Portfolio
 
Tizen main loop 이해
Tizen main loop 이해Tizen main loop 이해
Tizen main loop 이해
 
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
서비스 모니터링 구현 사례 공유 - Realtime log monitoring platform-PMon을 ...
 
Akka actor model
Akka actor modelAkka actor model
Akka actor model
 
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
KGC 2016 오픈소스 네트워크 엔진 Super socket 사용하기
 
Nodejs_chapter3
Nodejs_chapter3Nodejs_chapter3
Nodejs_chapter3
 
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
 
System+os study 3
System+os study 3System+os study 3
System+os study 3
 
Flipper 불완전 정복
Flipper 불완전 정복Flipper 불완전 정복
Flipper 불완전 정복
 

울트론 개발 가이드 V3.0

  • 3. 메시지 송/수신 ● Properties ○ 연동 정보 및 이벤트 API 정보
  • 4. ● Template ○ Base Template ■ HTTP 통신을 위한 기본 Template ○ EventTemplate ■ TeamUp Event API를 담당 ○ Oauth2Template ■ TeamUp Oauth2 연동을 담당 ○ EdgeTemplate ■ TeamUp 메시지 송/수신 등 행위 담당 ● TokenManager ○ Oauth2Template로부터 갱신된 Token 정보를 저장 및 반환 ● Message Service ○ Edge Template를 사용하는 서비스 메시지 송/수신
  • 5. ● Event ○ TeamUpEventSensor ■ TeamUP API로부터 수신된 이벤트를 Queue에 담는 역할 ○ EventQueue ■ TeamUp Event Queue ○ TaskRunner ■ 일정 시간을 주기로 EventQueue에 쌓인 하나의 이벤트를 하나의 Thread로 실행시킴. ● DispatcherBrain ○ Event를 구현부로 Dispatch하며, 구현부에서 작성된 결과를 역할(Message, Feed, Emoticon 등) 에 맞도록 TeamUp API에 전송 메시지 송/수신
  • 7. BASE ● BrainRequest ○ DispatcherBrain에서는 TeamUp으로부터 받은 정보를 BrainRequest로 가공하여 구현체로 전송 ● BrainFacotry ○ Annotaion 기반으로 구현체를 저장 ○ DisPatcherBrain은 BrainFactory로부터 구현체를 꺼내 Dispatch ● BaseBrain ○ 기능목록,이모티콘 등 기본 기초 기능을 구현해놓은 구현체 ● KnowledgeBrain ○ 학습 기능을 구현해놓은 구현체
  • 8. BrainFactory BrainFactory는 @Brain, @BrainCell 어노테이션을 Reflection 탐색하여 구현체를 Map에 저장 @Brain ● Class에 선언 가능 ● 해당 Class가 구현체 기능들을 모아놓은 Class임을 선언 ● Spring의 @Controller와 비슷 ● Request Type으로 COMMON과 API를 갖을 수 있음 ○ COMMON : 코드 내에 직접 기능을 구현하는 구현체 ○ API : 외부 API를 통해 기능을 수신하는 구현체
  • 9. BrainFactory BrainFactory는 @Brain, @BrainCell 어노테이션을 Reflection 탐색하여 구현체를 Map에 저장 @BrainCell ● Method에 선언 가능 ● Bot 하나의 명령어에 대한 구현체 ● Key ○ 명령어 ● explain ○ 기능에 대한 설명 ● example ○ 기능 실행 예시 ● type으로 MESSAGE, FEED, EMOTICON을 갖을 수 있음 ○ MESSAGE ■ 팀업 메시지 ○ FEED ■ 팀업 피드 ○ EMOTICON ■ 이모티콘 ● min(AOP 사용) ○ 명령어 외 최소 파라미터 갯수(공백 spilit)
  • 12. Example - API (1) ApiRequest ● API의 구현체 데이터를 미리 정의해 놓아야 함 ● 데이터는 요청하기 위한 데이터와 요청해서 받아온 데이터의 반환 Type을 정의해놓을 수 있음 ○ 전체 구조를 맞추기 위한 방법
  • 13. Example - API (2) Api Brain
  • 14. Example - API (2) Api Brain