모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
CloudBread
클라우드 기반 무료 오픈소스 프로젝트로, 모바일 게임과 모바일 앱에 최적화된 게임 서버 엔진입니다. 모든 서비스는 마이크로소프트의 클라우드 서비스인 Azure에 최적화되어 동작하며, 안정성과 확장성을 목표로 개발 중입니다.
기능
•PaaS / DaaS 서버 엔진•PaaS, DaaS 로 손쉬운 개발 및 서비스 즉시 배포
•Real Auto Scale - PaaS
•개발/테스트/배포 = 통합 환경
•서비스 규모에 따른 앱 변경 없음
글로벌 론칭 아키텍처
•글로벌 론칭+데이터 동기화
•설계 부터 클라우드에 최적화된 아키텍처 및 프레임워크로 개발
•오픈소스 프레임워크 활용 개발
보안, 관리, 기술교육
•저장/통신에 표준 암호화 기술 적용
•기본 관리자 서비스 및 커스터마이징
•분석/관리 배치 작업 추가 제작 가능
개발자 그룹
•페이스북 사용자 그룹 : https://www.facebook.com/groups/cloudBreadProject/
지원되는 모바일 & 클라이언트환경
•iOS, Android, Windows Phone, Windows 스토어앱, Xamarin, PhoneGap, Sencha 등
•Microsoft Azure Mobile Service가 지원하는 모바일 및 다양한 클라이언트 플랫폼 지원 : http://azure.microsoft.com/ko-kr/documentation/services/mobile-services/
설치
•Wiki의 튜토리얼 설치 참조
프로젝트 설명
•모바일게임과 모바일 앱에서 사용되는 사용자의 패턴과 액션을 기록해 기능들을 제공
•클라이언트 모바일 디바이스는 게임서버로 JSON 방식의 데이터를 요청하고 서버가 해당 데이터를 처리 후 응답
•약 100여개의 비즈니스 로직이 기본제공(Wiki 참조)
•클라이언트는 마이크로소프트가 오픈소스로 직접 만들어 제공하는 라이브러리를 통해 서버로 API를 호출
실행 예제와 API 리스트는 Wiki 참조
Contribute/질문/토론
•페이스북 사용자 그룹 : https://www.facebook.com/groups/cloudBreadProject/
2021년 12월 08일(수)
l 14:00 ~ 14:20 개발 & 인프라 소개
l 14:20 ~ 14:35 개발과 형상관리 (Github Action)
l 14:35 ~ 15:00 사용 인프라 (AZURE APP Service)
l 15:00 ~ 15:20 서비스 런칭 (Deploy & Service)
l 15:20 ~ 15:30 DevOps /Closing
게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...Amazon Web Services Korea
게임을 위한 AWS의 다양한 관리형 Database 서비스
이 세션에서는 AWS에서 제공하는 다양한 형태의 관리형 DB의 특성을 공유하며, 해당 DB가 실제 어떻게 동작하는지를 소개합니다. 특히 다양한 크기에 대해 어떻게 동작하는지 살펴보며 DB의 특성에 맞는 사용 방법을 예제로 소개드리고자 합니다.
[ http://infiniflux.com/download ]
The world's fastest time series DBMS.
What is InfiniFlux?
1) InfiniFlux is a time-series database which performs real-time data processing, i.e., data are inserted at high speed, retrieved and analyzed without elapsed time.
2) InfiniFlux also compresses and stores data in real-time. Its query language and syntax complies with the SQL standard. The extended SQL syntax provides additional features such as the text search tool.
유튜브에서 방송한 자료입니다. https://www.youtube.com/watch?v=pcQeIW5v8S4
개발 이야기 유튜브 리스트는 다음과 같습니다: https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
CloudBread
클라우드 기반 무료 오픈소스 프로젝트로, 모바일 게임과 모바일 앱에 최적화된 게임 서버 엔진입니다. 모든 서비스는 마이크로소프트의 클라우드 서비스인 Azure에 최적화되어 동작하며, 안정성과 확장성을 목표로 개발 중입니다.
기능
•PaaS / DaaS 서버 엔진•PaaS, DaaS 로 손쉬운 개발 및 서비스 즉시 배포
•Real Auto Scale - PaaS
•개발/테스트/배포 = 통합 환경
•서비스 규모에 따른 앱 변경 없음
글로벌 론칭 아키텍처
•글로벌 론칭+데이터 동기화
•설계 부터 클라우드에 최적화된 아키텍처 및 프레임워크로 개발
•오픈소스 프레임워크 활용 개발
보안, 관리, 기술교육
•저장/통신에 표준 암호화 기술 적용
•기본 관리자 서비스 및 커스터마이징
•분석/관리 배치 작업 추가 제작 가능
개발자 그룹
•페이스북 사용자 그룹 : https://www.facebook.com/groups/cloudBreadProject/
지원되는 모바일 & 클라이언트환경
•iOS, Android, Windows Phone, Windows 스토어앱, Xamarin, PhoneGap, Sencha 등
•Microsoft Azure Mobile Service가 지원하는 모바일 및 다양한 클라이언트 플랫폼 지원 : http://azure.microsoft.com/ko-kr/documentation/services/mobile-services/
설치
•Wiki의 튜토리얼 설치 참조
프로젝트 설명
•모바일게임과 모바일 앱에서 사용되는 사용자의 패턴과 액션을 기록해 기능들을 제공
•클라이언트 모바일 디바이스는 게임서버로 JSON 방식의 데이터를 요청하고 서버가 해당 데이터를 처리 후 응답
•약 100여개의 비즈니스 로직이 기본제공(Wiki 참조)
•클라이언트는 마이크로소프트가 오픈소스로 직접 만들어 제공하는 라이브러리를 통해 서버로 API를 호출
실행 예제와 API 리스트는 Wiki 참조
Contribute/질문/토론
•페이스북 사용자 그룹 : https://www.facebook.com/groups/cloudBreadProject/
2021년 12월 08일(수)
l 14:00 ~ 14:20 개발 & 인프라 소개
l 14:20 ~ 14:35 개발과 형상관리 (Github Action)
l 14:35 ~ 15:00 사용 인프라 (AZURE APP Service)
l 15:00 ~ 15:20 서비스 런칭 (Deploy & Service)
l 15:20 ~ 15:30 DevOps /Closing
게임을 위한 AWS의 다양한 관리형 Database 서비스 Hands on Lab (김성수 솔루션즈 아키텍트, AWS) :: Gaming ...Amazon Web Services Korea
게임을 위한 AWS의 다양한 관리형 Database 서비스
이 세션에서는 AWS에서 제공하는 다양한 형태의 관리형 DB의 특성을 공유하며, 해당 DB가 실제 어떻게 동작하는지를 소개합니다. 특히 다양한 크기에 대해 어떻게 동작하는지 살펴보며 DB의 특성에 맞는 사용 방법을 예제로 소개드리고자 합니다.
[ http://infiniflux.com/download ]
The world's fastest time series DBMS.
What is InfiniFlux?
1) InfiniFlux is a time-series database which performs real-time data processing, i.e., data are inserted at high speed, retrieved and analyzed without elapsed time.
2) InfiniFlux also compresses and stores data in real-time. Its query language and syntax complies with the SQL standard. The extended SQL syntax provides additional features such as the text search tool.
유튜브에서 방송한 자료입니다. https://www.youtube.com/watch?v=pcQeIW5v8S4
개발 이야기 유튜브 리스트는 다음과 같습니다: https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg
Similar to Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database (20)
2. 오늘의 진행
• 실습 자료 준비
• Firebase Database
• NoSQL와 Realtime (장점소개)
• Data구조 (NoSQL의 특징)
• 간단한 DB 사용
• 실시간 접속자
3. 실습 자료 다운로드
• 실습 자료를 다운로드 받습니다.
• https://github.com/denlyou/study_firebase4web_abcd
• Firebase project로 초기화 되어 있는 폴더에 public 폴더의 파일을 복사합니다
• (지난 실습 파일들과 통합하였습니다)
6. NoSQL적인 특징
• 대용량 데이터 처리, 분산 시스템 구성에 유리
• 데이터를 Key-Value 쌍으로 저장
• Value에는 또 하위에 key-value쌍의 데이터가 저장 가능
• RDBMS와 비교
• 고정된 스키마를 갖지 않아 저장 구조가 유동적
• Foreign key를 사용하지 않아 join등의 연산이 없음
• 특정 용도에 특화되어 있음
• 채팅, 메시지, 뉴스 피드와 같은 기능 구현에 매우 유리
36. Real-Time Database
• Database와 connection
• 데이터가 변하면 connection된 모든 사
용자에게 notification이 감 (board
casting)
• 웹에서는 Firebase DB SDK가 변화를
감지해서 특정 메소드를 수행
37. 데이터 읽는 방법
• 기본적으로 이벤트 리스너를 통해서만 가능
(앞에서 사용한 once()는 내부적으로 on()을 한번 수행한 후 리스너를 제거하는 off()를 수행하도록 구현되어 있음)
• 데이터 변화 감지 메소드
firebase.database.Reference.on()
• https://firebase.google.com/docs/reference/js/firebase.database.Reference#on
• Sample Code
43. 그 외 기능
• 타임 스탬프 (서버의 현재 시각)
• 사용자 접속 끊김 감지
firebase.database.Reference.onDisconnect()
• https://firebase.google.com/docs/reference/js/firebase.database.Ref
erence#onDisconnect
• Sample Code
44. [Tip] SQL 변환 참고 자료
• 일반적으로 자주 쓰이는 형태의 쿼리 변환
(주의할 점 : 애초에 설계를 NoSQL의 정규화 방법으로
하는 편이 좋음)
• https://firebase.googleblog.com/201
3/10/queries-part-1-common-sql-
queries.html
46. 실시간 접속자의 DB 구조
• 사용자들 정보 (/onUsers)
• 사용자 정보 (/onUsers/[userUID])
• 사용자 UID를 Key로 사용
• 사용자의 닉네임 (/onUsers/[userUID]/username)
• 사용자의 접속 여부 (/onUsers/[userUID]/siteOn)
• 0 : 사이트에 접속하지 않음
• 1 : 사이트에 접속함