SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
2019 iFunFactory Dev Day
‘아이펀 엔진으로 MO 게임 서버 개발하기’
1
‘아이펀 엔진으로 MO 게임 서버 개발하기’
2019 iFunFactory Dev Day
2
김진욱 CTO (jinuk.kim@ifunfactory.com)
개발 환경 설정하기
Linux + VS Code
2019 iFunFactory Dev Day
1. 시작하기 전에
2. 프로젝트 생성에서 배포까지
3. 데모 프로젝트 톺아보기
4. Q&A
3
2019 iFunFactory Dev Day
시작하기 전에
• 개발용 데스크톱/랩톱 (Windows, macOS, linux)
• Visual Studio Code 1.38 이상 설치
• C++ 개발 환경, 원격 개발 환경 확장 기능 필요
• Linux 서버 혹은 가상 머신 (혹은 docker 인스턴스)
• 아이펀엔진 1.0.0-4320 (experimental) 필요
4
2019 iFunFactory Dev Day
아이펀엔진
• Linux / Windows
• 게임 서버 프레임워크
• UE4, Unity, Cocos-X 지원
5
2019 iFunFactory Dev Day
Visual Studio Code
• Microsoft 제작
• Windows / macOS / Linux 에서 동작
• 다양한 확장 기능 (프로그래밍 언어, 개발 도구, …)
• Linux 원격 개발 지원
6
2019 iFunFactory Dev Day 7
아이펀엔진 + VS Code + Linux 원격 개발
2019 iFunFactory Dev Day
게임 서버 개발하기
8
2019 iFunFactory Dev Day
아이펀 엔진(Linux/C++) 프로젝트 만들기
• Linux 서버에서 프로젝트를 생성
• 생성된 프로젝트에서 사용할 VS Code 설정 생성
9
2019 iFunFactory Dev Day 10
아이펀 엔진(Linux/C++) 프로젝트 만들기 (1)
2019 iFunFactory Dev Day 11
아이펀 엔진(Linux/C++) 프로젝트 만들기 (2)
2019 iFunFactory Dev Day 12
아이펀 엔진(Linux/C++) 프로젝트 만들기 (3)
2019 iFunFactory Dev Day 13
생성한 프로젝트 살펴보기
2019 iFunFactory Dev Day
빌드하기
VS Code 상에서 빌드 실행 (터미널 → 빌드 작업 실행)
14
2019 iFunFactory Dev Day 15
(시연) 빌드하기
2019 iFunFactory Dev Day 16
(시연) 빌드하기: 오류 수정하기
2019 iFunFactory Dev Day
테스트/디버깅
디버그 탭 → (실행할 서버 선택 후) 실행
17
2019 iFunFactory Dev Day 18
(시연) 디버깅하기
2019 iFunFactory Dev Day
패키징/배포하기
VS Code 상에서 패키징 실행
(터미널 → 작업 실행 → Packaging 선택)
19
2019 iFunFactory Dev Day
아이펀엔진 패키징하기
VS Code 상에서 패키징 실행
(터미널 → 작업 실행 → Packaging 선택)
20
2019 iFunFactory Dev Day
패키지 배포하기
• Ubuntu 의 .deb (APT 저장소) / Centos 의 .rpm (YUM 저장소)
• Aptly (.deb 배포 도구)
• createrepo (.rpm 배포 도구)
• 3rd 파티 서비스 - packagecloud.io
• 패키지를 이용해서 docker 이미지 생성 및 배포
• 직접 혹은 자동화된 프로세스로 필요한 서버에 배포
21
2019 iFunFactory Dev Day 22
(시연) 패키징하기
2019 iFunFactory Dev Day 23
(시연) 패키지 설치하기
2019 iFunFactory Dev Day 24
(시연) 설치한 서비스 실행하기
2019 iFunFactory Dev Day
Demo 프로젝트 소개 - Pong
• Atari에서 1972년에 제작한 1:1 대전 아케이드 게임 따라하기
• Pong 게임의 로직에 더해서 아래를 제공:
• 유저 간 매치 메이킹
• 유저의 승/패 기록 저장
• 게임 승/패에 따른 랭킹 서비스 제공
• Facebook 인증으로 로그인
• 유저 수가 늘어도 게임 및 백엔드 서버가 수평 확장
25
2019 iFunFactory Dev Day 26
Pong: 게임 클라이언트
2019 iFunFactory Dev Day 27
Pong: 백엔드 서비스
2019 iFunFactory Dev Day 28
Pong: 백엔드에서 직접 만들 부분
2019 iFunFactory Dev Day
프레임웍을 썼을 때 개발자가 할 일
• 클라이언트 인증에 사용할 서비스 선택 (Facebook, Google, …)
• 인증 서비스 연동은 프레임웍이 처리
• 랭킹의 형태 선택 (랭킹 종류, 동점자 처리 방식 선택, 리셋 주기, …)
• 랭킹 데이터 저장 및 동점 처리, 리셋은 프레임웍이 처리
• 매치메이킹 규칙
• 매치메이킹 과정, 매칭 후 게임 서버로 이동 등은 프레임웍이 처리
• DB에 저장할 데이터 구조 (ORM 구조)
• DB 연결, 샤딩, SP나 SQL query 호출은 프레임웍이 처리
• 네트워크 메시지를 정의하고, 메시지가 왔을 때 처리 로직 작성
29
2019 iFunFactory Dev Day
(언제나) 개발자가 할 일
• Pong 게임의 로직 구현
30
2019 iFunFactory Dev Day 31
(시연) Pong 프로젝트: 인증
2019 iFunFactory Dev Day 32
(시연) Pong 프로젝트: 서버간 이동 (1)
2019 iFunFactory Dev Day 33
(시연) Pong 프로젝트: 서버간 이동 (2)
2019 iFunFactory Dev Day 34
(시연) Pong 프로젝트: 패키징
2019 iFunFactory Dev Day
요약
•Linux 서버 개발을 명령행 대신 VS Code를 써서
원격에서
•아이펀 엔진 + VS Code로 개발 진행
• 로컬 GUI + 원격으로 소스코드 편집
• 로컬 GUI 에서 원격 서비스 디버깅
• 패키지 생성 및 배포 준비
35
경기도 성남시 분당구 대왕판교로 660, 유스페이스1 B동 606호
info@ifunfactory.com 070-4923-6566www.ifunfactory.com

