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/
CloudBread는 클라우드 기반 무료 오픈소스 프로젝트로, 모바일 게임과 모바일 앱에 최적화된 게임 서버 엔진입니다. 이번 CloudBread 캠프는 Unity 개발자를 위한 CloudBread 캠프로 현장에서 제공되는 Unity 예제 게임을 이용해 실제 게임서버와 연동하는 과정을 직접 코딩하는 과정으로 진행됩니다. Unity와 클라우드 기반 게임서버를 연동하는 가장 손쉬운 방법을 CloudBread 캠프에서 확인하세요.
CloudBread는 클라우드 기반 무료 오픈소스 프로젝트로, 모바일 게임과 모바일 앱에 최적화된 게임 서버 엔진입니다. 이번 CloudBread 캠프는 Unity 개발자를 위한 CloudBread 캠프로 현장에서 제공되는 Unity 예제 게임을 이용해 실제 게임서버와 연동하는 과정을 직접 코딩하는 과정으로 진행됩니다. Unity와 클라우드 기반 게임서버를 연동하는 가장 손쉬운 방법을 CloudBread 캠프에서 확인하세요.
Unite'17 Seoul 아이펀팩토리 발표자료
1. 강연주제: 클라이언트 개발자, 서버 개발 시작하기
2. 강연자: 박근환 TD
3. 강연소개: 이 세션은 주로 게임 클라이언트 개발자로 경력을 쌓아오던 개발자가 게임 서버 솔루션 회사에서 일하면서 알게된 사실들을 바탕으로, 클라이언트 개발자가 서버 개발을 시작하려면 필요한 것들이 무엇인지, 어떻게 시작해야 하는지에 대하여 이야기합니다.
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
Unite'17 Seoul 아이펀팩토리 발표자료
1. 강연주제: 클라이언트 개발자, 서버 개발 시작하기
2. 강연자: 박근환 TD
3. 강연소개: 이 세션은 주로 게임 클라이언트 개발자로 경력을 쌓아오던 개발자가 게임 서버 솔루션 회사에서 일하면서 알게된 사실들을 바탕으로, 클라이언트 개발자가 서버 개발을 시작하려면 필요한 것들이 무엇인지, 어떻게 시작해야 하는지에 대하여 이야기합니다.
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...Amazon Web Services Korea
* 발표 영상 보기: https://youtu.be/mTbS1ddjTE0
최신 애플리케이션 개발에서 만났던 문제를 해결하기 위한 12가지 원칙(Twelve Factor)을 소개하고, 클라우드 네이티브 기반으로 접목해 AWS의 솔루션을 소개합니다. 2012년 이후 최근 동향을 포함한 신규 항목과 전체를 관통하는 앱 현대화를 위한 패턴도 함께 소개합니다. 본 세션은 AWS Summit Online의 보너스 세션으로 아마존 닷컴 CTO의 기조 연설과 47개의 다양한 강연 세션을 더 보실 수 있습니다.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
Backend.AI (https://backend.ai)는 클라우드 및 온-프레미스 환경에서 여러 사용자가 안전하고 효율적으로 컴퓨팅 자원을 공유할 수 있는 머신러닝에 특화된 인프라 관리 프레임워크입니다. 현재 널리 사용되고 있는 오픈소스 기술인 OpenStack, Kubernetes 등과 비교하여 어떤 특징과 차이점이 있는지 소개하고, 프레임워크의 구조와 기반 기술 및 응용 사례를 데모와 함께 소개합니다.
SOSCON 2016 - OSS "개발자"의 Machine Learning 분투기Dae Kim
이 발표자료는 SOSCON2016에서 발표한 자료이며 아래 내용을 포함하고 있습니다.
개발자와 머신러닝(?)
어디에 어떻게 사용해야 하나
머신러닝 데모
학습모델 / 예측모델
지도 학습 / 비지도 학습 / 분석 알고리즘
예측모델 생성 데모
예측 모델을 API로 노출 및 Python 등에서 사용
Presentation document for kaist CS492 class - 20161103 Session subject :
Machine Learning developer in "Business"
-People using ML in business (10 min)
-Machine Learning subsets including Deep Learning Toolkit CNTK and Tensorflow (20 min)
-Building predictive model & deploy in Azure Machine Learning (20 min)
-Q&A (10 min)
Cloud and Machine Learning in real world businessDae Kim
Presentation document for kaist CS443 class - 20161101
Session subject : Cloud and Machine Learning in real world business
Github repo short URL : https://aka.ms/cs443
Agenda
Essential – Global cloud service vender(Microsoft, AWS, Google) trend(10 min)
Machine Learning & Hadoop in real world business (30 min)
Cloud and Machine Learning solution architecture debrief with “code” (30 min)
Q&A (10 min)
Microsoft Bot fraemwork code for D.Camp - d.party presentation
이 자료는 d.party 발표를 위해 제작. http://www.dcamp.kr/event/apply/1500
10분 동안 만드는 진짜 Bot
Microsoft Bot Framework를 이용해
봇을 개발 / 게시 / 등록하고, 실제 메신져 어플리케이션에서 추가해 봇과 채팅하는 어플리케이션을 개발하는 것이 목표 + Azure Machine Learning을 이용해 예측 분석을 봇을 통해 수행
CloudBread는 클라우드 기반 무료 오픈소스 프로젝트로, 모바일 게임과 모바일 앱에 최적화된 게임 서버 엔진입니다. 이번 CloudBread 캠프는 Unity 개발자를 위한 CloudBread 캠프로 현장에서 제공되는 Unity 예제 게임을 이용해 실제 게임서버와 연동하는 과정을 직접 코딩하는 과정으로 진행됩니다. Unity와 클라우드 기반 게임서버를 연동하는 가장 손쉬운 방법을 CloudBread 캠프에서 확인하세요.
Visual Studio를 이용해 오픈소스 소프트웨어를 활용하는 여러 방법과 Cloud에 배포하는 방법에 대해서 소개해 드립니다. 특히, Visual Studio에서 node.js를 이용하는 방법은 물론, Git, Github, Azure Storage와 연동 방안까지 소개해 드리도록 하겠습니다.
6. 게임서버 !=Cloud
• 클라우드는 다르다?
• IDC 센터에서 잘 동작했던 방식?
• Virtualization / Standard VM
• 클라우드는 싸다? - PAYG
• 기존의 운영 방식 != Cloud의 운영 방식
• Instance High Availability 필수
• 클라우드의 무한한 리소스 활용(?) - 설계가
다르다
7. 게임서버 Why? What?
• IAP 수익 모델
• Sustaining
• CS / 분쟁
• BaaS, KAKAO, 상용, OSS(?)
13. 우리 주말은 좀 쉬자 프로젝트 - CloudBread
- 앱 개발에 집중
- 파라미터에 맞춰 호출
- 예제 테스트 앱 제공
- REST 호출 함수 만들 필요 없음
- 앱의 코드는 바뀌지 않음
- IaaS보다 진화한 PaaS
클라우드
- Scale Up – Out 선택은 자유
- 서비스 구조에 맞는 기능 선택
- 보안 구조 / 데이터 암호화 선택
가능
- GM 관리자 도구 제공
- 기본 배치(분/시/일) 제공
- 무료 기술 교육 제공(헤카톤/캠프)
(대부분 이미 다 만들어진) 무료 오픈소스(MIT) 프로젝트
모바일 게임과 앱에 최적화된 게임 서버 엔진
14. 프로젝트 링크
• 프로젝트 Github
• https://github.com/CloudBreadProject/CloudBread
• 프로젝트 페이스북
• https://www.facebook.com/groups/cloudBreadProje
ct/
15. CloudBread – 추상화 디자인 아키텍처
데이터 저장소 – SQL
(암호화)
로그 데이터 저장소 – NoSQL
(암호화)
FE 모바일 응답 서버 #N
배치성 작업(일배치/시배치/월배치)
및 비실시간성 데이터 처리를 위한
큐(Queue) 저장소
중간 작업자
배치 작업 처리기
어뷰징 규칙 / 푸쉬알림
로그 라우팅 처리기 #N
작업 스케쥴러(Trigger)
데이터 출력 캐시
랭킹 서비스를 위한 캐시
관리자 페이지
22. 사용자의 행동 “Behavior”
사용자의 활동을 기록 (약 100여개)
하다보니 기록이 “일반화“ – 예를 들면
Github wiki 참조
Actor behavior Behavior Name
회원가입
로그인Id 중복 체크 SelLoginIDDupeCheck
회원가입 InsRegMember
익명 회원 가입 InsAnonymousRegMember
메일 주소로 메일 전송 - 회원 가입 확인(메일 주소 체크) 등 SelSendEmailToMember
Email 주소를 통한 접속 여부 체크 (내 메일 주소로 온 링크 눌러야 회원가입
완료) 웹페이지 인터렉션 필요) - Mobile Service의 인증제어가 포함되지
않은 standard Web Api
인풋이 id/pwd가 아니라 다른 정보(id/pwd 묶어서 한 파라미터로 보내면
서버에서 decypt해 받아 id/pwd로 SP에서 조회해 처리
UdtConfirmedEmailAddress
로그인 후 사용자 정보 조회 SelLoginInfo
로그인 후 Members 에 기록 update(최근로그인일시 등 members 테이블
정보)
UdtLoginInfo
로그아웃 or 종료 + 최근 로그아웃 일시 저장 UdtLogOut
회원 정보 수정 UdtMemberinfo
로그인 암호 분실로 비밀번호 초기화 UdtMemberPwdReset
로그인 후 공지사항 조회 SelNotices
이벤트 조회 SelGameEvents
이벤트의 아이템 받고 받음을 기록 UdtGameEventMemberToItem
쿠폰조회 SelCoupons
쿠폰등록 UdtCouponMember
30. 클라이언트와 FE 서버는 어떻게 연애를?
HTTP로 호출
클라이언트에 라이브러리 참조 하면 “훨씬” 더 쉬움
비동기 호출
함수만 call 하면 됨
Microsoft가 OSS로 제공하는(iOS, Android,
WinPhone …) 전용 라이브러리
서버 호출 함수
Invoke()
31. 사용자의 행동 Behavior
실제 예를 들면
로그인ID중복체크 : SelLoginIDDupeCheck
- ID 정보를 서버로 전달하면 서버는 중복ID인지 아닌지를 응답
요청
{
memberID = “member1”
}
응답
0 또는 1
32. 사용자의 행동 Behavior
회원가입 : InsRegMember
- 회원 가입 정보 전달
{
memberID = “member1”, email
=“abc@email.com”, name=“코난”, …
}
응답
2 – (영향을 받은 row의 숫자)
33. 사용자의 행동 Behavior
이벤트 조회: SelGameEvents
{
memberID = “member1”
}
응답
{
EventID =“eventID1”, EventName=“크리스탈1”, 기간=…
EventID =“eventID2”, EventName=“좋은템1”, 기간=…
EventID =“eventID13, EventName=“보너스아이템”, 기간=…
}
38. 클라이언트 테스트 앱 – Unity3D
Bitrave – Unity 플러그인 형태로 개발
https://github.com/bitrave/azure-mobile-services-for-unity3d
http://www.deadlyfingers.net/azure/unity3d-leaderboard-demo-
using-bitrave-azure-plugin/
46. 데이터 저장 유연성
Schema DB vs Non Schema – NoSQL 상호보완적
sCol1~sCol10 컬럼은 여분의 컬럼
기획한 게임의 Property가 1:1로 매칭되지 않아도 걱정 말자
Property를 입력할 컬럼이 부족할 경우 sCol을 활용한다.
- 여러 값을 하나의 컬럼에 저장
- JSON 데이터를 저장도 추천
- NVARCHAR MAX
- Search에 이용될 수 있거나 긴 Property 값은 sCol 저장 하지
않는다.
47. 데이터 저장 유연성
Schema DB vs Non Schema – NoSQL 상호보완적
sCol1~sCol10 컬럼은 여분의 컬럼
기획한 게임의 Property가 1:1로 매칭되지 않아도 걱정 말자
Property를 입력할 컬럼이 부족할 경우 sCol을 활용한다.
- 여러 값을 하나의 컬럼에 저장
- JSON 데이터를 저장도 추천
- NVARCHAR MAX
- Search에 이용될 수 있거나 긴 Property 값은 sCol 저장 하지
않는다.
48. 데이터 암호화
무엇을 암호화 할 것인가?
String or Value
Password 암호화 SHA512
데이터 암호화 AES256
49. 데이터 암호화
무엇을 암호화 할 것인가?
String or Value
Password 암호화 SHA512
데이터 암호화 AES256
50. 웹서버와 DB서버 / 저장소 로깅 처리
모바일 서비스에 특화
배포된 앱만 접근 인증
SSL 기본 제공
친숙한 MVC 모델 (View가 없죠.)
API Controller – DB (저장프로시저) 루틴
API Controller – Storage (로그데이터 – 저장소) 루틴
쓰기 속도 향상 방안
51. 스케쥴 작업
통계 작업 – DAU, 매출현황 등
클라우드의 여러가지 스케쥴링 작업 방식
- 가상머신 + 쿼츠(Quartz Enterprise Scheduler) / 비추천
- 스케쥴러 + Queue + Worker Role / 추천
- Azure Web App(or Mobile Service) + Web job / 추천
CloudBread는 Worker Role 방식
52. 차기 계획
• 문서화 작업 마무리(OTL)
• Schedule Task (배치)
• Push 처리
• …
53. Cloud Scalability
• 개발 / 테스트 서버를 IaaS 쓰면 그대로 올라
간다는데요(?)
너 집에 아직 안갔니(?)
• 먼저, 서비스의 Limit을 명확하게 알자
• 코드로 충분한 테스트를 수행
• PaaS + Scale out 이 최선의 답안
• 우리보다 똑똑한 친구들이 월급 받으면서 만든 클라우드
최적화 기능들을 적재 적소에서 쓰자
54. 프로젝트 참여
• 프로젝트 Github
• https://github.com/CloudBreadProject/CloudBread
• 프로젝트 페이스북
• https://www.facebook.com/groups/cloudBreadProje
ct/
57. 개발 환경 구성
프로젝트 다운로드
https://github.com/CloudBreadProject/CloudBread
압축을 풀고 Visual Studio 솔루션 파일 실행
만약, Windows 8에서 실행가능하다는 메세지가 뜰 경우
Windows 8 스토어앱이 테스트 프로젝트로 포함되어 있기 때문
해당 프로젝트를 로드하지 않고 실행해도 OK
59. 개발 환경 구성
클라우드 서비스 설정 - (1) 저장소(Storage) 생성
1) https://manage.windowsazure.com 접속
2) 좌하단 “새로만들기” – “데이터 서비스” – “저장소” – “빨리만들기”
3) URL에 “저장소” 이름 생성
4) 위치 / 선호도 그룹에 “일본 서부”(또는 원하는 지역) 선택
5) 복제 – “로컬 중복” 선택 (참고링크)
저장소 계정 생성은 보통 1분 이내 완료됨
61. 개발 환경 구성
데이터를 저장할 DB생성
BACPAC으로 생성된 DB를 Azure의 Blob에 올려두고 이 파일을 Import해
SQL Database 생성
Azure Storage Explorer 툴 다운로드, 설치 – Azure의 저장소를 UI로 관리
가능한 도구 - http://azurestorageexplorer.codeplex.com/
https://manage.windowsazure.com 접속해 저장소 이름과 엑세스 키 확인
1) 저장소이름 – 목록에서 조금 전 생성한 저장소 선택 – 상단에
“저장소이름”
2) 저장소 엑세스키 – 맨 아래 “엑세스키 관리” 클릭
3) “기본 엑세스키” 가 저장소 엑세스키
64. 개발 환경 구성
Azure Storage Explorer 실행
1) Add Acoount 클릭
2) Storage Account Name에 위의 “저장소 이름” 입력
3) Storage Account Key에 위의 “기본 엑세스키” 입력
4) Test Access 수행하고 성공하면 “Save”
66. 개발 환경 구성
Azure Storage Explorer 접속 후
1) New – Blob Container 선택
2) “cloudbreadblob” 생성
3) 생성 후 cloudbreadblob에서 “upload” 클릭
4) 다운로드 받은 프로젝트 – tools 폴더의 BACPAC 파일 선택 후 업로드
(CB0330_withTestData.bacpac)
69. 개발 환경 구성
업로드한 BACPAC 파일로 DB생성
1) Azure 관리자 포털 접속 : https://manage.windowsazure.com
2) 좌하단 “새로만들기” – “데이터서비스” – “SQL 데이터베이스” –
“가져오기”
3) BACPAC URL에서 폴더 클릭 – 저장소 선택 – BACPAC 파일 선택 후
열기 클릭
4) 이름 – “CloudBreadDB” 입력
5) 서비스 계층 – 가장 싼 “Basic” 선택 (추후 아무때나 Scale Up 가능)
6) 서버 – “새 SQL 데이터베이스 서버” 선택(만약 기존 사용 서버가 있다면
사용도 가능)
7) 서버 로그인 ID / PWD 넣고 지역은 “일본 서부”(또는 원하는 지역) 선택
73. 개발 환경 구성
프론트엔드 서버를 위한 Azure Mobile Service 생성
Azure 관리자 포털에서 좌하단 “새로 만들기” – “계산” – “모바일 서비스” –
“만들기”
1) URL 입력
2) 데이터베이스는 “기존 SQL 데이터베이스 사용” 선택
3) 지역 “일본 서부”
4) 백 엔드 – “.NET” 선택 – 다음 클릭
5) 데이터베이스 선택 – 조금 전 BACPAC을 업로드해 새로 생성한 서버
선택
6) 생성한 데이터베이스 서버 로그인 ID / PWD 입력
77. 개발 환경 구성
관리자 페이지를 위한 Azure Website 생성
Azure 관리자 포털에서 좌하단 “새로 만들기” – “계산” – “웹앱” – “빨리
만들기”
1) URL 입력
2) 앱 서비스 계획 “일본 서부” 선택(저의 캡처 화면과 약간 다를 수
있습니다.)
79. 개발 환경 구성
Visual Studio에서 배포 수행 – web.config 파일 수정
1) Visual Studio의 CloudBread 프로젝트의 web.config 파일을 열고
2) <ConnectionStrings> 요소의 항목들을 수정
DB서버주소 DB명
유저아이디 패스워드
저장소계정이름 저장
소키
80. 개발 환경 구성
Visual Studio에서 배포 수행 – DB서버/DB명/id/pwd
“연결 문자열”에 대해 설정 경험이 있다면 바로
관리자 포털에서 “SQL 데이터베이스” 선택 – “대시보드”탭 – “연결 문자열
표시”를 복사해 web.config 파일에 복사
1) DB서버 주소 – 관리자 포털 확인
2) 관리자 포털에서 “SQL 데이터베이스” 선택
3) 목록들 중 생성한 데이터베이스 클릭
4) 하단에 “서버” 부분에 서버 주소 또는 “대시보드” 부분에 “서버 이름”
항목에서 서버 주소 확인 가능
5) DB명은 “CloudBreadDB”로 설정(다른 이름일 경우 포털의 SQL
데이터베이스에서 확인해 설정
6) id / pwd는 관리자 포털에서 “SQL 데이터베이스” 선택 – “대시보드”탭 –
“연결 문자열 표시”를 보면 id를 볼 수 있고 비밀번호는 입력한 비밀번호
입력
81. 개발 환경 구성
Visual Studio에서 배포 수행 – 저장소 계정이름 / 저장소키
관리자 포털 – “저장소” – 생성한 저장소 선택 – 하단 “엑세스 키 관리” 에서
“저장소 계정 이름”과 “기본 엑세스 키”를 web.config 파일에 복사해 이용
수정된 web.config 저장
82. 개발 환경 구성
Visual Studio에서 프론트 엔드 – CloudBread 프로젝트 배포 수행
1) Visual Studio 솔루션 익스플로러에서 “CloudBread” 프로젝트 마우스
우클릭 – “게시(Publish)” 클릭
2) “게시 대상 선택” 에서 “Microsoft Azure Mobile Service” 선택
3) Visual Studio에서 Microsoft ID로 로그인 하면, 조금 전 생성한 Azure
Mobile Service 리스트에서 선택 가능
4) 자동으로 게시를 위한 프로필 정보를 가져옴 “다음” 클릭
5) Database 연결 문자열 설정 화면 나옴 – 다음 클릭
참고로, Azure는 개발시의 연결 문자열과 배포시 연결 문자열 처리를
위해 web.config의 연결 문자열을 이렇게 배포시 오버라이드 할 수 있음.
배포 후에도 Azure 관리자 포털 – 해당 서비스의 “구성” 탭에서
연결문자열을 오버라이드도 가능. 현재는 web.config 파일을 배포 환경에
맞춰 설정한 상태이기 때문에 따로 수정하지 않고 통과.
6) 게시(Publish) 클릭 후 게시 수행
7) 게시가 완료되면 브라우저가 열리고 자동으로 프론트엔드 사이트 열림
86. 개발 환경 구성
Visual Studio에서 프론트 엔드 – CloudBread 프로젝트 배포 테스트
1) 배포가 완료되면 CloudBread 테스트 가능. API 웹사이트이며
CloudBread가 제공하는 API를 브라우저에서 호출 테스트 가능
2) 왼쪽 아래 “try it out” 수행
3) 프러덕션 환경이기 때문에 “응용프로그램 키”가 있어야 접근 가능 –
인증창이 뜨고 인증창의 비밀번호 부분에 Azure Mobile service의
“응용프로그램 키”를 복사해 넣으면 통과됨. 실제 모바일 디바이스에서는
클라이언트의 앱이나 게임에 배포 되어야 함(예제 응용프로그램 참조)
4) Azure 관리자 포털 – “모바일 서비스” – 생성한 모바일 서비스 선택 후
하단 “키 관리” 버튼을 눌러 “응용프로그램 키” 복사
5) CloudBread가 제공하는 API 리스트가 나오고 “CBSelGameEvents”
선택 후 상단 “try it out” 하고 “Send”를 누르면 Json 메세지를 보내고
리턴값을 받음. 현재 테스트를 위한 기본 데이터가 포함되어 있어서
작동하는 것임.
정상적으로 데이터가 보이면 CloudBread 프로젝트 배포 완료
93. 개발 환경 구성
Visual Studio에서 프론트 엔드 – CloudBreadAdminWeb 프로젝트 배포
1) 관리자 페이지 배포 과정이고 CloudBread 프로젝트 배포와 유사함
2) CloudBreadAdminWeb 프로젝트 루트의 “web.config” 파일을 열고 연결
문자열 편집 필요
3) 총 세 부분이고
94. 개발 환경 구성
1) Visual Studio 솔루션 익스플로러에서 “CloudBreadAdminWeb”
프로젝트 마우스 우클릭 – “게시(Publish)” 클릭
2) “게시 대상 선택” 에서 “Microsoft Azure Website” 선택
3) Visual Studio에서 Microsoft ID로 로그인 하면, 조금 전 생성한 Azure
Websites 리스트에서 선택 가능
4) 자동으로 게시를 위한 프로필 정보를 가져옴 “다음” 클릭
5) Database 연결 문자열 설정 화면 나옴 – 다음 클릭
참고로, Azure는 개발시의 연결 문자열과 배포시 연결 문자열 처리를
위해 web.config의 연결 문자열을 이렇게 배포시 오버라이드 할 수 있음.
배포 후에도 Azure 관리자 포털 – 해당 서비스의 “구성” 탭에서
연결문자열을 오버라이드도 가능. 현재는 web.config 파일을 배포 환경에
맞춰 설정한 상태이기 때문에 따로 수정하지 않고 통과.
6) 게시(Publish) 클릭 후 게시 수행
7) 게시가 완료되면 브라우저가 열리고 자동으로 프론트엔드 사이트 열림
95. 개발 환경 구성
1) 게시가 완료되면 로그인 페이지가 열리고 기본 테스트 계정으로 입력된
CBAdmin / P@ssw0rd
로 로그인
2) 로그인이 완료되면 상단 메뉴를 통해 CloudBread 전체 데이터에 대한
조회,삽입,수정,삭제 과정이 가능
98. 로컬 개발 환경 구성
서버 개발자이고 로컬에 개발환경이 필요할 경우
로컬이나 사내망에 SQL서버를 설치해 개발에 사용할 경우 web.config
파일의 연결 문자열을 (local) 등으로 수정해 사용해 로컬에서 작업 가능
SQL서버가 설치되어 있을 경우 BACPAC 파일 가져오기를 수행