Contenu connexe

Tendances

Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Sung-tae Ryu
 

Tendances (12)

Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
 
1.develop environment
1.develop environment1.develop environment
1.develop environment
 
Overview
OverviewOverview
Overview
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교
 
Codeveloper 개발기
Codeveloper 개발기Codeveloper 개발기
Codeveloper 개발기
 
PyCon 2017 예제로 살펴보는 PyQt
PyCon 2017 예제로 살펴보는 PyQtPyCon 2017 예제로 살펴보는 PyQt
PyCon 2017 예제로 살펴보는 PyQt
 
swift를 이용한 카카오링크 만들기
swift를 이용한 카카오링크 만들기swift를 이용한 카카오링크 만들기
swift를 이용한 카카오링크 만들기
 
make hybrid app.
make hybrid app.make hybrid app.
make hybrid app.
 
생활 코딩 #1(Simple Web Scraping with Python #1)
생활 코딩 #1(Simple Web Scraping with Python #1)생활 코딩 #1(Simple Web Scraping with Python #1)
생활 코딩 #1(Simple Web Scraping with Python #1)
 
Codeveloper
CodeveloperCodeveloper
Codeveloper
 
Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망Cloud ide를 이용한_모바일_개발의_가능성과_전망
Cloud ide를 이용한_모바일_개발의_가능성과_전망
 
The Future of C# and .NET Framework
The Future of C# and .NET FrameworkThe Future of C# and .NET Framework
The Future of C# and .NET Framework
 

Similaire à 2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱

클라우드 IDE, 구름 프로젝트 | Devon 2012
클라우드 IDE, 구름 프로젝트 | Devon 2012클라우드 IDE, 구름 프로젝트 | Devon 2012
클라우드 IDE, 구름 프로젝트 | Devon 2012
Daum DNA
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
Sang Don Kim
 
IT Trend 2010
IT Trend 2010IT Trend 2010
IT Trend 2010
msdream
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
funmeate
 

Similaire à 2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱 (20)

CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)CI in the Mobile World (한글번역)
CI in the Mobile World (한글번역)
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guide
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
 
Goorm
GoormGoorm
Goorm
 
클라우드 IDE, 구름 프로젝트 | Devon 2012
클라우드 IDE, 구름 프로젝트 | Devon 2012클라우드 IDE, 구름 프로젝트 | Devon 2012
클라우드 IDE, 구름 프로젝트 | Devon 2012
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나Unity3D 한국 최초 기술 세미나
Unity3D 한국 최초 기술 세미나
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
IT Trend 2010
IT Trend 2010IT Trend 2010
IT Trend 2010
 
생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf생산성을 높여주는 iOS 개발 방법들.pdf
생산성을 높여주는 iOS 개발 방법들.pdf
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
Unity소개
Unity소개Unity소개
Unity소개
 
Win10 iot core_pi2
Win10 iot core_pi2Win10 iot core_pi2
Win10 iot core_pi2
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 

Plus de iFunFactory Inc.

Plus de iFunFactory Inc. (20)

[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 
[아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP [아이펀팩토리] 2017 NDCP
[아이펀팩토리] 2017 NDCP
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 
게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여
 
Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉Make "PONG" : 아키텍팅과 동기화 테크닉
Make "PONG" : 아키텍팅과 동기화 테크닉
 
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현2016 NDC  - 클라우드 시대의  모바일 게임 운영 플랫폼 구현
2016 NDC - 클라우드 시대의 모바일 게임 운영 플랫폼 구현
 
2016 NDC - 모바일 게임 서버 엔진 개발 후기
2016 NDC - 모바일 게임 서버 엔진 개발 후기2016 NDC - 모바일 게임 서버 엔진 개발 후기
2016 NDC - 모바일 게임 서버 엔진 개발 후기
 
iFun Engine plugin 만들기 (for Stingray)
iFun Engine plugin 만들기 (for Stingray) iFun Engine plugin 만들기 (for Stingray)
iFun Engine plugin 만들기 (for Stingray)
 
iFun Deploy 소개
iFun Deploy 소개iFun Deploy 소개
iFun Deploy 소개
 
Apache ZooKeeper 로
 분산 서버 만들기
Apache ZooKeeper 로
 분산 서버 만들기Apache ZooKeeper 로
 분산 서버 만들기
Apache ZooKeeper 로
 분산 서버 만들기
 
클라우드 춘추전국시대 서버 개발자 생존기
클라우드 춘추전국시대 서버 개발자 생존기클라우드 춘추전국시대 서버 개발자 생존기
클라우드 춘추전국시대 서버 개발자 생존기
 
iFunEngine: 30분 만에 게임 서버 만들기
iFunEngine: 30분 만에 게임 서버 만들기iFunEngine: 30분 만에 게임 서버 만들기
iFunEngine: 30분 만에 게임 서버 만들기
 

Dernier

Dernier (8)

실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 

2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱

  • 1. 2019 iFunFactory Dev Day ‘아이펀 엔진으로 MO 게임 서버 개발하기’ 1
  • 2. ‘아이펀 엔진으로 MO 게임 서버 개발하기’ 2019 iFunFactory Dev Day 2 김진욱 CTO (jinuk.kim@ifunfactory.com) 개발 환경 설정하기 Linux + VS Code
  • 3. 2019 iFunFactory Dev Day 1. 시작하기 전에 2. 프로젝트 생성에서 배포까지 3. 데모 프로젝트 톺아보기 4. Q&A 3
  • 4. 2019 iFunFactory Dev Day 시작하기 전에 • 개발용 데스크톱/랩톱 (Windows, macOS, linux) • Visual Studio Code 1.38 이상 설치 • C++ 개발 환경, 원격 개발 환경 확장 기능 필요 • Linux 서버 혹은 가상 머신 (혹은 docker 인스턴스) • 아이펀엔진 1.0.0-4320 (experimental) 필요 4
  • 5. 2019 iFunFactory Dev Day 아이펀엔진 • Linux / Windows • 게임 서버 프레임워크 • UE4, Unity, Cocos-X 지원 5
  • 6. 2019 iFunFactory Dev Day Visual Studio Code • Microsoft 제작 • Windows / macOS / Linux 에서 동작 • 다양한 확장 기능 (프로그래밍 언어, 개발 도구, …) • Linux 원격 개발 지원 6
  • 7. 2019 iFunFactory Dev Day 7 아이펀엔진 + VS Code + Linux 원격 개발
  • 8. 2019 iFunFactory Dev Day 게임 서버 개발하기 8
  • 9. 2019 iFunFactory Dev Day 아이펀 엔진(Linux/C++) 프로젝트 만들기 • Linux 서버에서 프로젝트를 생성 • 생성된 프로젝트에서 사용할 VS Code 설정 생성 9
  • 10. 2019 iFunFactory Dev Day 10 아이펀 엔진(Linux/C++) 프로젝트 만들기 (1)
  • 11. 2019 iFunFactory Dev Day 11 아이펀 엔진(Linux/C++) 프로젝트 만들기 (2)
  • 12. 2019 iFunFactory Dev Day 12 아이펀 엔진(Linux/C++) 프로젝트 만들기 (3)
  • 13. 2019 iFunFactory Dev Day 13 생성한 프로젝트 살펴보기
  • 14. 2019 iFunFactory Dev Day 빌드하기 VS Code 상에서 빌드 실행 (터미널 → 빌드 작업 실행) 14
  • 15. 2019 iFunFactory Dev Day 15 (시연) 빌드하기
  • 16. 2019 iFunFactory Dev Day 16 (시연) 빌드하기: 오류 수정하기
  • 17. 2019 iFunFactory Dev Day 테스트/디버깅 디버그 탭 → (실행할 서버 선택 후) 실행 17
  • 18. 2019 iFunFactory Dev Day 18 (시연) 디버깅하기
  • 19. 2019 iFunFactory Dev Day 패키징/배포하기 VS Code 상에서 패키징 실행 (터미널 → 작업 실행 → Packaging 선택) 19
  • 20. 2019 iFunFactory Dev Day 아이펀엔진 패키징하기 VS Code 상에서 패키징 실행 (터미널 → 작업 실행 → Packaging 선택) 20
  • 21. 2019 iFunFactory Dev Day 패키지 배포하기 • Ubuntu 의 .deb (APT 저장소) / Centos 의 .rpm (YUM 저장소) • Aptly (.deb 배포 도구) • createrepo (.rpm 배포 도구) • 3rd 파티 서비스 - packagecloud.io • 패키지를 이용해서 docker 이미지 생성 및 배포 • 직접 혹은 자동화된 프로세스로 필요한 서버에 배포 21
  • 22. 2019 iFunFactory Dev Day 22 (시연) 패키징하기
  • 23. 2019 iFunFactory Dev Day 23 (시연) 패키지 설치하기
  • 24. 2019 iFunFactory Dev Day 24 (시연) 설치한 서비스 실행하기
  • 25. 2019 iFunFactory Dev Day Demo 프로젝트 소개 - Pong • Atari에서 1972년에 제작한 1:1 대전 아케이드 게임 따라하기 • Pong 게임의 로직에 더해서 아래를 제공: • 유저 간 매치 메이킹 • 유저의 승/패 기록 저장 • 게임 승/패에 따른 랭킹 서비스 제공 • Facebook 인증으로 로그인 • 유저 수가 늘어도 게임 및 백엔드 서버가 수평 확장 25
  • 26. 2019 iFunFactory Dev Day 26 Pong: 게임 클라이언트
  • 27. 2019 iFunFactory Dev Day 27 Pong: 백엔드 서비스
  • 28. 2019 iFunFactory Dev Day 28 Pong: 백엔드에서 직접 만들 부분
  • 29. 2019 iFunFactory Dev Day 프레임웍을 썼을 때 개발자가 할 일 • 클라이언트 인증에 사용할 서비스 선택 (Facebook, Google, …) • 인증 서비스 연동은 프레임웍이 처리 • 랭킹의 형태 선택 (랭킹 종류, 동점자 처리 방식 선택, 리셋 주기, …) • 랭킹 데이터 저장 및 동점 처리, 리셋은 프레임웍이 처리 • 매치메이킹 규칙 • 매치메이킹 과정, 매칭 후 게임 서버로 이동 등은 프레임웍이 처리 • DB에 저장할 데이터 구조 (ORM 구조) • DB 연결, 샤딩, SP나 SQL query 호출은 프레임웍이 처리 • 네트워크 메시지를 정의하고, 메시지가 왔을 때 처리 로직 작성 29
  • 30. 2019 iFunFactory Dev Day (언제나) 개발자가 할 일 • Pong 게임의 로직 구현 30
  • 31. 2019 iFunFactory Dev Day 31 (시연) Pong 프로젝트: 인증
  • 32. 2019 iFunFactory Dev Day 32 (시연) Pong 프로젝트: 서버간 이동 (1)
  • 33. 2019 iFunFactory Dev Day 33 (시연) Pong 프로젝트: 서버간 이동 (2)
  • 34. 2019 iFunFactory Dev Day 34 (시연) Pong 프로젝트: 패키징
  • 35. 2019 iFunFactory Dev Day 요약 •Linux 서버 개발을 명령행 대신 VS Code를 써서 원격에서 •아이펀 엔진 + VS Code로 개발 진행 • 로컬 GUI + 원격으로 소스코드 편집 • 로컬 GUI 에서 원격 서비스 디버깅 • 패키지 생성 및 배포 준비 35
  • 36. 경기도 성남시 분당구 대왕판교로 660, 유스페이스1 B동 606호 info@ifunfactory.com 070-4923-6566www.ifunfactory.com