Skip to content

mzcgamejam/guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 

Repository files navigation

GameLift, Unity๋กœ ์„ธ์…˜ ์ƒ์„ฑ, ์ž…์žฅ, ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ


MEGAZONE CLOUD

Overview

GameLift์™€ API Gateway, Lambda, SQS, RDS๋ฅผ ํ†ตํ•ด Session์„ ๋งŒ๋“ค๊ณ  ์ž…์žฅํ•˜์—ฌ ๊ฐ€์œ„, ๋ฐ”์œ„, ๋ณด ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•ด๋ด…๋‹ˆ๋‹ค.


๋ชฉํ‘œ

GameLift์˜ ๊ธฐ๋ณธ์ ์ธ Build, Fleet ์ƒ์„ฑ ๋ฐ ๊ตฌ์กฐ ์ดํ•ด.


์žฅ์ 

readme/0001.png

GameLift ๋Š” Session ๊ฒŒ์ž„์— ํŠนํ™”๋œ ์„œ๋น„์Šค ์ž…๋‹ˆ๋‹ค. ์‹œ์ž‘๊ณผ ๋์ด ๋ช…ํ™•ํ•œ Session ํ˜• ๊ฒŒ์ž„์„ FleetIQ๋ฅผ ์ด์šฉํ•˜์—ฌ Spot ์ธ์Šคํ„ด์Šค๋ฅผ ํ™œ์šฉํ•˜๊ณ  ๋น„์šฉ์„ ์ ˆ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ Session ํ˜• ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ์†์‰ฌ์šด Auto-scaling ๋ฐ Matchmaking์„ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


Architecture

readme/Infra-001.png


Step 1. ์„ค์น˜

Step 1.1. Unity Hub ์„ค์น˜

์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ Unity๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” Unity Hub๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

readme/_1.png

Unity Hub๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ์™ผ์ชฝ ์„ค์น˜ ํƒญ์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled.png

ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•œ 2020.1.11f1 ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%201.png

์›ํ•˜๋Š” ๋ฒ„์ „์ด ๋ชฉ๋ก์— ์—†๋‹ค๋ฉด Unity ๋‹ค์šด๋กœ๋“œ ์•„์นด์ด๋ธŒ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%202.png

์›ํ•˜๋Š” ๋ฒ„์ „์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

readme/Untitled%203.png

Unity Hub ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์‹œ๋ฉด ์„ค์น˜๊ฐ€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

"Unity Hub๋ฅผ ์—ฌ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?" ๋ผ๋Š” ํŒ์—…์ด ์—ด๋ฆฌ์‹œ๋ฉด Unity Hub ์—ด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

readme/Untitled%204.png

๊ธฐ๋ณธ์ ์œผ๋กœ Android Build Support์™€ Windows Build Support(IL2CPP)๊ฐ€ ์„ ํƒ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.(Windows ๊ธฐ์ค€), ์ถ”๊ฐ€๋กœ iOS Build Support ๋“ฑ์„ ์„ ํƒ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Visual Studio Community 2019 ์„ค์น˜ ๋˜ํ•œ ๊ธฐ๋ณธ ์„ ํƒ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—†์œผ์‹œ๋‹ค๋ฉด ํ•จ๊ป˜ INSTALL ํ•˜์‹œ๊ณ  ์„ค์น˜๋˜์–ด ์žˆ์œผ์‹œ๋‹ค๋ฉด ์ฒดํฌ ํ•ด์ œํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

readme/Untitled%205.png

Step 1.2. AWS Toolkit for Visual Studio ์„ค์น˜

Visual Studio 2019๋ฅผ ์‹คํ–‰ํ•˜๊ณ  AWS Toolkit for Visual Studio ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

readme/lambda-001.png

readme/lambda-002.png

readme/lambda-003.png

readme/lambda-004.png

readme/lambda-005.png

readme/lambda-006.png

readme/lambda-007.png

Step 2. ํ”„๋กœ์ ํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ

Step 2.1. Server

ํ”„๋กœ์ ํŠธ : https://github.com/mzcgamejam/megajam_sample_2022/tree/main/ctc-game-server

Step 2.2. Client

ํ”„๋กœ์ ํŠธ : https://github.com/mzcgamejam/megajam_sample_2022/tree/main/ctc-game-client

Step 3. ๋„คํŠธ์›Œํฌ ์ƒ์„ฑ

Step 3.1. VPC ์ƒ์„ฑ

VPC ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ด๋™ํ•˜์—ฌ VPC ์ƒ์„ฑ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%206.png

Step 3.2. Subnet ์ƒ์„ฑ

2๊ฐœ์˜ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท, 2๊ฐœ์˜ ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท ์ƒ์„ฑ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

readme/VPC-002.png

readme/Untitled%207.png

readme/Untitled%208.png

readme/Untitled%209.png

readme/Untitled%2010.png

Step 3.3. ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ์ƒ์„ฑ ๋ฐ ์—ฐ๊ฒฐ

Internet Gateway๋ฅผ ์ƒ์„ฑํ•˜๊ณ  VPC์— ์—ฐ๊ฒฐํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. VPC ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํด๋ฆญ ํ›„, ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2011.png

readme/Untitled%2012.png

์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ VPC์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ์ƒ์„ฑํ•œ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ VPC์— ์—ฐ๊ฒฐํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

mzc-game-ig๋ฅผ ์„ ํƒ ํ›„, ์ž‘์—… ํƒญ์„ ํ™•์žฅํ•˜์—ฌ VPC์— ์—ฐ๊ฒฐ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2013.png

VPC ์—ฐ๊ฒฐ ์„ค์ •์ฐฝ์—์„œ ์ƒ์„ฑํ•œ mzc-game-vpc๋ฅผ ์„ ํƒ ํ›„, ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด ์—ฐ๊ฒฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2014.png

Step 3.4. NAT ๊ฒŒ์ดํŠธ์›จ์ด ์ƒ์„ฑ

readme/NATGateway-001.png

readme/NATGateway-002.png

Step 3.5. ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ์„ค์ •

๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ์„ค์ •์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2015.png

๋จผ์ € ํผ๋ธ”๋ฆญ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2016.png

readme/Untitled%2017.png

readme/Untitled%2018.png

readme/Untitled%2019.png

readme/Untitled%2020.png

ํ”„๋ผ์ด๋น— ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

readme/RT-007.png

readme/Untitled%2021.png

readme/Untitled%2022.png

readme/Untitled%2023.png

readme/Untitled%2024.png

Step 4. ๋ณด์•ˆ ๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ

Step 4.1. Lambda ์—์„œ ์‚ฌ์šฉํ•  ๋ณด์•ˆ ๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ

readme/Untitled%2025.png

readme/SecurityGroup-002.png

readme/Untitled%2026.png

Step 4.2. RDS ์—์„œ ์‚ฌ์šฉํ•  ๋ณด์•ˆ ๊ทธ๋ฃน ์ƒ์„ฑ

readme/Untitled%2027.png

readme/Untitled%2028.png

readme/Untitled%2029.png

Step 5. IAM ์„ค์ •

Step 5.1. GameLift ์ •์ฑ… ๋งŒ๋“ค๊ธฐ

์ด ํ›„ ๋งŒ๋“ค ์—ญํ• ์—์„œ ์‚ฌ์šฉํ•  ์ •์ฑ…์„ GameLift ์ •์ฑ…์„ ์ƒ์„ฑ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

readme/Untitled%2030.png

์„œ๋น„์Šค์—์„œ GameLift๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ž‘์—…์—์„œ ๋ชจ๋“  GameLift ์ž‘์—… ์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค์—์„œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

readme/IAM-003.png

readme/Untitled%2031.png

readme/Untitled%2032.png

Step 5.2. Lambda๊ฐ€ ์‚ฌ์šฉํ•  ์—ญํ•  ๋งŒ๋“ค๊ธฐ

ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  Lambda๊ฐ€ 2๊ฐ€์ง€ ํ˜•ํƒœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift์™€ Networkํ•˜๋Š” Lambda ํ•จ์ˆ˜์™€ RDS ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Lambda ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 2๊ฐ€์ง€ Lambda ํ•จ์ˆ˜์—์„œ ์‚ฌ์šฉํ•  ์—ญํ• ์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์œผ๋‚˜ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ†ตํ•ฉ ์—ญํ• ์„ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค.

readme/Untitled%2033.png

readme/Untitled%2034.png

์•„๋ž˜์˜ ์ •์ฑ…๋“ค์„ ์ฐพ์•„์„œ ์ฒดํฌ ํ•œ ํ›„ ๋‹ค์Œ:ํƒœ๊ทธ๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

AmazonRDSDataFullAccess

AWSLambdaSQSQueueExecutionRole

AWSLambdaBasicExecutionRole

AWSLambdaVPCAccessExecutionRole

GameLiftFullAccess

readme/IAM-008.png

ํƒœ๊ทธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋‹ค์Œ:๊ฒ€ํ† ๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

readme/IAM-009.png

์—ญํ•  ์ด๋ฆ„์„ ์„ค์ • ํ›„ ์—ญํ•  ๋งŒ๋“ค๊ธฐ๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

readme/Untitled%2035.png

Step 5.3. Fleet ์ธ์Šคํ„ด์Šค์—์„œ ์‚ฌ์šฉํ•  ์—ญํ•  ๋งŒ๋“ค๊ธฐ

readme/IAM-010.png

readme/IAM-011.png

readme/IAM-012.png

readme/IAM-013.png

readme/IAM-014.png

readme/IAM-015.png

readme/IAM-016.png

์ƒ์„ฑ๋œ ์—ญํ•  mzc-game-gamelift-fleet-role์˜ ์—ญํ•  ARN ์„ ๋ฉ”๋ชจํ•ฉ๋‹ˆ๋‹ค.

Step 6. RDS ์ƒ์„ฑ

Step 6.1. RDS ์„œ๋ธŒ๋„ท ๊ทธ๋ฃน ์ƒ์„ฑ

์„œ๋ธŒ๋„ท ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

readme/RDS-001.png

์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ • ํ›„ ์ƒ์„ฑ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

readme/Untitled%2036.png

readme/Untitled%2037.png

Step 6.2. RDS ์ƒ์„ฑ

์•„๋ž˜์— ์—†๋Š” ์ˆ˜์ • ๋‚ด์šฉ์€ ์ „๋ถ€ default ๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

readme/Untitled%2038.png

readme/RDS-002.png

readme/Untitled%2039.png

DB ๋งˆ์Šคํ„ฐ ์•”ํ˜ธ๋Š” Admin1!! ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

readme/Untitled%2040.png

readme/Untitled%2041.png

์Šคํ† ๋ฆฌ์ง€ ์ž๋™ ์กฐ์ •์„ ๋น„ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2042.png

readme/RDS-006.png

readme/Untitled%2043.png

readme/Untitled%2044.png

์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜๋ฉด ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2045.png

Step 6.3. Cloud9 ์ƒ์„ฑ

DB, Table ์ƒ์„ฑ์„ Cloud9 ์œ„์—์„œ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

readme/Untitled%2046.png

readme/Untitled%2047.png

readme/Cloud9-003.png

Create environment ๋ฅผ ๋ˆŒ๋Ÿฌ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Step 6.4. Database, Table ์ƒ์„ฑ

์ƒ์„ฑ๋œ Cloud9์—์„œ DB ์—”๋“œํฌ์ธํŠธ๋กœ DB์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

mysql -h mzc-game-rds.cqoanobel0pg.ap-northeast-2.rds.amazonaws.com -u admin -p

readme/DBJob-001.png

Database๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

create database accounts;

readme/DBJob-002.png

์„œ๋ฒ„ ํ”„๋กœ์ ํŠธ์— ์žˆ๋Š” ํ…Œ์ด๋ธ” ์ƒ์„ฑ๋ฌธ์„ ๋ณต์‚ฌํ•ด์„œ ํ…Œ์ด๋ธ”์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค.

๋ถ™์—ฌ ๋„ฃ์–ด ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

(ctc-game-server\DBSchema\accounts\V1__create_table_users.sql)

use accounts;
CREATE TABLE `users` (
	`userid` INT(11) NOT NULL AUTO_INCREMENT,
	`nickname` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`win` INT(11) NULL DEFAULT NULL,
	`loss` INT(11) NULL DEFAULT NULL,
	`draw` INT(11) NULL DEFAULT NULL,
	`point` INT(11) NULL DEFAULT NULL,
	PRIMARY KEY (`userid`) USING BTREE,
	UNIQUE INDEX `UX_users_nickname` (`nickname`) USING BTREE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;

readme/DBJob-003.png

Step 7. Lambda ํ•จ์ˆ˜ ์ƒ์„ฑ (AccountJoin, Login, BattleResult)

Step 7.1. AccountJoin Lambda ํ•จ์ˆ˜ ์—…๋กœ๋“œ

readme/LambdaPublish-001.png

readme/LambdaPublish-002.png

readme/Untitled%2048.png

readme/LambdaPublish-004.png

readme/LambdaPublish-005.png

Step 7.2. Login Lambda ํ•จ์ˆ˜ ์—…๋กœ๋“œ

readme/Untitled%2049.png

readme/Untitled%2050.png

readme/LambdaPublicshLogin-003.png

readme/LambdaPublicshLogin-004.png

readme/Untitled%2051.png

Step 7.3. API Gateway, AccountJoin, Login ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

readme/Untitled%2052.png

readme/Untitled%2053.png

AccountJoin ์ƒ์„ฑ

readme/Untitled%2054.png

readme/Untitled%2055.png

readme/APIGateway-008.png

readme/Untitled%2056.png

readme/Untitled%2057.png

readme/Untitled%2058.png

readme/Untitled%2059.png

readme/APIGateway-013.png

URL ํ™•์ธ

readme/Untitled%2060.png

๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ Login๋„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค ์ƒ์„ฑ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„ : Login ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ : Login API Gateway CORS ํ™œ์„ฑํ™” ์ฒดํฌ ๋ฉ”์„œ๋“œ ์ƒ์„ฑ ANY Lambda ํ•จ์ˆ˜ : Login

API ๋ฐฐํฌ

๋ฐฐํฌ ์Šคํ…Œ์ด์ง€ : test

readme/Untitled%2061.png

Step 7.4. BattleResult ๋žŒ๋‹ค ํ•จ์ˆ˜ ์—…๋กœ๋“œ

Function Name : BattleResult

Assembly : BattleResult

Type : BattleResult.Function

Method : FunctionHandler

Role Name, VPC Subnets, Security Groups : AccountLogin๊ณผ ๋˜‘๊ฐ™์ด ์„ค์ •

readme/BattleResult-001.png

Step 7.5. SQS ์ƒ์„ฑ

readme/Untitled%2062.png

readme/Untitled%2063.png

๋‚˜๋จธ์ง€๋Š” ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ๋Œ€๊ธฐ์—ด ์ƒ์„ฑ ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2064.png

readme/Untitled%2065.png

SQS URL ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

readme/SQS-005.png

Step 8. ์„œ๋ฒ„ ๋ฐฐํฌ

Step 8.1. GameLift ์— ์„œ๋ฒ„ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ๋ณ€์ˆ˜ ์„ค์ •

GameLift์— ๋นŒ๋“œ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์—์„œ ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ๋ณ€์ˆ˜๋ฅผ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.

(Windows ๊ธฐ์ค€)

๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ • ๋ณด๊ธฐ > ํ™˜๊ฒฝ ๋ณ€์ˆ˜ > ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ(์‚ฌ์šฉ์ž ๋ณ€์ˆ˜)

readme/Environment-001.png

readme/Environment-002.png

Step 8.2. Code ์ˆ˜์ • ์‚ฌํ•ญ

์„œ๋ฒ„ ๋ฐฐํฌ ์ „ ํ•˜๋“œ ์ฝ”๋”ฉ ๋œ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

\ctc-game-server\BattleServer\Game\Room\Room.cs

์œ„ ๊ฒฝ๋กœ์˜ ํŒŒ์ผ์—์„œ BattleResultSendToSQS ํ•จ์ˆ˜์—์„œ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

public void BattleResultSendToSQS(PlayerType winPlayer)
{
    var sqsConfig = new AmazonSQSConfig();
    sqsConfig.ServiceURL = "https://sqs.ap-northeast-2.amazonaws.com/831150897155/mzc-game-sqs";
    sqsConfig.RegionEndpoint = RegionEndpoint.APNortheast2;
    var credential = new BasicAWSCredentials("AccessKey", "SecretKey");
    var sqsClient = new AmazonSQSClient(credential, sqsConfig);

    SQSClientSendMessage(sqsClient, PlayerType.Player1, winPlayer);
    SQSClientSendMessage(sqsClient, PlayerType.Player2, winPlayer);
}

์•„๋ž˜ ๋ถ€๋ถ„์„ SQS URL๊ณผ ์ž์‹ ์˜ AccessKey, SecretKey๋กœ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2066.png

SQSClientSendMessage ํ•จ์ˆ˜์—์„œ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

private void SQSClientSendMessage(AmazonSQSClient sqsClient, PlayerType player, PlayerType winPlayer)
{
    sqsClient.SendMessageAsync(new SendMessageRequest(
        "https://sqs.ap-northeast-2.amazonaws.com/831150897155/mzc-game-sqs",
        JsonConvert.SerializeObject(new CommonProtocol.SqsBattleResult
        {
            UserId = _players[player].Session.UserId,
            WinType = GetWinType(player, winPlayer)
        })));
}

์•„๋ž˜ ๋ถ€๋ถ„์—์„œ SQS URL์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

readme/Code-002.png

URL๊ณผ Credentials ์ฐธ์กฐ ๋ถ€๋ถ„์€ ๋‹ค๋ฅธ ๋ฐฉ์‹(Config, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ฐธ์กฐ ๋“ฑ)์œผ๋กœ ๊ฐœ์„  ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Step 8.3. GameLift ์— ์—…๋กœ๋“œํ•  ์„œ๋ฒ„ ๋นŒ๋“œ

๋นŒ๋“œ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2067.png

Step 8.4. GameLift์— ์—…๋กœ๋“œํ•  ๋Œ€์ƒ ํŒŒ์ผ๋“ค์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์˜์กด์„ฑ ํŒŒ์ผ ๋ณต์‚ฌ

์•„๋ž˜ ๊ฒฝ๋กœ 2๊ฐœ์˜ ํŒŒ์ผ์„

\ctc-game-server\BattleServer\Dependency\install.sh

\ctc-game-server\BattleServer\Dependency\NDP472-KB4054530-x86-x64-AllOS-ENU.exe

์•„๋ž˜์˜ ๊ฒฝ๋กœ์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

\ctc-game-server\BattleServer\bin\Debug

Step 8.5. GameLift์— ์„œ๋ฒ„ ๋ฐ”์ด๋„ˆ๋ฆฌ, ์˜์กด์„ฑ ํŒŒ์ผ ์—…๋กœ๋“œ

GameLift์— ๋นŒ๋“œ๋ฅผ ์—…๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค.

\ctc-game-server\scripts\GameLift\01-GameLift-UploadBuild.sh ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2068.png

์‹คํ–‰ ํ›„ ๋‚˜์˜จ Build ID ๋ฅผ ๋ฉ”๋ชจํ•ฉ๋‹ˆ๋‹ค.

Step 8.6. ํ”Œ๋ฆฟ ์ƒ์„ฑ

ํ”Œ๋ฆฟ ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

(\ctc-game-server\scripts\GameLift\02-GameLift-CreateFleet.sh)

Build ID๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

์œ„์—์„œ ์ƒ์„ฑํ•œ ์—ญํ•  mzc-game-gamelift-fleet-role์˜ ์—ญํ•  ARN ์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

readme/ServerDeploy-003.png

\ctc-game-server\scripts\GameLift\02-GameLift-CreateFleet.sh ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

GameLift ๋Œ€์‹œ๋ณด๋“œ๋กœ ์ด๋™ํ•˜๋ฉด ์—…๋กœ๋“œํ•œ ๋นŒ๋“œ์™€ ์ƒ์„ฑํ•œ ํ”Œ๋ฆฟ์ด ๋ณด์ž…๋‹ˆ๋‹ค.

readme/Untitled%2069.png

ํ”Œ๋ฆฟ ์ƒ์„ฑ ์™„๋ฃŒ๊นŒ์ง€ ์•ฝ 20๋ถ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ฆฟ ์ƒ์„ฑ๊ณผ์ •์—์„œ GameLift ์™€ ํ†ต์‹ ํ•˜๋Š” ํ•„์ˆ˜ ํ†ตํ•ฉ ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift๋Š” ํ”Œ๋ฆฟ ์ธ์Šคํ„ด์Šค์˜ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค์™€ ํ…Œ์ŠคํŠธ ํ†ต์‹ ์„ ํ†ตํ•ด์„œ ํ†ตํ•ฉ ์ฝ”๋“œ๋ฅผ ์ž˜ ๊ตฌํ˜„ ํ–ˆ๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด ํ™œ์„ฑ(Activate) ์ƒํƒœ๋กœ ๊ฐ€์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ์ž„์—๋„ ํ™œ์„ฑ ์ƒํƒœ๋กœ ๊ฐ€์ง€ ๋ชปํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ํ™œ์„ฑํ™”ํ•˜๋Š” ์ค‘(Activating) ์ƒํƒœ๊ฐ€ ์˜ค๋ž˜ ์ง€์†๋˜๋ฉด ๋‹ค์‹œ ํ”Œ๋ฆฟ ์ƒ์„ฑ์„ ํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ฆฟ์ด ์ •์ƒ์ ์œผ๋กœ ํ™œ์„ฑํ™” ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ ํƒญ์—์„œ ํ”Œ๋ฆฟ ์ƒ์„ฑ ๊ณผ์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋ฆฟ ID๋ฅผ ๋ฉ”๋ชจํ•ฉ๋‹ˆ๋‹ค.

readme/ServerDeploy-005.png

์ด์ œ ํ”Œ๋ฆฟ๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Step 9. Lambda ํ•จ์ˆ˜ ์ƒ์„ฑ (CreateGame, CreatePlayer, SearchGame)

ํ•ด๋‹น ํ•จ์ˆ˜๋“ค์€ ํ”Œ๋ฆฟ ID๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ํ”Œ๋ฆฟ ์ƒ์„ฑ ์‹œ๋„ ํ›„ ID๊ฐ€ ๋‚˜์˜ค๋ฉด ์ƒ์„ฑ์„ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Step 9.1. CreateGame, CreatePlayer, SearchGame, Lambda ํ•จ์ˆ˜ ์—…๋กœ๋“œ

CreateGame ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ ์—…๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2070.png

readme/ForGameLiftFuntcionUpload-002.png

readme/Untitled%2071.png

readme/Untitled%2072.png

readme/ForGameLiftFuntcionUpload-005.png

CreatePlayer, SearchGame ๋žŒ๋‹ค ํ•จ์ˆ˜๋„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์—…๋กœ๋“œ ํ•ฉ๋‹ˆ๋‹ค.

readme/Untitled%2073.png

CreatePlayer

Function Name : CreateGame

Assembly : CreatePlayer

Type : CreatePlayer.Function

Method : FunctionHandler

Role Name, VPC Subnets, Security Groups : CreateGame๊ณผ ๋˜‘๊ฐ™์ด ์„ค์ •

Variable : GAMELIFT_FLEET_ID

Value : ํ”Œ๋ฆฟ ID (fleet-0f9b2bb2-53bc-424a-8682-0xxxxxxxxxxxx)

SearchGame

Function Name : SearchGame

Assembly : SearchGame

Type : SearchGame.Function

Method : FunctionHandler

Role Name, VPC Subnets, Security Groups : CreateGame๊ณผ ๋˜‘๊ฐ™์ด ์„ค์ •

Variable : GAMELIFT_FLEET_ID

Value : ํ”Œ๋ฆฟ ID (fleet-0f9b2bb2-53bc-424a-8682-0xxxxxxxxxxxx)

Step 9.2. API Gateway, CreateGame, CreatePlayer, SearchGame ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ

์œ„์—์„œ AccountJoin, Login ์ƒ์„ฑํ–ˆ๋˜๊ฒƒ ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ CreateGame, CreatePlayer, SearchGame ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค ์ƒ์„ฑ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„ : CreateGame ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ : CreateGame API Gateway CORS ํ™œ์„ฑํ™” ์ฒดํฌ

๋ฉ”์„œ๋“œ ์ƒ์„ฑ ANY Lambda ํ•จ์ˆ˜ : CreateGame

API ๋ฐฐํฌ

๋ฐฐํฌ ์Šคํ…Œ์ด์ง€ : test

๋ฆฌ์†Œ์Šค ์ƒ์„ฑ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„ : CreatePlayer ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ : CreatePlayer API Gateway CORS ํ™œ์„ฑํ™” ์ฒดํฌ

๋ฉ”์„œ๋“œ ์ƒ์„ฑ ANY Lambda ํ•จ์ˆ˜ : CreatePlayer

API ๋ฐฐํฌ

๋ฐฐํฌ ์Šคํ…Œ์ด์ง€ : test

Step 10. ํด๋ผ์ด์–ธํŠธ

Step 10.1. Client Config ์ˆ˜์ •

๊ฒฝ๋กœ : \ctc-game-client\Assets\Resources\Dev\Connect.json

Address ๋ถ€๋ถ„์„ API Gateway URL ํ™•์ธํ•œ ๊ฒฝ๋กœ๋กœ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

{
  "GameServer": {
    "Address": "https://a9j3pkj9j9.execute-api.ap-northeast-2.amazonaws.com/test/"
  }
}

Step 10.2. Client Build

readme/ClientBuild-001.png

readme/ClientBuild-002.png

Build ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ์ข…์† ํŒŒ์ผ์— ์ƒ์„ฑ๋  ํด๋”๋ฅผ ์ƒ์„ฑ ํ›„ ์ƒ์œ„ ๊ฒฝ๋กœ์—์„œ ํด๋” ์„ ํƒ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

readme/Untitled%2074.png

Step 11. Play

readme/Untitled%2075.png

2๊ฐœ์˜ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ  ๊ฐ€์ž…ํ•ฉ๋‹ˆ๋‹ค. API ํ˜ธ์ถœ ์‹œ cold start delay๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ์ชฝ ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๋ฐฉ ๋งŒ๋“ค๊ธฐ๋ฅผ ํ•˜๊ณ 

๋‹ค๋ฅธ ์ชฝ ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๋ฐฉ ๊ฒ€์ƒ‰์„ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒ€์ƒ‰๋œ ์ด๋ฆ„์„ ํด๋ฆญํ•˜๋ฉด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ƒ๋‹จ์— ์žˆ๋Š” ์ดˆ๊ฐ€ 0์ด ๋˜์—ˆ์„ ๋•Œ ์ตœ๊ทผ์— ๋ˆŒ๋ €๋˜ ๊ฐ€์œ„, ๋ฐ”์œ„, ๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์ƒ๋Œ€๋ฐฉ๊ณผ ๋น„๊ตํ•˜์—ฌ ์ŠนํŒจ ํŒ์ •์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

5 ๋ผ์šด๋“œ๊ฐ€ ์ง„ํ–‰๋˜๋ฉฐ 3์„  ์Šน์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

readme/Untitled%2076.png

๊ฒŒ์ž„์ด ๋๋‚˜๊ณ  DB๋ฅผ ์กฐํšŒ ํ•ด ๋ณด๋ฉด ์Šน๋ฆฌ, ํŒจ๋ฐฐ, ๋ฌด์Šน๋ถ€ ์นด์šดํŠธ ๋ฐ ์ ์ˆ˜ ๊ฐ’์ด ๋ฐ˜์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

readme/Play-003.png

Step 12. Next

Step 12.1. Queue, Alias, Rule Set

Step 12.2. IoC

Step 12.3. CI/CD

Step 12.4. ํ•˜๋“œ ์ฝ”๋”ฉ ๋ถ€๋ถ„ ์ˆ˜์ •

ํ•˜๋“œ ์ฝ”๋”ฉ๋œ ๋ถ€๋ถ„ ์ˆ˜์ • ํ›„ CI/CD์— ํ†ตํ•ฉ

Step 12.5. ๋กœ๊ทธ ์ˆ˜์ง‘

readme/FleetLog-001.png

Game Serverย ์˜ ๊ฐย Fleetย ์—์„œย Kinesis Data Firehoseย ๋ผ๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ€์žฅ ์‰ฝ๊ณ  ์•ˆ์ •์ ์œผ๋กœย S3ย ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Kinesis Data Firehoseย ๋ฅผ ์‚ฌ์šฉํ•˜์‹ ๋‹ค๋ฉด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฒŒ์ž„ ์„œ๋ฒ„์—์„œ ๋ฐœ์ƒํ•˜์‹œ๋Š” ๋กœ๊ทธ๋ฅผ ๋ณ„๋„์˜ ์ธํ”„๋ผ ๊ด€๋ฆฌ์˜ ํ•„์š”์—†์ดย S3ย ๋กœ ์ค€์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ง์”€๋“œ๋ฆฐ ๊ฒƒ์ฒ˜๋Ÿผย Kinesis Data Firehoseย ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฒ„ํผ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, 1-128MBย ๋‹จ์œ„๋กœ ๊ฐ’์„ ์ง€์ •ํ•ด์„œ ๋ฒ„ํผ ํฌ๊ธฐ ๊ธฐ์ค€ ๋˜๋Š”ย 60-900์ดˆ ๊ฐ„๊ฒฉ ์‚ฌ์ด์—์„œ ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ๋ฒ„ํผ ์‹œ๊ฐ„ ๊ธฐ์ค€์œผ๋กœย S3ย ์— ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ€์žฅ ์‹ค์‹œ๊ฐ„์„ฑ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ ์Œ“์ด๋Š” ์‹œ๊ฐ„์ดย 1๋ถ„,ย ๋ฐ์ดํ„ฐ ์Œ“์ด๋Š” ์–‘์ดย 1MBย ์ค‘ ๋” ๋น ๋ฅธ ์‹œ๊ฐ„์•ˆ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์‹ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

(https://docs.aws.amazon.com/ko_kr/firehose/latest/dev/what-is-this-service.html)

(https://docs.aws.amazon.com/ko_kr/firehose/latest/dev/basic-deliver.html)

S3ย ์— ์ ์žฌํ•˜์‹  ์ดํ›„์—๋Š”ย S3ย ๋ฅผ ์ค‘์‹ฌย Data Lakeย ๋กœ ์‚ฌ์šฉํ•˜์‹œ๊ฑฐ๋‚˜,ย ๋ชฉํ‘œํ•˜์‹œ๋Š” ๋ฐ”๋Œ€๋กœ ๋น…์ฟผ๋ฆฌ๋กœ ์˜ฎ๊ธฐ์…”์„œ ์ค‘์•™ ๊ด€๋ฆฌํ•˜์‹ค ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ์ด ์žˆ์œผ์‹ค ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

Step 13. ETC

Step 13.1. Amazon GameLift Primer Script

Amazon GameLift Primer ๊ณผ์ •์€ GameLift๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ณผ์ •์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

  • Amazon GameLift Primer(๊ฐœ์š”)

    Amazon GameLift Primer๋ฅผ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Amazon์—์„œ ๊ธฐ์ˆ  ๊ต์œก ๊ณผ์ • ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ย ์ด ๊ณผ์ •์˜ ์ง„ํ–‰์„ ๋งก์€ Tom Stern์ž…๋‹ˆ๋‹ค.

    ์ด ๊ณผ์ •์—์„œ๋Š” Amazon GameLift, ์ด ์„œ๋น„์Šค ์ฃผ์š” ๊ธฐ๋Šฅ๊ณผ ๊ฒŒ์ž„์—์„œ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

    GameLift๋Š” ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ…์„ ์œ„ํ•œ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์€ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•  EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ์ง€๋งŒ GameLift๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ ์ด์ƒ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. GameLift๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์„ธ์…˜ ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ์ „์šฉ ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ˜ธ์ŠคํŒ…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ •๊ตํ•œ ์ œ์–ด ๊ธฐ๋Šฅ์œผ๋กœ ๊ฒŒ์ž„ ํ˜ธ์ŠคํŠธ ์ธ์Šคํ„ด์Šค์˜ ํ”Œ๋ฆฟ์„ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ๋น„์šฉ์„ ์ œ์–ดํ•˜๋ฉด์„œ ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ์†๋„๋ฅผ ๊ณ ๋ คํ•ด ๋ฆฌ์ „์— ๊ฒŒ์ž„์„ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค..

    GameLift๋Š” ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์˜ ํ”Œ๋ ˆ์ด์–ด ์š”์ฒญ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์ •๊ตํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์ตœ์ ์˜ ๋งค์น˜๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. GameLift๋Š” ํ™•์žฅ์„ฑ, ์œ ์—ฐ์„ฑ ๋ฐ ๋น„์šฉ ํšจ์œจ์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.

    ์ด ๊ณผ์ •์˜ ๊ธฐ๋ณธ์ ์ธ ๋ชฉํ‘œ๋Š” GameLift๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ… ์š”๊ตฌ ์‚ฌํ•ญ

    GameLift์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๊ฒŒ์ž„์šฉ์œผ๋กœ ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ๋งค์šฐ ๊ธฐ์ˆ ์ ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋จผ์ € ์ปจํ…์ŠคํŠธ ๋ฐ ๋ฐฐ๊ฒฝ ์ •๋ณด๋ฅผ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    ์ƒˆ ๊ฒŒ์ž„์„ ์ž‘์—… ์ค‘์ธ ๊ฒŒ์ž„ ์ŠคํŠœ๋””์˜ค์˜ ์˜ˆ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์‹ญ์‹œ์˜ค.

    ์ด ์ŠคํŠœ๋””์˜ค์—์„œ๋Š” ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์„ ๊ฐœ๋ฐœ ์ค‘์ด์—ˆ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„์ด ์ค€๋น„๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜์—ˆ๊ณ 

    ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ํŒ€์›๋“ค์€ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ ์‚ฌ๋žŒ๋“ค์ด ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๋Š” ๊ฒƒ์„ ์ง€์ผœ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ†ต์‹  ์ง€์—ฐ์€ ์•„์ฃผ ์งง์Šต๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์˜๊ฒฌ์€โ€ฆ

    โ€ฆ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค!

    ์ข‹์€ ์†Œ์‹์ž…๋‹ˆ๋‹ค. ์ด์ œ ๊ฒŒ์ž„์„ ํ•œ ์ˆ˜์ค€ ์œ„๋กœ ๋Œ์–ด์˜ฌ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„์„ ์„ฑ์žฅ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

    ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ์ˆ˜์˜ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ง€์›ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋” ๋งŽ์€ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ํ˜ธ์ŠคํŒ…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ์ผ์€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋น„์šฉ ํšจ์œจ์„ฑ๋„ ์ค‘์š”ํ•˜๋ฏ€๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ„ํŽธํ•œ ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•œ ํŒจ์น˜๋‚˜ ๊ฒŒ์ž„์— ์ถ”๊ฐ€๋œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ƒˆ๋กœ์šด ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ตœ์‹  ๋ฒ„์ „์˜ ๊ฒŒ์ž„์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ธฐ์กด ํ”Œ๋ ˆ์ด์–ด๋Š” ์‹คํ–‰ ์ค‘์ธ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋น„์Šค๊ฐ€ ๊ณ„์† ์‹คํ–‰๋˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜๋Š” ๋™์•ˆ ๊ฒŒ์ž„์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•ˆ์ •์ ์ธ ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ์ถฉ๋Œํ•˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋”๋ผ๋„ ์ „์ฒด ๊ฒŒ์ž„ ์„œ๋น„์Šค๊ฐ€ ๋‹ค์šด๋˜๋Š” ์ผ์€ ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๋Š” ๋‹ค์‹œ ๋กœ๊ทธ์ธํ•˜์—ฌ ๊ณ„์† ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ๊ฒŒ์ž„์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ์Šคํ…œ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์— ํ•„์š”ํ•œ ์š”์†Œ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

    ๋จผ์ €, ๋งค์น˜๋ฉ”์ดํ‚น์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์€ ํ”Œ๋ ˆ์ดํ•˜๋ ค๋Š” ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ํ˜ธ์ŠคํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์•„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ดํ‚น์€ ๊ทœ์น™ ์„ธํŠธ๋ฅผ ์ ์šฉํ•˜์—ฌ ์ ์ ˆํ•œ ๋งค์น˜์™€ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ๋งค์น˜, ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ๋งค์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์ „์— ์ ์ ˆํ•œ ๋งค์น˜๋ฅผ ์ฐพ๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ๊ณผ ๊ฐ™์€ ํŠน์„ฑ์ด๋‚˜ ํž˜, ์†๋„ ๋ฐ ์Šคํ‚ฌ๊ณผ ๊ฐ™์€ ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•œ ๊ทœ์น™์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋งˆ์ง€๋ง‰์œผ๋กœ, ํŠน์ • ์ˆ˜์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ•„์š”ํ•˜๋„๋ก ๊ฒŒ์ž„์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ํฌ์ง€์…˜์„ ๊ฐ€์ง„ ํŒ€์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์ฒด ๋งค์น˜๋ฉ”์ดํ‚น ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ GameLift FlexMatch์™€ ๊ฐ™์ด ์„œ๋น„์Šค๋กœ ์ œ๊ณต๋˜๋Š” ๋งค์น˜๋ฉ”์ดํ‚น์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋Š ๊ฒฝ์šฐ๋“  ๋งค์น˜๋ฉ”์ดํ‚น์€ ์ผ๋ฐ˜์ ์ธ ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ… ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

    ํŠน์ • ์ˆ˜์˜ ํŒ€ ๋˜๋Š” ํŠน์ • ํ”Œ๋ ˆ์ด์–ด ์žฌ๋Šฅ์„ ๊ฐ€์ง„ ํŒ€์— ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ฐฐ์ •ํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ํ”Œ๋ ˆ์ด์–ด๋กœ ํŒ€์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์Šคํฌ์ธ  ํŒ€์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด์™€ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์„ ๊ฐ€์ง„ ๊ณจํ‚คํผ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ํŒ€ ์—ญํ•  ๋˜๋Š” ํฌ์ง€์…˜์ด ์ž๊ฒฉ์„ ๊ฐ–์ถ˜ ํ”Œ๋ ˆ์ด์–ด๋กœ ์ฑ„์›Œ์ง€๋„๋ก ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ํŒ€ ๋ฐ ํŒ€ ์—ญํ• ์„ ์ •์˜ํ•˜๊ณ  ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํŒ€์— ๋ฐฐ์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ…์˜ ์ผ๋ฐ˜์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

    ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋กœ์ปฌ ์˜์—ญ ๋„คํŠธ์›Œํฌ์—์„œ ํ”Œ๋ ˆ์ดํ•  ๋•Œ๋Š” ์ง€์—ฐ์ด ๊ฑฐ์˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„์„ ํ™•์žฅํ•˜๊ณ  ๊ธ€๋กœ๋ฒŒํ™”ํ•˜๋ฉด ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ์ด ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ ์€ ์ง€์—ฐ์‹œ๊ฐ„์œผ๋กœ ์ธํ•ด ํ”Œ๋ ˆ์ด์–ด ์ฐธ์—ฌ๋„์™€ ๋ฆฌํ…์…˜์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ง€๋ฆฌ์ ์œผ๋กœ ํ”Œ๋ ˆ์ด์ด์™€ ๊ฐ€๊นŒ์šด ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋„ ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ…์˜ ์ผ๋ฐ˜์ ์ธ ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฅผ ์ฐพ์€ ํ›„์—๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์„ ์–ด๋”˜๊ฐ€์—์„œ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”Œ๋ ˆ์ด์–ด ์ฐธ์—ฌ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ๊ฒŒ์ž„์„ ์„ฑ์žฅ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์œ ์น˜ํ•˜๊ณ  ์œ ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ํ›Œ๋ฅญํ•œ ๊ฒŒ์ž„ ๊ฒฝํ—˜์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜์—๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์š”๊ตฌ ์‚ฌํ•ญ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ์šด์˜ํ•˜๋ ค๋ฉด ์—ฌ๋Ÿฌ ์กฐ์ง์— ์ ์ ˆํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์š”๊ตฌ ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๋Š” ์†”๋ฃจ์…˜์ด ์ ์ ˆํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์˜์‚ฌ ๊ฒฐ์ •, ์ ์ ˆํ•œ ๊ฒŒ์ž„ ์„ค๊ณ„ ์˜์‚ฌ ๊ฒฐ์ • ๋ฐ ์ ์ ˆํ•œ ์šด์˜ ์˜์‚ฌ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์š”๊ตฌ ์‚ฌํ•ญ์€ ๊ฐ€๊ฒฉ ํˆฌ๋ช…์„ฑ์ž…๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค์— ๋Œ€ํ•œ ๊ฑด์ „ํ•œ ์žฌ๋ฌด ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ€๊ฒฉ ์ฑ…์ •์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ •๋ณด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋ฅ ์„ ์Šค๋งˆํŠธํ•˜๊ฒŒ ์˜ˆ์ธกํ•˜๊ณ  ์‚ฌ์šฉ๋œ ๋ฆฌ์†Œ์Šค์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๋‹คํ–‰ํžˆ Amazon GameLift๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ์„ ํ›จ์”ฌ ๋” ์‰ฝ๊ฒŒ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Amazon GameLift์˜ ์ฃผ์š” ์ด์ 

    GameLift๋Š” ๊ฒŒ์ž„ ์„œ๋น„์Šค์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์—ฌ๋Ÿฌ ๋‹จ์›์—์„œ๋Š” GameLift๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์˜ ์œ ์—ฐ์„ฑ๊ณผ ๋ฒ”์œ„์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒ ํ™•์žฅ์„ฑ๊ณผ ํ•„์š”์— ๋”ฐ๋ผ ํƒ„๋ ฅ์ ์œผ๋กœ ์ธํ”„๋ผ๋ฅผ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์€ ๊ฒŒ์ž„ ์ŠคํŠœ๋””์˜ค์—์„œ ๊พธ์ค€ํžˆ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

    GameLift์˜ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๋‘ ๊ฐ€์ง€ ์ด์ ์ด ๋ฐ”๋กœ โ€œ์˜จ๋””๋งจ๋“œ ๊ฒŒ์ž„ ์„ธ์…˜โ€๊ณผ โ€œ๊ธ€๋กœ๋ฒŒ ๋ฐฐํฌโ€์ž…๋‹ˆ๋‹ค. ์˜จ๋””๋งจ๋“œ ๊ฒŒ์ž„ ์„ธ์…˜์€ ๋ณ€ํ™”ํ•˜๋Š” ํ”Œ๋ ˆ์ด์–ด ์ˆ˜์š”์— ๋”ฐ๋ผ ํ™•์žฅํ•˜๊ณ  ์ถ•์†Œํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ธํ”„๋ผ๋ฅผ ํ†ตํ•ด ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ•ญ์ƒ ์ถฉ๋ถ„ํ•œ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์žฅ๋น„์— ๋Œ€ํ•œ ์ž๋ณธ ํˆฌ์ž ๋Œ€์‹  ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ๋น„์šฉ์„ ์ง€๋ถˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒ ๋ฐฐํฌ๋Š” ์—ฌ๋Ÿฌ ๋ฆฌ์ „์— GameLift ์†”๋ฃจ์…˜์„ ๋ฐฐํฌํ•˜์—ฌ ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. GameLift์—์„œ๋Š” ํ• ์ธ๋œ ์š”๊ธˆ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธ€๋กœ๋ฒŒ ๋ฐฐํฌ์˜ ๋น„์šฉ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ์€ ์‹œ์žฅ ์ž…์ฐฐ์— ์˜ํ•ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค. GameLift๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ํ”Œ๋ ˆ์ด์–ด ๊ทผ์ฒ˜์— ๋ฐฐ์น˜ํ•˜๊ณ  ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ทผ์ฒ˜์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋กœ ์—ฐ๊ฒฐํ•จ์œผ๋กœ์จ ์ตœ์ƒ์˜ ๊ฒŒ์ž„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ์šฉ๋Ÿ‰์„ ์ถ”์ธกํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. GameLift์˜ ๊ธฐ๋Šฅ์€ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜์š”์— ๋”ฐ๋ผ ์šฉ๋Ÿ‰์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์šฉ๋Ÿ‰์„ ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๋ถ„ ์•ˆ์— ์šฉ๋Ÿ‰์„ ์ผœ๊ณ  ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ์ฃผ๊ฐ€ ์†Œ์š”๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋˜๋Š” ์ฝ”๋กœ์ผ€์ด์…˜ ์†”๋ฃจ์…˜๊ณผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์ด์ ์€ ์‚ฌ์ „ ํ•˜๋“œ์›จ์–ด ํ”„๋กœ๋น„์ €๋‹ ๋ฐ ์‹œ์ž‘ ๋น„์šฉ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ๋ฌธ์ œ๋„ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค. ์ฆ‰, ํ”„๋กœ๋น„์ €๋‹ ๋ถ€์กฑ์œผ๋กœ ์ธํ•œ ํ”Œ๋ ˆ์ด์–ด ๋ถˆ๋งŒ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.. ์ง€์—ฐ์ด ์งง๊ธฐ ๋•Œ๋ฌธ์— ํ”Œ๋ ˆ์ด์–ด ๊ฒฝํ—˜์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

    ์ˆ˜์ตํ™”์™€ ๋น„์šฉ์ด ๊ฐ™์€ ์ˆ˜์ค€์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • GameLift ์ดํ•ด

    Amazon GameLift์—์„œ๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. GameLift๋Š” 4๊ฐœ์˜ ๊ฐœ๋ณ„์ ์ด์ง€๋งŒ ์ƒํ˜ธ ์˜์กด์ ์ธ ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. GameLift๋Š” ์—ฌ๋Ÿฌ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”์—์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ GameLift์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์„ธ ๊ฐ€์ง€ ๊ฐœ๋ณ„ ํ˜‘๋ ฅ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Amazon GameLift๋Š” ์„œ๋น„์Šค์ธ ๋™์‹œ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค.

    ์„œ๋น„์Šค๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ˆ˜๋„์‹œ์„ค์„ ์ƒ๊ฐํ•ด๋ณด์‹ญ์‹œ์˜ค. ๋ฌผ์€ ์ˆ˜๋„์‹œ์„ค์„ ํ†ตํ•ด ์ฃผํƒ์œผ๋กœ ๊ณต๊ธ‰๋˜๋ฉฐ ์ˆ˜๋„๊ผญ์ง€์—์„œ ๋‚˜์˜ต๋‹ˆ๋‹ค. ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์€ ์—†์Šต๋‹ˆ๋‹ค. ์†Œ๊ธˆ๋ฌผ์ด๋‚˜ ๋‹ด์ˆ˜ ๋˜๋Š” ํƒ„์‚ฐ์ˆ˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋ฌผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ์ž๋Š” ์ด ์„œ๋น„์Šค์— ์ž‘์—… ๋ฐฉ๋ฒ•์„ ์ง€์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ชฉ์š”์ผ์—๋Š” ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•˜๊ฑฐ๋‚˜ ํ† ์š”์ผ์—๋Š” ์ˆ˜์••์„ ๋†’์ด๋ผ๋Š” ๋“ฑ์˜ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    ์—๊ฒŒ ์ž‘์—… ๋ฐฉ๋ฒ•์„ ์ง€์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ€œ๋ฐ”๋‹๋ผ ์„ธ ํŽŒํ”„ ๋Œ€์‹  ํ•œ ํŽŒํ”„๋งŒ ๋„ฃ๊ณ  ์ “์ง€ ๋ง๊ณ  ํ”๋“ค์–ด ์ฃผ์„ธ์š”โ€๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ โ€œํ”Œ๋ ˆ์ธ ๋ผ์ง€ ์ปคํ”ผโ€๋ฅผ ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋น„์Šค๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นจ์œผ๋กœ์จ ๊ฒฐ๊ณผ์— ๋ง‰๋Œ€ํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Amazon GameLift๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋กœ ์„ค๋ช…๋˜์ง€๋งŒ ์ผ๋ถ€๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ณ  ๋‹ค๋ฅธ ์ผ๋ถ€๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์—†์œผ๋ฉฐ ์ง€์นจ๊ณผ ์„œ๋น„์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์ง€ ์•Š๋Š” ํ•œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    GameLift์˜ ๊ธฐ๋Šฅ, ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๋ฐ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ ์†”๋ฃจ์…˜์— ์ œ๊ณตํ•˜๋Š” ์ด์ ์„ ์ดํ•ดํ•˜๋ ค๋ฉด GameLift์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ํƒ์ƒ‰ํ•˜๊ณ  ์œ ํ‹ธ๋ฆฌํ‹ฐ์™€ ๊ฐ™์€ ๋ถ€๋ถ„, ์‚ฌ์šฉ์ž ์ง€์ •์ด ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„ ๋ฐ ์‚ฌ์šฉ์ž์˜ ์ง€์‹œ์— ๋”ฐ๋ฅด๋Š” ๋ถ€๋ถ„์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

    Amazon GameLift๋Š” ๋ฉ€ํ‹ฐ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. GameLift๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๊ณ  ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œ ์—ฌ๋Ÿฌ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฒŒ์ž„ ์„ธ์…˜์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. GameLift์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ•ด๋‹น ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์— ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ์›์—์„œ๋Š” GameLift ์‹œ์Šคํ…œ๊ณผ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ๋ฐฐ์›๋‹ˆ๋‹ค. GameLift๋Š” ์‹ฑ๊ธ€ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์„œ๋น„์Šค๋Š” ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด์šฉ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    GameLift๋Š” 4๊ฐœ์˜ ๊ฐœ๋ณ„์ ์ด์ง€๋งŒ ์ƒํ˜ธ ์˜์กด์ ์ธ ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ณ„์ธต์€ ๊ทธ ์•„๋ž˜์˜ ๊ณ„์ธต์„ ์‚ฌ์šฉํ•˜๋ฉฐ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ดํ‚น์€ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๋ ค๋Š” ํ”Œ๋ ˆ์ด์–ด์™€ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์„ ํ˜ธ์ŠคํŒ…ํ•  ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์„ธ์…˜ ๊ด€๋ฆฌ๋Š” ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜๊ณ  ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์ฐธ์—ฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

    ์ธํ”„๋ผ ๊ด€๋ฆฌ๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„์— ๋Œ€ํ•œ ํƒ„๋ ฅ์ ์ธ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ์ƒ์œ„ ์Šคํƒ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก GameLift๋Š” ์ž์œ ๋„์™€ ์‚ฌ์šฉ์ž ์ง€์ • ๊ฐ€๋Šฅ์„ฑ์ด ์ฆ๊ฐ€ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. GameLift๋Š” ๊ธฐ์กด์˜ ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ๋‹ฌ๋ฆฌ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ์ด ๋งค์šฐ ๋งŽ๊ณ  ์•„์ฃผ ์œ ์—ฐํ•ฉ๋‹ˆ๋‹ค. GameLift์—์„œ๋Š” ๋งŽ์€ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์‹œ๊ธฐ๋Š” ์ฝ”๋“œ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. GameLift์— ์ž‘์—… ๋ฐฉ๋ฒ•์„ ์ง€์‹œํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. GameLift๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์€ GameLift๊ฐ€ ๊ฒŒ์ž„์— ํ•„์š”ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋„๋ก ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ์ธํ”„๋ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ ์ปดํ“จํŒ…, ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋„คํŠธ์›Œํ‚น ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. GameLift๋Š” EC2๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์€ ์—ฌ๋Ÿฌ ๋ฆฌ์ „์—์„œ EC2 ์ธ์Šคํ„ด์Šค ํ”Œ๋ฆฟ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ EC2 ์ธ์Šคํ„ด์Šค์— ์„ค์น˜๋œ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๊ตฌ์ถ•๋œ ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜์€ ์ธํ”„๋ผ ๊ด€๋ฆฌ์™€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๊ฐ„์˜ ๊ฒฝ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ๋กœ๋“œ ๋ฐ ์‹œ์ž‘ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ๋ฐ ๊ต์ฒด ๋“ฑ ํ”„๋กœ์„ธ์Šค์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ž‘์—…์€ ์ธํ”„๋ผ ๊ด€๋ฆฌ์— ์†ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ์ž์ฒด์™€ ๊ด€๋ จ์ด ์žˆ๋Š” ๋ชจ๋“  ์ž‘์—…(์˜ˆ: ํ”Œ๋ ˆ์ดํ•  ๊ฒŒ์ž„์˜ ์ค€๋น„ ์ƒํƒœ ์„ ์–ธ, ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ ์˜ˆ์•ฝ ๋˜๋Š” ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด)์€ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์™ธ๋ถ€์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ธํ”„๋ผ ๊ด€๋ฆฌ๋Š” ๋ชจ๋“  GameLift ์‹œ์Šคํ…œ์˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ฒ˜๋Ÿผ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ์š”์ฒญํ•˜๋ฉด ์‚ฌ์ „ ๊ตฌ์„ฑ๋œ ํ•œ๋„ ๋‚ด์—์„œ ์ž๋™์œผ๋กœ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ดํ‚น์—๋Š” GameLift์— ๋กœ๋“œ๋˜๋Š” ๊ทœ์น™์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทœ์น™์€ ์‹œ์Šคํ…œ์˜ ์˜์‚ฌ ๊ฒฐ์ • ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋น„์Šค ์šด์˜์€ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ์—๋Š” ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์™€ ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ์ฝ”๋“œ๊ฐ€ ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋กœ์ง์€ ๊ฒฐ์ •์ด ๋‚ด๋ ค์ง€๋Š” ์‹œ๊ธฐ์™€ ๊ทธ ๊ฒฐ๊ณผ๋กœ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. GameLift์˜ ๋งค์น˜๋ฉ”์ดํ‚น ์„œ๋น„์Šค๋ฅผ FlexMatch๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. GameLift์—๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ๋งค์น˜๋ฉ”์ด์ปค๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค๋Š” ๊ฒŒ์ž„์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋ ˆ์ด์–ด ์ˆ˜, ํŒ€ ์ˆ˜, ๊ฒŒ์ž„์—์„œ ์‚ฌ์šฉํ•  ๊ฒŒ์ž„ ๋งต, ๊ฒŒ์ž„์—์„œ ์‚ฌ์šฉํ•  ๋ชจ๋“œ ๋“ฑ ์š”์ฒญ๋˜๋Š” ๊ฒŒ์ž„์˜ ์ข…๋ฅ˜์™€ ๊ด€๋ จ๋œ ํ”Œ๋ ˆ์ด์–ด ์ •๋ณด ๋ฐ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ํฌํ•จํ•˜๋Š” ์ •์˜ ํ’€์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค์—๋Š” ์œ ํšจํ•œ ๊ฒŒ์ž„์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ทœ์น™ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ ค๋ฉด ์š”์ฒญ์˜ ๋ชจ๋“  ๊ธฐ์ค€๊ณผ ๊ทœ์น™์˜ ๋ชจ๋“  ๊ธฐ์ค€์ด ์ถฉ์กฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์š”์ฒญ ํ’€๊ณผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ธํ”„๋ผ๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ์œ ํšจํ•œ ๊ฒŒ์ž„ ๊ตฌ์„ฑ์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์œผ๋ฉด ๋งค์น˜๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

    GameLift ์•„ํ‚คํ…์ฒ˜๋Š” ๊ฐ ๊ณ„์ธต์ด ํ•˜์œ„ ๊ณ„์ธต์„ ๋ž˜ํ•‘ํ•˜๊ณ  ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ดํ‚น์€ ํ”Œ๋ ˆ์ด์–ด ์š”์ฒญ๊ณผ ๋ฆฌ์†Œ์Šค ์š”๊ตฌ ์‚ฌํ•ญ์€ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๊ฒŒ์ž„์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋กœ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด ์ง€์›์„ ์œ„ํ•ด ์„œ๋น„์Šค๋Š” ๋‹ค์Œ ๊ณ„์ธต์ธ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋ฆฌ์ „, ๋ฆฌ์ „ ๋‚ด์˜ ํ”Œ๋ฆฟ, ๊ฒŒ์ž„์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๋Š” EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๋ฆฌ์ „์— ๋Œ€ํ•œ ํ‰๊ท  ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋ฆฌ์ „ ์—”๋“œํฌ์ธํŠธ์— ๋Œ€ํ•œ ping์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์š”์ฒญ์—์„œ ์ง€์—ฐ์˜ ์ธก์ •๊ฐ’์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ธก์ •๊ฐ’์€ ๋งค์น˜๋ฉ”์ดํ‚น์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋ฉฐ ๊ฒฐ๊ตญ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๋˜ํ•œ ๋‹ค๋ฅธ ํ”Œ๋ฆฟ์˜ ๋น„์šฉ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋” ๋‚ฎ์€ ๋น„์šฉ ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ง€์—ฐ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ์š”์ฒญ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋น„์šฉ์ด ์œ ์‚ฌํ•œ ์ธ์Šคํ„ด์Šค ํ”Œ๋ฆฟ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๊ฐ€์šฉ์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์˜์‚ฌ ๊ฒฐ์ •์„ ๋‚ด๋ฆฝ๋‹ˆ๋‹ค. ๋จผ์ € ํ”Œ๋ฆฟ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ํ‘œ์‹œ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ณ ๋ คํ•œ ๋‹ค์Œ ํ•„์š”ํ•œ ๊ฒŒ์ž„ ์„ธ์…˜์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋Š” EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ ํ”Œ๋ฆฟ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค. GameLift ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ๋™์ž‘์„ ๊ฒฐ์ •ํ•˜๋Š” ์ฃผ์š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ๋Œ€๊ธฐ์—ด์ด๋ผ๋Š” ๊ฐ์ฒด์˜ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ๋Œ€๊ธฐ์—ด์—๋Š” ๊ธฐ๋ณธ ์‚ฌ์šฉ ์ˆœ์„œ์— ๋”ฐ๋ผ ํ”Œ๋ฆฟ์˜ ๋ชฉ๋ก์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•˜๋Š” ๊ทœ์น™ ์„ธํŠธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ์˜ ์ง€๋Šฅํ˜• ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„์„ ํ˜ธ์ŠคํŒ…ํ•  ์ตœ์ƒ์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๋ชจ๋“  ์˜ต์…˜์„ ๋ฐ˜๋ณตํ•˜์—ฌ ๊ฒŒ์ž„์„ ํ˜ธ์ŠคํŠธํ•  ์žฅ์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์น˜๋ฅผ ์ฆ‰์‹œ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด ์š”์ฒญ์„ ๋Œ€๊ธฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์€ ๋ฐฐ์น˜๊ฐ€ ๋ฐœ๊ฒฌ๋˜๊ฑฐ๋‚˜ ์š”์ฒญ์ด ์ตœ๋Œ€ ๋Œ€๊ธฐ์—ด ๋ณด๋ฅ˜ ์‹œ๊ฐ„์„ ์ดˆ๊ณผํ•  ๋•Œ๊นŒ์ง€ ๋ณด๋ฅ˜๋˜๊ณ  ์ฃผ๊ธฐ์ ์œผ๋กœ ๋‹ค์‹œ ๋ฐฉ๋ฌธ๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๊ฒŒ์ž„์— ๋Œ€ํ•œ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒŒ์ž„ ์„œ๋ฒ„์—์„œ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๊ฒŒ์ž„์—์„œ ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ์„ ์˜ˆ์•ฝํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์—๋Š” ์„ธ์…˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    ์„ธ์…˜ ๊ด€๋ฆฌ๋Š” ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜๊ณ  ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฒŒ์ž„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋™์ž‘์€ ๋Œ€๋ถ€๋ถ„ ์ฝ”๋“œ์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์— ์ž‘์„ฑ๋œ ์ฝ”๋“œ์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ์ด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฒŒ์ž„ ์„œ๋ฒ„์— ์ž‘์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ๊ฒŒ์ž„ ์ค‘์— ์‹œ์Šคํ…œ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ย ์„œ๋น„์Šค๋ฅผ ์ œ์–ดํ•  ๋•Œ๋Š” API ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์ด GameLift์— ์˜ํ•ด ์ž๋ฐœ์ ์œผ๋กœ ์‹œ์ž‘๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•˜๋ฉด ์ œ์–ด ์ˆ˜์ค€์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์€ ์ฝ”๋“œ๊ฐ€ API๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๊ทธ ๊ฒฐ๊ณผ๋กœ๋งŒ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜์€ ๊ฒŒ์ž„ ๋‚ด ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋‚˜ํƒ€๋‚ด๋Š” GameLift ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜ ์š”์ฒญ์€ ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ์ด๋‚˜ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ์—์„œ ์‹œ์ž‘๋˜์ง€๋งŒ ์„ธ์…˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ์ฒ˜๋ฆฌ๋˜๊ณ  ํ•ด๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

  • ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง

    ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง

    ๊ทผ๋ณธ์ ์œผ๋กœ GameLift์˜ ์ž‘๋™ ๋ฐฉ์‹์€ ์ฝ”๋“œ์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

    ์ผ๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ๋Š” ์ œํ•œ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GameLift๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ๋Š” API๋ฅผ ํ†ตํ•ด GameLift ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ๋Š” GameLift์˜ ์˜์‚ฌ ๊ฒฐ์ •์— ์‚ฌ์šฉ๋˜๋Š” ๊ทœ์น™์„ ์ƒ์„ฑํ•˜๊ณ  ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง์€ ์ฝ”๋“œ์™€ GameLift์˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐฉ์‹์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง์€ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ, ๊ฒŒ์ž„ ์„œ๋ฒ„ ๋ฐ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์— ์ž‘์„ฑ๋˜๋Š” ์ฝ”๋“œ์ด๋ฉฐ, GameLift์˜ ๋™์ž‘์„ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด ์ฝ”๋“œ์™€ GameLift ์‹œ์Šคํ…œ ๊ฐ„์˜ ์ผ๋ฐ˜์ ์ธ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ GameLift ์‹œ์Šคํ…œ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ๊ณผ API ํ˜ธ์ถœ ์ฝ”๋“œ์— ํฌํ•จ๋œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ์ „๋‹ฌ๋˜๊ณ  ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐฉ์‹์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ GameLift๊ฐ€ ์ฝ”๋“œ์— ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ค์ •์€ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์— ์˜ํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์„œ์—์„œ๋Š” ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋ฅผ ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•˜์ง€๋งŒ ์ด ๊ณผ์ •์—์„œ๋Š” ๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด ํ•ญ์ƒ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” AWS Lambda ํ•จ์ˆ˜, ์ปจํ…Œ์ด๋„ˆ(์˜ˆ: AWS Fargate) ๋˜๋Š” Elastic Beanstalk์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” EC2์˜ ์›น ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” GameLift Client SDK(AWS SDK์˜ ์ผ๋ถ€)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GameLift ์‹œ์Šคํ…œ๊ณผ ์ธํ„ฐํŽ˜์ด์Šคํ•ฉ๋‹ˆ๋‹ค. GameLift์—์„œ ํ™œ์šฉํ•˜๋Š” ์ž๋™ํ™” ๋ฐ ์ถ”์ƒํ™”์˜ ์–‘๊ณผ ์‚ฌ์šฉํ•˜๋Š” ์ œ์–ด ๊ธฐ๋Šฅ ๊ฐ„์˜ ๊ท ํ˜•์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ย **StartMatchmaking( )**๊ณผ ๊ฐ™์€ API ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ๊ณผ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๊ฐ„๋‹จํ•œ ์ž‘์—…์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ์ผ ํ˜ธ์ถœ๋กœ ๋งค์น˜๋ฉ”์ดํ‚น ์•„๋ž˜์˜ ๋ชจ๋“  ๊ณ„์ธต์—์„œ ์ž‘์—…์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์— ๋งค์น˜๋ฉ”์ดํ‚น ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ด๋ฏธ ๊ตฌํ˜„๋˜๋Š” ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์‹ญ์‹œ์˜ค. ย ์ด ๊ฒฝ์šฐ์—๋Š”ย StartGameSessionPlacement์™€ ๊ฐ™์€ API ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ๊ณผ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์ด ํ˜ธ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๊ทธ ์•„๋ž˜์˜ ๋ชจ๋“  ๊ณ„์ธต์—์„œ ์ž‘์—…์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

    GameLift ํ™œ๋™์˜ ์ƒํƒœ๋Š” ๋ชจ๋“  ๊ณ„์ธต์—์„œย Describeย API ํ˜ธ์ถœ์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์˜ ์„ค๊ณ„๋ฅผ GameLift์˜ ์ž‘๋™๊ณผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ ๋นˆ๋„๋Š” ํด๋ง์„ ํ†ตํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค.

    GameLift์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™”์™€ ์ œ์–ด ๊ฐ„์˜ ๊ท ํ˜•์„ ์ง์ ‘ ์กฐ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์—๋Š” GameLift์™€ ๋น„์Šทํ•œ ํ•˜์œ„ ์ˆ˜์ค€์„ ํฌํ•จํ•˜๋Š” ์—ฌ๋Ÿฌ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฐ€์žฅ ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”์—๋Š” ์ „์ฒด ๋””์Šคํฌ์™€ ๋””์Šคํฌ์— ์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ(์˜ˆ: โ€œ๋””์Šคํฌ ๋ฐฑ์—…โ€๋ช…๋ น)์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ˆ˜์ค€์—๋Š” ํด๋” ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ โ€œ์ด๋™ํ•œ ํด๋”โ€์™€ ๊ฐ™์€ ๋ช…๋ น์ด ์žˆ์œผ๋ฉฐ ์ด๋Š” ๊ทธ ์•ˆ์˜ ๋ชจ๋“  ํŒŒ์ผ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. ๋‹ค์Œ ์ˆ˜์ค€์—๋Š” โ€œ์—ด๊ธฐโ€, โ€œ์ €์žฅโ€ ๋ฐ โ€œ๋‹ซ๊ธฐโ€์™€ ๊ฐ™์€ ๊ฐœ๋ณ„ ํŒŒ์ผ ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆ˜์ค€์—๋Š” ๋””์Šคํฌ์˜ ์„นํ„ฐ์— ์ง์ ‘ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋ช…๋ น์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ GameLift์—๋Š” ๋„ค ๊ฐ€์ง€ ์ถ”์ƒํ™” ์ˆ˜์ค€์˜ API ํ•จ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋””์Šคํฌ์˜ ์„นํ„ฐ์— ์ง์ ‘ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์“ธ ์ผ์€ ์—†์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ I/O๊ฐ€ ํ›จ์”ฌ ํŽธ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด์ง„ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ํ•จ์ˆ˜๊ฐ€ ์žˆ์œผ๋‹ˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๊ฐœ๋ณ„ ํ”Œ๋ ˆ์ด์–ด ์š”์ฒญ์„ ๊ด€๋ฆฌํ•  ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ดํ‚น๊ณผ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๊ฐ€ ํ›จ์”ฌ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹นํ•˜๋Š” API ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ•œ ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ ์ฐธ๊ณ  ์ž๋ฃŒ์—์„œ GameLift API ํ•จ์ˆ˜๋Š” ์•ŒํŒŒ๋ฒณ์ˆœ์œผ๋กœ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค. ย ์‹œ์Šคํ…œ๋ณ„๋กœ ๊ทธ๋ฃนํ™”๋˜๊ฑฐ๋‚˜ ์ถ”์ƒํ™” ์ˆ˜์ค€์œผ๋กœ ํƒœ๊ทธ๋˜์–ด์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.**StartGameSessionPlacement( )**์™€ย **CreateGameSession( )**์€ ๊ด€๋ จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ย **CreateGameSession( )**์€ ์ด๋ฏธย **StartGameSessionPlacemement( )**์—์„œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.**CreateGameSession( )**์€ ์ œ์–ด๋ฅผ ๊ฐ•ํ™”ํ•˜๊ณ  ์ž๋™ํ™”๋ฅผ ์ค„์ด๋ ค๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ๊ฒŒ์ž„์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์˜ ์„ค์ •์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋งค์น˜ ๋˜๋Š” ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด๋ฅผ ์œ„ํ•œ ์š”์ฒญ์„ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ธ์ฆํ•˜๊ณ  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋ฉฐ GameLift Client SDK๋ฅผ ํ†ตํ•ด GameLift์— ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ธŒ๋กœ์ปค ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ๊ฒŒ์ž„ ์„ค์ • ํ”„๋กœ์„ธ์Šค๋ฅผ ์ „์ ์œผ๋กœ ๋‹ด๋‹นํ•˜๋ฉฐ GameLift๋Š” ์ด ํ™œ๋™์„ ์ง€์›ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์— ์ œ๊ณตํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฒŒ์ž„ ์„ค์ • ์ค‘์— ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์™€ ํŒŒํŠธ๋„ˆ ๊ด€๊ณ„๋ฅผ ๋งบ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” Windows ์„œ๋ฒ„ ๋˜๋Š” Linux๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. GamLift Server SDK๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ๋ชฉ์ ์€ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์ค‘์— ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์— ๊ฒŒ์ž„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋“ฑ์˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ๊ทธ๋Ÿฌ๋‚˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ๊ฒŒ์ž„ ์„ค์ •์„ ์ง€์›ํ•  ์ฑ…์ž„๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒŒ์ž„ ์„ธ์…˜์—์„œ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ์„ ์–ธํ•˜๋Š” ์ž‘์—…์€ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” API ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ด ์ƒํƒœ๋ฅผ GameLift์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„ ์„ธ์…˜์„ ๋‚˜๊ฐˆ ๋•Œ ์ด ๋นˆ ์Šฌ๋กฏ์„ ์ถ”๊ฐ€ ํ”Œ๋ ˆ์ด์–ด๋กœ ์ฑ„์šฐ๋ ค๋Š” ๊ฒฝ์šฐ, ์ฆ‰ ์ฑ„์šฐ๊ธฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ์—์„œ API ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” GameLift ์ธํ”„๋ผ ๊ด€๋ฆฌ์˜ ์ผ๋ถ€์ธ EC2 ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ธํ”„๋ผ ๊ด€๋ฆฌ์˜ ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์€ ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๊ทธ ์ˆ˜๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ๋Š” ์‹ค์ œ๋กœ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋น„์Šค๋Š” ์ฃผ๋กœ 2๊ฐœ์˜ ๋น„๋™๊ธฐ์‹ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ ์†Œํ”„ํŠธ์›จ์–ด์ธ๋ฐ ์ด ๋‘ ์†Œํ”„ํŠธ์›จ์–ด๋Š” GameLift API ํ˜ธ์ถœ์„ ํ†ตํ•ด ํ˜‘์—…ํ•ฉ๋‹ˆ๋‹ค.

    ์ด์ œ GameLift๋กœ ๊ตฌ์ถ•๋œ ๊ฒŒ์ž„ ์„œ๋น„์Šค์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐœ๊ด„์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฝ”๋“œ๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„, ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ ํ˜น์€ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

    GameLift์— ๋Œ€ํ•œ ์ œ์–ด๋Š” ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. JSON ํŒŒ์ผ๋กœ ์—…๋กœ๋“œ๋œ ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ, GameLift SDK ๋˜๋Š” GameLift ๋Œ€์‹œ๋ณด๋“œ์˜ ์„ค์ •์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

    ์ด์ œ GameLift ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ๋‚ด์šฉ์ด ์ •์˜๋˜์—ˆ์œผ๋‹ˆ

    ์ผ๋ฐ˜์ ์ธ ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง ํ๋ฆ„์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง ํ๋ฆ„

    ์ด ๋‹จ์›์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋กœ์ง์˜ ํ๋ฆ„์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž๊ฒŒ ์ด ํ๋ฆ„์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift์˜ ๋ถ€๋ถ„๊ณผ ์ฝ”๋“œ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ํ๋ฆ„๋„ ์ด ๋‹จ์›์—์„œ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด์–ด ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์— ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ๋˜๋Š” ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด์™€์˜ ๋งค์น˜ ํ”Œ๋ ˆ์ด๋ฅผ ์œ„ํ•œ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” GameLift์™€ ์กฐ์œจํ•˜์—ฌ ๋งค์น˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ์€ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ๋ฆฌ์ „๊ณผ ํŠน์ • ํ”Œ๋ฆฟ์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‹œ์ž‘ํ•  ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•˜์ง€๋งŒ ์‹œ์ž‘ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์‹œ์ž‘์€ ๋‹ค์Œ ๊ณ„์ธต์˜ ์ฑ…์ž„์ž…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„์—์„œ ๊ฒŒ์ž„ ์„ธ์…˜์˜ ์‹œ์ž‘์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ์„ธ์…˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ์˜ํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ์„ธ์…˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์—ฌ ์‹ค์ œ๋กœ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜๊ณ  ๊ฒŒ์ž„์—์„œ ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ์„ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ๊ฐ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.

    GameLift๋Š” ํ”Œ๋ ˆ์ด์–ด ์˜ˆ์•ฝ์„ ํฌํ•จํ•œ ๊ฒŒ์ž„ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ์— ์‚ฌ์šฉ๋˜๋Š” ์ถ”์ƒํ™” ์ˆ˜์ค€์— ๋”ฐ๋ผ ์„ธ์…˜ ๊ด€๋ฆฌ์˜ ์‘๋‹ต์ด ์Šคํƒ์˜ ์œ„๋กœ ๋‹ค์‹œ ์ด๋™ํ•˜๊ณ  ํ•ด๋‹นํ•˜๋Š” ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”์— ์˜ํ•ด ๊ฒŒ์ž„ ์—ฐ๊ฒฐ ์ •๋ณด๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ์— ์˜ํ•ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์— ์—ฐ๊ฒฐํ•˜๊ณ  ์˜ˆ์•ฝ๋œ ์Šฌ๋กฏ์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    ์ด์ œ ๊ฒŒ์ž„ ์„œ๋ฒ„์™€ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์ด์—์„œ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด๊ฐ€ ์ง์ ‘ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜์€ ํ”Œ๋ ˆ์ด์–ด ์˜ˆ์•ฝ์„ ๊ฐ€์ ธ์™”๊ณ  ๋งค์น˜๋ฉ”์ดํ‚น ํ”„๋กœ์„ธ์Šค๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Œ์„ GameLift์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ์„ธ์…˜ ๊ด€๋ฆฌ์— ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ฐธ์—ฌํ–ˆ์Œ์„ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์Šฌ๋กฏ์ด RESERVED์—์„œ ACTIVE๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋ฅผ ์„ธ์…˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋‹ค์‹œ ์ œ๊ณตํ•˜๋ฉด GameLift๊ฐ€ ๋Œ€์‹œ๋ณด๋“œ์— ํ˜„์žฌ ์ง€ํ‘œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์ค‘์— ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„์„ ๋‚˜๊ฐ„ ๊ฒฝ์šฐ ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ์˜ ์ฑ„์šฐ๊ธฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฑ„์šฐ๊ธฐ๋Š” ๋Œ€์ฒด ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ ๊ฒŒ์ž„์— ์ฐธ๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ฑ„์šฐ๊ธฐ๋Š” ์ฃผ๋กœ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ์—์„œ ๊ตฌ๋™๋˜์ง€๋งŒ ์ดˆ๊ธฐ ๋งค์น˜๋Š” ์ฃผ๋กœ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ์—์„œ ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค. ์ฑ„์šฐ๊ธฐ์—๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฒซ ๋ฒˆ์งธ๋Š” ์„œ๋ฒ„ ์š”์ฒญ ์ฑ„์šฐ๊ธฐ์ž…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ย **StartMatchBackfill( )**์„ ํ˜ธ์ถœํ•˜๊ณ  ๊ฒŒ์ž„์˜ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ๋งค์น˜๋ฉ”์ดํ‚น ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ๊ทธ๋Ÿฌ๋ฉด ๋งค์น˜๋ฉ”์ด์ปค์—์„œ ๋งค์น˜๋ฉ”์ดํ‚น ํ‹ฐ์ผ“์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ํ‹ฐ์ผ“์ด ๋งค์น˜์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒฝ์šฐ ๋งค์น˜๋ฉ”์ด์ปค๋Š” ์ถ”๊ฐ€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํฌํ•จํ•œย onUpdateGameSession( )ย ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ์ •๋ณด๋Š” ๋งค์น˜๋ฉ”์ด์ปค์— ์˜ํ•ด ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋กœ ๋ฐ˜ํ™˜๋˜๋ฉฐ, ์ด ์ •๋ณด๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์— IP ์ฃผ์†Œ ๋ฐ ํฌํŠธ ๋ฐ ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜ ํ† ํฐ์œผ๋กœ ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค.

    ๋‘ ๋ฒˆ์งธ ์ฑ„์šฐ๊ธฐ๋Š” ์ž๋™ ์ฑ„์šฐ๊ธฐ์ž…๋‹ˆ๋‹ค.

    ์ž๋™ ์ฑ„์šฐ๊ธฐ๋Š” ๊ฒŒ์ž„์ด ์‹œ์ž‘๋˜์—ˆ์ง€๋งŒ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ฐธ๊ฐ€ํ•˜์ง€ ์•Š์€ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

    ์ž๋™ ์ฑ„์šฐ๊ธฐ๋Š” ๋งค์น˜๋ฉ”์ดํ‚น ๊ตฌ์„ฑ์˜ ์†์„ฑ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

    ์ž๋™ ์ฑ„์šฐ๊ธฐ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด GameLift๊ฐ€ ๊ฒŒ์ž„ ์„ธ์…˜์— ์—ด๋ฆฐ ์Šฌ๋กฏ์ด ์—†์„ ๋•Œ๊นŒ์ง€ย StartMatchBackfill()ย ์š”์ฒญ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„์— ์—ด๋ฆฐ ์Šฌ๋กฏ์ด ์—†์œผ๋ฉด ์ž๋™ ์ฑ„์šฐ๊ธฐ๊ฐ€ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„์„ ๋‚˜๊ฐ€๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„์—์„œ ์š”์ฒญํ•œ ์ฑ„์šฐ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    Realtime ์„œ๋ฒ„

    Realtime ์„œ๋ฒ„๋Š” GameLift์—์„œ ์ œ๊ณตํ•˜๋Š” ํŠน์ˆ˜ํ•œ ์ข…๋ฅ˜์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

    ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ด๋ฅผ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋ผ๋Š” ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด๋กœ ์ง€์นญํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์‚ฌ์‹ค, ๊ฒŒ์ž„ ์„œ๋ฒ„์—๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์„ค๋ช…ํ•œ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ • ๊ฒŒ์ž„ ์„œ๋ฒ„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.ย ์‚ฌ์šฉ์ž ์ง€์ • ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” GameLift์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ํฌํ•จํ•œ ๋ชจ๋“  ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ๋‹ค๋ฅธ ์œ ํ˜•์œผ๋กœย Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„์—๋Š” ์ด๋ฏธ GameLift์™€์˜ ํ•„์ˆ˜ ์ƒํ˜ธ ์ž‘์šฉ ๋Œ€๋ถ€๋ถ„์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    Realtime ์„œ๋ฒ„๋Š” ๊ณต๋™ ์ฑ…์ž„ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. GameLift๊ฐ€ ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ์ผ๋ถ€๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ๋˜ ๋‹ค๋ฅธ ์ผ๋ถ€๋ฅผ ์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„ ๋ชจ๋‘ ์‹ค์ œ๋กœ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

    Realtime ์„œ๋ฒ„๋Š” ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๋Š” Node.js ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„์—๋Š” GameLift์™€์˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ด๋ฏธ ์ž‘์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

    Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„์— ํ•„์š”ํ•œ ๋‹จ์ผ Node.js javascript ์„œ๋ฒ„ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

    Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์ตœ์†Œ ์„œ๋ฒ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋“œํ•˜์—ฌ ํŒจํ‚ท ๋ฆด๋ ˆ์ด(๋ฉ”์‹œ์ง€ ์ „๋‹ฌ)๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ๋Š” ์˜จ๋ผ์ธ ์„ค๋ช…์„œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด ๊ฒฝ์šฐ Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ„์— ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฆด๋ ˆ์ด ์„œ๋น„์Šค์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ์ถ”๊ฐ€ ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒŒ์ž„ ์„œ๋ฒ„์—์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ ์ƒํƒœ ์กฐ์ •์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์— ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ Realtime Servers Client API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด API๋Š” Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„์— ์ด๋ฏธ ๊ตฌ์ถ•๋˜์–ด ์žˆ๋Š” Realtime ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

    Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ์ด์  ์ค‘ ํ•˜๋‚˜๋Š” ํ”Œ๋ฆฟ ์ˆ˜์ • ์—†์ด ๊ฒŒ์ž„ ์„œ๋ฒ„์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฒŒ์ž„ ์„ธ์…˜์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์ง€๋งŒ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„ ์„ธ์…˜์ด ์‹œ์ž‘๋˜๋ฉด Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋Œ€์ฒด ์Šคํฌ๋ฆฝํŠธ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    Realtime ์„œ๋ฒ„์˜ ๋˜ ๋‹ค๋ฅธ ์ด์ ์€ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์™€ ์‹ค์‹œ๊ฐ„ ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐ„์— ์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ(TLS)์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์•”ํ˜ธํ™”๋œ ํ†ต์‹ ์„ ์‰ฝ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ Realtime Client SDK๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์—์„œ Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„์™€ ์ง์ ‘ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๋ฏธ Javascript๋กœ ์ž‘์„ฑ๋œ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์Šคํฌ๋ฆฝํŠธ(์˜ˆ: ์ด๋ฏธ GameSparks๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋œ ์†”๋ฃจ์…˜)๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ ์‚ฌ์šฉ์ด ๋น„๊ต์  ์‰ฌ์›Œ์ง€๊ณ  ๋Œ€๊ทœ๋ชจ ํ™˜๊ฒฝ์—์„œ๋„ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์ƒˆ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ Node.js ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    ๋ณด์•ˆ ํ†ต์‹ 

    AWS์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด์•ˆ์˜ ์ผ๋ถ€๋ฅผ ์ฑ…์ž„์ง€๊ณ  Amazon์€ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ์ง€๋Š” ๊ณต๋™ ๋ณด์•ˆ ๋ชจ๋ธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ GameLift์—์„œ ์ด๋Ÿฌํ•œ ์ฑ…์ž„์ด ์–ด๋–ป๊ฒŒ ๋ฐฐ์ •๋˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•  ์˜์—ญ์€ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ฒŒ์ž„ ์„ธ์…˜ ๊ฐ„์˜ ๋ณด์•ˆ ํ†ต์‹ ์ž…๋‹ˆ๋‹ค.

    GameLift๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ฒŒ์ž„ ์„ธ์…˜ ๊ฐ„์˜ ์ „์†ก ๊ณ„์ธต ๋ณด์•ˆ(TLS)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์—์„œ TLS๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•  ๋•Œ TLS ์ธ์ฆ์„œ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ AMI ๋˜๋Š”โ€์•„๋ฏธโ€๋ผ๊ณ  ํ•˜๋Š” Amazon Machine Image์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ์ด AMI์—์„œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํ”Œ๋ฆฟ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ์ธ์ฆ์„œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํ”Œ๋ฆฟ์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ์ธ์ฆ์„œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„์—๋Š” ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ID๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•œ DNS ์ด๋ฆ„์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ ํ™•์žฅ์— ์˜ํ•ด ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด GameLift๊ฐ€ ๊ฐ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ DNS ํ•ญ๋ชฉ์„ Route53์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ์˜ DNS ์ด๋ฆ„์€ ์™€์ผ๋“œ์นด๋“œ ์ผ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ FQDN๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด GameLift๊ฐ€ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ DNS ํ•ญ๋ชฉ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. DNS ํ•ญ๋ชฉ๊ณผ ์ธ์ฆ์„œ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๋จผ์ € ํ”Œ๋ฆฟ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด GameLift๊ฐ€ ์ƒ์„ฑํ•œ DNS ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ TLS๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ๋Š”ย **GetInstanceCertificate( )**๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ GameLift๊ฐ€ ๊ฒฝ๋กœ๋ช…์„ ์ธ์ฆ์„œ์— ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ฝ”๋“œ๊ฐ€ ์ธ์Šคํ„ด์Šค์—์„œ ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ ธ์™€ ๋ณด์•ˆ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์š”์ฒญ์— ์‘๋‹ตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ๊ฒŒ์ž„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ธ์ฆ์„œ๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ธ์ฆ์„œ๋กœ ๊ฒŒ์ž„ ์„œ๋ฒ„ ID๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ๋Š” ์ธ์ฆ ๊ธฐ๊ด€์˜ ๊ณต๊ฐœ ํ‚ค๋กœ ์„œ๋ช…๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ธ์ฆ ๊ธฐ๊ด€์ด ์ฒด์ธ์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋ช…์ด ์œ ํšจํ•œ ๊ฒฝ์šฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฃจํŠธ ์ธ์ฆ ๊ธฐ๊ด€์ž…๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์—๋Š” ๋ฃจํŠธ ์ธ์ฆ ๊ธฐ๊ด€์˜ ํผ๋ธ”๋ฆญ ํ‚ค ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ธ์ฆ์„œ์˜ ๋ฃจํŠธ ์ธ์ฆ๊ณผ ์ผ์น˜ํ•˜๋ฉด ์ธ์ฆ์„œ๊ฐ€ ์‹ ๋ขฐ๋˜๊ณ  ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ID๊ฐ€ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

    ์ด ์‹œ์ ์—์„œ ๊ฒŒ์ž„ ์„ธ์…˜๊ณผ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” TLS ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ์•”ํ˜ธํ™”ํ•˜๋„๋ก ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ ์ด ๊ตฌํ˜„์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜์ง€๋งŒ ์‚ฌ์šฉ์ž ์ง€์ • ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

    Realtime ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ์ž„์˜ ๊ฒฝ์šฐ ํ•œ ๋‹จ๊ณ„๋ฅผ ๋” ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    GameLift์—์„œ AWS ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ

    ์ด ๋‹จ์›์—์„œ๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„์™€ AWS์˜ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค ๊ฐ„์˜ ๋ณด์•ˆ ํ†ต์‹ ์— ๋Œ€ํ•œ ๋Œ€์•ˆ์„ ์‚ดํŽด๋ณด๋ฉด์„œ ๊ณต๋™ ๋ณด์•ˆ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค.

    GameLift ์„œ๋น„์Šค ์—ญํ• ์€ IAM ๊ถŒํ•œ ์ •์ฑ…์— ๋”ฐ๋ผ GameLift ํ”Œ๋ฆฟ ์ธ์Šคํ„ด์Šค์— ์ž„์‹œ ์ž๊ฒฉ ์ฆ๋ช…์„ ๋ถ€์—ฌํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๊ฐ€ AWS ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•  ๋•Œย CreateFleet( )ย ์š”์ฒญ์—์„œย InstanceRoleArn์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ์—ญํ•  ARN์„ ์„ค์ •ํ•˜๋ฉด ์ด ํ”Œ๋ฆฟ์˜ ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ, ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค ๋ฐ ๋ฐ๋ชฌ(๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค) ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜์ž„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    AWS Management Console์˜ IAM ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ญํ• ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—ญํ• ์˜ ARN์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    AWS ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜ˆ๋กœ ๋“ค์ž๋ฉด DynamoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•  ๋•Œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ AWS SDK์™€ย **DynamoDB_GetItem( )**๊ณผ ๊ฐ™์€ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  AWS ๋ฆฌ์†Œ์Šค์—๋Š” AWS SDK API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    AWS ๊ณ„์ •์˜ VPC์— ์žˆ๋Š” EC2 ์ธ์Šคํ„ด์Šค๋ฅผ GameLift ์ธ์Šคํ„ด์Šค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ VPC ๊ฐ„ ํ†ต์‹ ์œผ๋กœ ์ธํ•ด ํผ๋ธ”๋ฆญ ์ธํ„ฐ๋„ท์œผ๋กœ ํ†ต์‹ ์ด ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. VPC ํ”ผ์–ด๋ง์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠธ๋ž˜ํ”ฝ์ด AWS ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ๋ผ์šฐํŒ…๋ฉ๋‹ˆ๋‹ค.

    VPC ํ”ผ์–ด๋ง ๊ด€๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋‘ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๋Š” VPC๋Š” GameLift๊ฐ€ ๋‹ด๋‹นํ•˜๋ฏ€๋กœ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š”ย **CreateVpcPeeringAuthorization( )**์„ ํ˜ธ์ถœํ•˜์—ฌ GameLift ํ”Œ๋ฆฟ์— ๋Œ€ํ•œ VPC์™€ VPC ๊ฐ„์˜ ํ”ผ์–ด ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ๊ถŒํ•œ์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ย ๊ถŒํ•œ ๋ถ€์—ฌ๋Š”ย DeleteVpcPeeringAuthorization( )ย ํ˜ธ์ถœ์„ ํ†ตํ•ด ์ทจ์†Œ๋˜์ง€ ์•Š๋Š” ํ•œ 24์‹œ๊ฐ„ ๋™์•ˆ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.ย  ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š”ย **CreateVpcPeeringConnection( )**์„ ํ˜ธ์ถœํ•˜์—ฌ ํ”ผ์–ด๋ง ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    Amazon GameLift ํ”Œ๋ฆฟ ๊ด€๋ฆฌ์— ์‚ฌ์šฉํ•˜๋Š” ๊ณ„์ •์„ ํฌํ•จํ•˜์—ฌ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ๋Š” ๋ชจ๋“  AWS ๊ณ„์ •์ด ์†Œ์œ ํ•œ VPC์™€ ํ”ผ์–ด๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฆฌ์ „์— ์žˆ๋Š” VPC์™€๋Š” ํ”ผ์–ด๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • ์ธํ”„๋ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

    ์ธํ”„๋ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

    GameLift์—์„œ ์ธํ”„๋ผ๋Š” ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ…์— ํ•„์š”ํ•œ ์ปดํ“จํŒ…, ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋„คํŠธ์›Œํ‚น ๋ฆฌ์†Œ์Šค๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ธํ”„๋ผ๋Š” Amazon EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜๋Š” ์„œ๋น„์Šค ์„ธํŠธ์ž…๋‹ˆ๋‹ค. GameLift ์—†์ด ์ž์ฒด EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ํ• ๋‹นํ•˜๊ณ , ์ž์ฒด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•˜๊ณ , EC2 Auto Scaling ๊ทธ๋ฃน์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ GameLift๋Š” ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ ๋ฐ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ”Œ๋ฆฟ ๊ด€๋ฆฌ, ๊ฒŒ์ž„์— ๋งž๊ฒŒ ์กฐ์ •๋œ ์ž๋™ ํฌ๊ธฐ ์กฐ์ •, ๊ฒŒ์ž„์—์„œ ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํŠน๋ณ„ ์„ค๋น„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    GameLift๋Š” ๊ฒŒ์ž„ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ „๋ณ„ ํ˜„์žฌ ์ด์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋Š” ์˜จ๋ผ์ธ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

    ์ธํ”„๋ผ๋Š” ํ”Œ๋ฆฟ์ด๋ผ๊ณ  ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์€ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์œผ๋กœ ์ •์˜๋˜๋ฉฐ ํ”Œ๋ฆฟ ๋‚ด์— ํฌํ•จ๋œ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์€ ๋‹จ์ผ ๋ฆฌ์ „์—์„œ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์€ ์ˆ˜ํ‰ ํ™•์žฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ”Œ๋ฆฟ์— ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift ๋Œ€์‹œ๋ณด๋“œ์—์„œ ํ”Œ๋ฆฟ์˜ ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ํ”Œ๋ฆฟ์„ ์ˆ˜๋™์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ์ˆ˜์š”๋Š” ๋ณ€๊ฒฝ๋˜๊ธฐ ๋งˆ๋ จ์ด๋ฏ€๋กœ ๊ฒŒ์ž„์— ์‚ฌ์šฉํ•  ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ์„ ํƒํ•˜๊ธฐ๋ž€ ์–ด๋ ค์šด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

    ์ธํ”„๋ผ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋„ˆ๋ฌด ์ ์œผ๋ฉด ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋ฏ€๋กœ ํ”Œ๋ ˆ์ด์–ด ๊ฒฝํ—˜์ด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ๋ฆฌ์†Œ์Šค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ์ผ๋ถ€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ๋น„์šฉ ํšจ์œจ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ๋” ๋‚˜์€ ํ•ด๊ฒฐ์ฑ…์€ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜์š”์— ๋”ฐ๋ผ ์ธํ”„๋ผ๋ฅผ ํ™•์žฅ ๋ฐ ์ถ•์†Œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ์šฉ๋Ÿ‰์€ ํ”Œ๋ ˆ์ดํ•˜๋ ค๋Š” ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ˆ˜์šฉํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŒŒ์ดํฌ์™€ ๊ฐ™์ด ์ฆ๊ฐ€ํ•˜๋Š” ์ˆ˜์š”๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ์œ ํœด ์šฉ๋Ÿ‰์„ ๋”ฐ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์˜จ๋””๋งจ๋“œ๋กœ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ˆ˜์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์˜ ๋ฒ„ํผ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๊ฒŒ์ž„ ์„ธ์…˜ ์ˆ˜๋Š” ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒŒ์ž„ ์„ธ์…˜ ์ˆ˜๋ณด๋‹ค ์•ฝ๊ฐ„ ๋†’์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์˜ ์ธ์Šคํ„ด์Šค ์ˆ˜๋ฅผ ๋Š˜๋ ค ์ „์ฒด ์šฉ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๋”๋ผ๋„ ๋™์ผํ•œ ๋น„์œจ์˜ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฒ„ํผ๋ฅผ ์˜ˆ์•ฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์— ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์กฐ์ • ์ด๋ฒคํŠธ์—๋„ ์ƒˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ค€๋น„๋˜๊ณ  ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ์ค€๋น„๋˜๋ฉฐ ๊ฒŒ์ž„ ์„ธ์…˜์ด ์‹œ์ž‘๋  ๋•Œ๊นŒ์ง€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฒŒ์ž„ ์„ธ์…˜์˜ ๋ฒ„ํผ ๋น„์œจ์€ ์กฐ์ • ์ด๋ฒคํŠธ ์ค‘ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜์š”๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๋Œ€์ƒ ์ถ”์ ์„ ํ†ตํ•œ ํ”Œ๋ฆฟ ์ž๋™ ์กฐ์ •์œผ๋กœ ์ด ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋Œ€์ƒ ์ถ”์ ์€ ํ•„์š”์— ๋”ฐ๋ผ ์„œ๋ฒ„ ์šฉ๋Ÿ‰์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์ง€์ •ํ•œ ๋ชฉํ‘œ ๋น„์œจ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

    ๋Œ€์ƒ ์ถ”์ ์€ย โ€œ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„ ์„ธ์…˜ ๋น„์œจโ€ย ์ง€ํ‘œ๋ฅผย ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. GameLift๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด ๊ฒŒ์ž„ ์„ธ์…˜๊ณผ ์‚ฌ์šฉ ์ค‘์ธ ๊ฒŒ์ž„ ์„ธ์…˜ ์ˆ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ํ”Œ๋ฆฟ์—์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์ œ๊ฑฐํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„ ์„ธ์…˜์˜ ์ผ์ • ๋น„์œจ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

    ์ž๋™ ์กฐ์ •์€ ์—ฌ๋Ÿฌ ๊ฐ€์šฉ ์˜์—ญ์— ์ธ์Šคํ„ด์Šค๋ฅผ ์ž๋™์œผ๋กœ ํ• ๋‹นํ•˜์—ฌ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

    ๋Œ€์ƒ ์ถ”์  ๊ทœ์น™

    ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„ ์„ธ์…˜ ๋น„์œจ์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์€ ํ”Œ๋ฆฟ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ย ์ž‘์€ ํฌ๊ธฐ์—์„œ ์‘๋‹ต์„ฑ์„ ๋†’์ด๋ ค๋ฉด ๋” ํฐ ๋น„์œจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์ด ํฌ๋ฉด ์ ˆ๋Œ€์ ์ธ ์‹ค์ œ ๊ฒŒ์ž„ ์„ธ์…˜์ด ๋” ๋งŽ์ด ํ•„์š”ํ•˜์ง€๋งŒ ์ด ์šฉ๋Ÿ‰์˜ ๋น„์œจ์€ ์ž‘์•„์ง‘๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด

    ์ธ์Šคํ„ด์Šค 2๊ฐœ์™€ ์ธ์Šคํ„ด์Šค๋‹น ๊ฒŒ์ž„ ์„œ๋ฒ„ 2๊ฐœ๊ฐ€ ์žˆ๋Š” ๊ฐœ๋ฐœ ํ”Œ๋ฆฟ์—๋Š” 4๊ฐœ์˜ ์„ธ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ•˜๋‚˜์˜ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„ ์„ธ์…˜์˜ ๋น„์œจ์ด 0%๋ณด๋‹ค ํฌ๊ณ  25%๋ณด๋‹ค ์ž‘์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    2๊ฐœ์˜ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 26%๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

    ์ธ์Šคํ„ด์Šค๊ฐ€ 1,000๊ฐœ์ด๊ณ  ์ธ์Šคํ„ด์Šค๋‹น ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ 2๊ฐœ์ธ ํ”„๋กœ๋•์…˜ ํ”Œ๋ฆฟ์—๋Š” 2,000๊ฐœ์˜ ์„ธ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ์†Œ๊ทœ๋ชจ ํ”Œ๋ฆฟ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„ธ์…˜์˜ 25%๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด 500๊ฐœ ์„ธ์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋Š” ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค.

    5% ๋˜๋Š” ์•ฝ 100๊ฐœ ์„ธ์…˜์ด ๋” ์ ์ ˆํ•ฉ๋‹ˆ๋‹ค.

    ์‹ค์ œ๋กœ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๋Š” ๋” ๋†’์€ โ€œ์•ˆ์ „ํ•œโ€ ๋น„์œจ/์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒŒ์ž„ ์„ธ์…˜ ์ˆ˜์—์„œ ์‹œ์ž‘ํ•œ ๋‹ค์Œ ๊ฒฝํ—˜์— ๋”ฐ๋ผ ์ด ๊ฐ’์„ ์ค„์ž…๋‹ˆ๋‹ค.

    GameLift๋Š” ํ˜„์žฌ ์˜ˆ์•ฝ ์ธ์Šคํ„ด์Šค๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๊ธฐ ์ˆ˜์š”๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒŒ์ž„์—์„œ ์ตœ๋Œ€ ์ˆ˜์š”์˜ 10%๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์ผ ์ธ์Šคํ„ด์Šค๋ฅผ ์ผœ๊ณ  ๋„๋Š” ๊ฒฝ์šฐ ์˜ˆ์•ฝ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 1๋…„ ๋˜๋Š” 3๋…„ ๊ณ„์•ฝ ๊ธฐ๊ฐ„์˜ ์ˆ˜์š”๋Š” ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    GameLift๋Š” ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๋Š” ์œ ์‚ฌํ•œ ์˜จ ๋””๋งจ๋“œ ์ธ์Šคํ„ด์Šค์— ๋น„ํ•ด ๋‚ฎ์€ ์š”๊ธˆ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฐ€๊ฒฉ์€ ์‹œ์žฅ ์ž…์ฐฐ ์‹œ์Šคํ…œ์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์˜จ๋””๋งจ๋“œ๋กœ ๊ตฌ๋งคํ•œ ๊ฒฝ์šฐ ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค๋ณด๋‹ค 70% ์ €๋ ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŒŸ ํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ GameLift๋Š” ํ”Œ๋ ˆ์ด์–ด ์‹œ๊ฐ„๋‹น ๋น„์šฉ์œผ๋กœ ์ธก์ •ํ•  ๋•Œ ํ˜„์žฌ ์ œ๊ณต๋˜๋Š” ์†”๋ฃจ์…˜ ์ค‘ ๊ฐ€์žฅ ๋น„์šฉ ํšจ์œจ์ ์ธ ์†”๋ฃจ์…˜์ด ๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜์—๋Š” ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ ํ•ฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์€ ๋งค๋ฒˆ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์‹คํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๋Š” ๊ฒจ์šฐ 2๋ถ„ ์ „ ์•Œ๋ฆผ์œผ๋กœ ํšŒ์ˆ˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ GameLift์—๋Š” ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ FleetIQ๊ฐ€ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ย FleetIQ ๋Š” ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค ์ค‘๋‹จ ๊ฐ€๋Šฅ์„ฑ์„ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค ํ”Œ๋ฆฟ์ด ์ค‘๋‹จ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ฒŒ์ž„์„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. FleetIQ ๋Š” ์ŠคํŒŸ ํ”Œ๋ฆฟ์„ ํ‰๊ฐ€ํ•˜๊ณ  ํ–ฅํ›„ ๋ช‡ ์‹œ๊ฐ„ ๋‚ด์— ์ค‘๋‹จ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด ํ”Œ๋ฆฟ์„ ์œ ์ง€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์—์„œ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ๊ฒŒ์ž„์€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์† ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ํ”Œ๋ฆฟ์—์„œ๋Š” ์ƒˆ๋กœ์šด ๊ฒŒ์ž„์ด ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์ˆ˜์š”๋Š” ์˜จ๋””๋งจ๋“œ ๋Œ€์ฒด ํ”Œ๋ฆฟ์— ์ˆ˜์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— FleetIQ ๊ฐ€ ์ŠคํŒŸ ํ”Œ๋ฆฟ์ด ๋‹ค์‹œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด ๊ฐ€์žฅ ์ €๋ ดํ•œ ํ”Œ๋ฆฟ์—์„œ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ๋Œ€๊ธฐ์—ด์€ ํ”Œ๋ ˆ์ด์–ด์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฆฌ์ „์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋ฆฟ ์ค‘ ๊ฐ€์žฅ ์ €๋ ดํ•œ ํ”Œ๋ฆฟ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์ผ๋ฐ˜์ ์œผ๋กœ ์ŠคํŒŸ ํ”Œ๋ฆฟ์„ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ํ•ญ์ƒ ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์˜ ์˜จ๋””๋งจ๋“œ ํ”Œ๋ฆฟ๊ณผ ํŽ˜์–ด๋งํ•ฉ๋‹ˆ๋‹ค.

    ์„ ํƒํ•œ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์€ ์ž๋™ ํฌ๊ธฐ ์กฐ์ •์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ฆฟ A์—๋Š” ๊ฐ๊ฐ 5๊ฐœ์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ˜• ์ธ์Šคํ„ด์Šค ์œ ํ˜•์ด 6๊ฐœ ์žˆ์œผ๋ฉฐ, ์ด 30๋Œ€์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ฆฟ B์—๋Š” ๊ฐ๊ฐ 10๊ฐœ์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ˜• ์ธ์Šคํ„ด์Šค ์œ ํ˜•์ด 3๊ฐœ ์žˆ์œผ๋ฏ€๋กœ 30๋Œ€์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ฆฟ A์™€ ํ”Œ๋ฆฟ B์˜ ํ•œ ๊ฐ€์ง€ ์ฐจ์ด์ ์€ ์„ธ๋ถ„ํ™” ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ํ”Œ๋ฆฟ B์— ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋˜๋ฉด 10๊ฐœ์˜ ๊ฒŒ์ž„ ์„ธ์…˜์ด ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

    ๋น„์šฉ ํšจ์œจ์ ์ธ ํ”Œ๋ฆฟ ์„ค๊ณ„๋Š” ์˜๋„ํ•œ ๋ฆฌ์ „์—์„œ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์˜ ํ˜„์žฌ ๊ฐ€๊ฒฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์Œ์€ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์„ ํƒํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ์›์น™์ž…๋‹ˆ๋‹ค.

    ์›์น™ 1

    ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ๋Š˜๋ฆฌ๋ฉด ๊ทœ๋ชจ์˜ ๊ฒฝ์ œ๊ฐ€ ์‹คํ˜„๋ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ๊ฐ€๊ฒฉ์ด ๋‘ ๋ฐฐ์ธ ๊ฒฝ์šฐ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ˆ˜๋Š” ๋‘ ๋ฐฐ๋ฅผ ๋„˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์ด ๊ฒŒ์ž„ ์„œ๋ฒ„ 5๊ฐœ๋ฅผ ์ œ๊ณตํ•  ๋•Œ ๋น„์šฉ์ด ๋‘ ๋ฐฐ์ธ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์€ 11๊ฐœ์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์›์น™ 2

    ์ŠคํŒŸ ํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋†’์€ ์ค‘๋‹จ๋ฅ ์„ ๋‚ฎ์ถ”๋Š” ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

    ์ด ์ธ์Šคํ„ด์Šค ์œ ํ˜•์€ ๊ฑฐ์˜ ํ•ญ์ƒ c4.large์ž…๋‹ˆ๋‹ค. 90% ์ด์ƒ์˜ ๊ณ ๊ฐ์ด ์ŠคํŒŸ ํ”Œ๋ฆฟ์— ์ด ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ๋‹จ์ผ ๋ฆฌ์ „์—์„œ ์—ฌ๋Ÿฌ ์ŠคํŒŸ ํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•  ๊ณ„ํš์ด๋ผ๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ•œ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

    ์›์น™ 3

    ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์˜จ๋””๋งจ๋“œ ์ธ์Šคํ„ด์Šค์˜ ํฌ๊ธฐ๋ฅผ ๋™์ผํ•˜๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํŠนํžˆ, ์ดํ›„ ๋น„์šฉ ์ตœ์ ํ™” ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์— ์ ํ•ฉํ•˜๊ฒŒ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ์„ธ์…˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

    ์„ธ์…˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

    GameLift์—์„œ ์„ธ์…˜์€ ์„œ๋กœ ๋‹ค๋ฅด์ง€๋งŒ ๊ด€๋ จ์ด ์žˆ๋Š” ๋‘ ๊ฐ€์ง€ ๊ฐœ๋…์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์€ ๊ฒŒ์ž„ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒŒ์ž„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๊ด€๋ฆฌ๋Š” ๊ฒŒ์ž„์„ ์ค€๋น„, ์‹œ์ž‘, ์šด์˜ ๋ฐ ์ข…๋ฃŒํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ์„ธ์…˜์€ ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜์ž…๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜์€ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๊ธฐ ์œ„ํ•œ ์š”์ฒญ์ž…๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜์€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„์„ ์š”์ฒญํ•  ๋•Œ ์‹œ์ž‘๋˜๊ณ , ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„ ์„ธ์…˜์— ์—ฐ๊ฒฐ๋  ๋•Œ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๊ด€๋ฆฌ

    ์„ธ์…˜ ๊ด€๋ฆฌ์—์„œ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ๋Œ€๊ธฐ์—ด์ดย **CreateGameSession( )**์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ํ˜ธ์ถœ์€ ์ œ์–ด๋ฅผ ๋„˜๊ธฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ์„ธ์…˜ ๊ด€๋ฆฌ๋Š” ํ”Œ๋ฆฟ์˜ ์ธํ”„๋ผ์— ๊ฒŒ์ž„ ์„ธ์…˜์„ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜ ๊ด€๋ฆฌ๋Š” ๊ฐ€์žฅ ์ตœ์‹ ์˜ ํ”Œ๋ฆฟ ์ธ์Šคํ„ด์Šค์— ๊ฒŒ์ž„ ์„ธ์…˜์„ ๋ฐฐ์น˜ํ•˜๋„๋ก ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ”Œ๋ฆฟ์„ ์ถ•์†Œํ•  ๋•Œย NewGameSessionProtectionPolicy๊ฐ€ย FullProtection์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๊ฒŒ์ž„์ด ์—†๋Š” ์ธ์Šคํ„ด์Šค์—์„œ๋งŒ ์ถ•์†Œ๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๊ฒŒ์ž„ ์„ธ์…˜์˜ ํ˜ธ์ŠคํŒ…์„ ์ค€๋น„ํ•˜๋Š” ์„ค์ • ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์œ ํœด ์ƒํƒœ๋กœ ์ „ํ™˜๋˜์–ด ๊ฒŒ์ž„ ์„ธ์…˜์˜ ์‹œ์ž‘์„ ์•Œ๋ฆฌ๋Š” GameLift์˜ ์•Œ๋ฆผ์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜์ด GameLift์— ์ƒ์„ฑ๋œ ํ›„์—๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

    GameLift๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜ย **onStartGameSession( )**์„ ๊ตฌ๋™ํ•˜๊ณ  ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ์—ย GameSessionย ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.ย GameSessionย ๊ฐ์ฒด์—๋Š”ย GameSessionID, ํ”Œ๋ ˆ์ด์–ด์˜ ์ตœ๋Œ€ ์ˆ˜ ๋ฐ ํ‚ค-๊ฐ’ ํŽ˜์–ด๋กœ ์ €์žฅ๋œ ๊ฒŒ์ž„ ์†์„ฑ ๋ชฉ๋ก์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์†์„ฑ์˜ ์˜ˆ๋กœ๋Š” ๊ฒŒ์ž„ ๋ชจ๋“œ, ๋ ˆ๋ฒจ ๋ฐ ๋งต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ๋Š” ์š”์ฒญ๋œ ๊ฒŒ์ž„ ์œ ํ˜•์„ ํ˜ธ์ŠคํŒ…ํ•  ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋งต ๋˜๋Š” ๋ ˆ๋ฒจ์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฒŒ์ž„์—์„œ ํ”Œ๋ ˆ์ด์–ด์˜ ์ตœ๋Œ€ ์ˆ˜์— ๋Œ€ํ•œ ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ์„ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š”ย **ActivateGameSession( )**์„ ํ˜ธ์ถœํ•˜์—ฌ ๊ฒŒ์ž„ ์„ธ์…˜ ์ƒํƒœ๋ฅผย ACTIVE๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

    GameLift์—์„œ ๊ฒŒ์ž„์€ ์ผ์ • ๊ธฐ๊ฐ„ ์‹คํ–‰๋œ ๋‹ค์Œ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ด ์ˆ˜๋ช…์„ ๊ฒŒ์ž„ ์„ธ์…˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์˜ ์ž‘๋™ ๋ฐฉ์‹์€ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ฝ”๋”ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์„ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์€ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์ฝ”๋“œ์—์„œ GameLift API ํ˜ธ์ถœ๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

    ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์—์„œ๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ๊ณ„์† ์‹คํ–‰ํ•˜๊ณ  ๊ฒŒ์ž„ ์„ธ์…˜์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ฒŒ์ž„์ด ์™„๋ฃŒ๋˜๋ฉด ์ฝ”๋“œ๊ฐ€ ์ •๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ด์ „ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์ •๋ฆฌํ•œ ํ›„ ์ƒˆ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ GameLift์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

    ๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๊ฒŒ์ž„ ์„ธ์…˜์—์„œ API๋ฅผ ํ†ตํ•ด GameLift์— ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. GameLift๋Š” ๋” ์ด์ƒ ํ•„์š”ํ•œ ์ˆ˜์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ์—†์Œ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋นŒ๋“œ์˜ ๋Œ€์ฒด ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์ƒˆ ๊ฒŒ์ž„ ์„œ๋ฒ„๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด๋„ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„ ์„ธ์…˜์ด ์ฆ‰์‹œ ์ƒ์„ฑ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฝ”๋“œ์˜ ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜๋ฉด ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‹œ์ž‘ํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ์ด ๋‘ ๋ฐฉ๋ฒ•์€ ๊ฒŒ์ž„ ์†”๋ฃจ์…˜์— ์„œ๋กœ ๋‹ค๋ฅธ ํŠน์ง•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒˆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋Œ€๊ทœ๋ชจ ๊ฒŒ์ž„ ์ž์‚ฐ ๋ฐ ์ฝ”๋“œ๋ฅผ ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ด์ „ ๊ฒŒ์ž„์„ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ๋น ๋ฅธ ๊ฒฝ์šฐ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฒŒ์ž„์„ ๋” ๋น ๋ฅด๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์žฌํ™œ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ๊ฐ™์€ ์žฅ๊ธฐ์ ์ธ ๋ฌธ์ œ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค ๊ฒŒ์ž„์—์„œ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ๋ˆ„์ˆ˜๊ฐ€ ์‹ฌ๊ฐํ•ด์ ธ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด๋ฅผ ๋ฐฉํ•ดํ•  ๋งŒํผ ๊ธธ๊ฒŒ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋”ฐ๋ผ์„œ ํŠน์ • ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋ณด๋‹ค ์„ฑ๋Šฅ ์ด์ ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐ ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ์ฝ”๋“œ ๋˜๋Š” GameLift๋ฅผ ํ†ตํ•ด ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฝ”๋“œ๋กœ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์ข…๋ฃŒํ•˜๋Š” ๊ฒฝ์šฐ ๋งˆ์ง€๋ง‰ ์ž‘์—…์€ย **TerminateGameSession( )**์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค ย  ์ด ํ•จ์ˆ˜๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜์—ˆ์Œ์„ GameLift์— ์•Œ๋ฆฌ๊ณ  ์ƒํƒœ๋ฅผย TERMINATED๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‹œ์ž‘ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ GameLift์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

    **ProcessEnding( )**์„ ํ˜ธ์ถœํ•˜๋ฉด ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค์™€ ๊ฒŒ์ž„ ์„ธ์…˜์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. GameLift๊ฐ€ ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift๋Š” ๋น„์ •์ƒ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๊ฑฐ๋‚˜, ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ค‘๋‹จ๋˜์—ˆ๊ฑฐ๋‚˜, ์ธ์Šคํ„ด์Šค ์šฉ๋Ÿ‰์ด ์ถ•์†Œ๋œ ๊ฒฝ์šฐ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์€ย onProcessTerminate( )ย ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค.

    ์ •์ƒ ์ข…๋ฃŒ ์ฝ”๋“œ๋Š”ย **GetTerminationTime( )**์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ค‘๋‹จ๋œ ๊ฒฝ์šฐย **GetTerminationTime( )**์€ ์‹œ๊ฐ„๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐย **onGameSessionTerminate( )**๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ์ตœ๋Œ€ 30์ดˆ๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜ ๊ด€๋ฆฌ

    ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜์€ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๋ ค๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์š”์ฒญ์ž…๋‹ˆ๋‹ค.

    ์ด ์š”์ฒญ์€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ํ”Œ๋ ˆ์ด์–ด ID์™€ ํ•จ๊ป˜ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š”ย **CreatePlayerSession( )**์„ ํ˜ธ์ถœํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ดย ์„ธ์…˜ย ID(ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜ ํ† ํฐ์ด๋ผ๊ณ ๋„ ํ•จ)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜ ํ† ํฐ์€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก IP ์ฃผ์†Œ ๋ฐ ํฌํŠธ ๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

    ํ•ธ๋“œ์…ฐ์ดํฌ ๋ฐ ์ธ์ฆ์€ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ฒŒ์ž„ ์„ธ์…˜ ์‚ฌ์ด์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    ์Šฌ๋กฏ์€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ ์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„์˜ ์ž๋ฆฌ์ž…๋‹ˆ๋‹ค. ์Šฌ๋กฏ์€ ํ•ธ๋“œ์…ฐ์ดํฌ ์ค‘ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒŒ์ž„ ์„ธ์…˜ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด 4๋ช…์ด ํ•„์š”ํ•œ ๊ฒŒ์ž„์—๋Š” 4๊ฐœ์˜ ์Šฌ๋กฏ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ ํ”Œ๋ ˆ์ด์–ด ์ˆ˜๊ฐ€ 8๋ช…์ธ ๊ฒŒ์ž„์—๋Š” 8๊ฐœ์˜ ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐํ‹€๋กœ์–„ ๊ฒŒ์ž„์—๋Š” 100๊ฐœ์˜ ์Šฌ๋กฏ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    GameLift๊ฐ€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฒŒ์ž„ ์„ธ์…˜์— ์—ฐ๊ฒฐํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด ๊ฒŒ์ž„ ์„ธ์…˜์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ์ด ์žˆ๋Š”์ง€ ๋ฌป์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์˜ ์‘๋‹ต์ด ๊ธ์ •์ ์ธ ๊ฒฝ์šฐ GameLift๋Š” ์˜ˆ์•ฝ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์€ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๊ณ ์œ  ํ† ํฐ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์€ ํƒ€์ด๋จธ๋„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์—ฐ๊ฒฐํ•˜์—ฌ ์˜ˆ์•ฝ์„ ๊ฐ€์ ธ๊ฐ€์ง€ ์•Š์œผ๋ฉด ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ ์˜ˆ์•ฝ์ด ๋งŒ๋ฃŒ๋˜๊ณ  ์Šฌ๋กฏ์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜ ํ† ํฐ์€ ๊ฒŒ์ž„์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ IP ์ฃผ์†Œ ๋ฐ ํฌํŠธ ๋ฒˆํ˜ธ์™€ ํ•จ๊ป˜ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฒŒ์ž„ ์„ธ์…˜์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜ ํ† ํฐ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜ ํ† ํฐ์œผ๋กœย **AcceptPlayerSession( )**์„ ํ˜ธ์ถœํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ํ”Œ๋ ˆ์ด ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜์—์„œ ํ”Œ๋ ˆ์ด์–ด ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง„ ๊ฒƒ์ด ๊ฐ์ง€๋˜๋ฉด ์ฝ”๋“œ๊ฐ€ ํ”Œ๋ ˆ์ด์–ด ID๋กœย **RemovePlayerSession( )**์„ ํ˜ธ์ถœํ•˜์—ฌ GameLift์— ์•Œ๋ฆฌ๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šฌ๋กฏ ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๊ฒŒ์ž„์„ ํ˜ธ์ŠคํŒ…ํ•  ๋ฆฌ์ „์„ ์„ ํƒํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ๋Š” ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฆฌ์ „์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ํ‰๊ท  ์ง€์—ฐ, ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ œ๊ณต๋˜๋Š” ํ”Œ๋ฆฟ์˜ ๊ฐ€์šฉ์„ฑ ๋ฐ ๊ฐ€์žฅ ์ €๋ ดํ•œ ๋น„์šฉ์˜ ํ”Œ๋ฆฟ ์„ ํƒ ๋“ฑ ๋‹ค์ˆ˜์˜ ์š”์ธ์ด ๊ณ ๋ ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์œ„์น˜์™€ GameLift ์—”๋“œํฌ์ธํŠธ ๊ฐ„์˜ ์ง€์—ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ GameLift ์—”๋“œํฌ์ธํŠธ์˜ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œ ๋ชฉ๋ก์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ICMP 8(ping)์„ ๊ฐ ์—”๋“œํฌ์ธํŠธ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ง€์—ฐ(๋ฐ€๋ฆฌ์ดˆ)์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๊ฐ GameLift ํ”Œ๋ฆฟ์— ๋Œ€ํ•œ ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

    ping์„ ์ž์ฃผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ํŠนํžˆ ๊ฐ„๋‹จํ•œ ๊ฒŒ์ž„์˜ ๊ฒฝ์šฐ ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œํ•˜๊ณ  ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ์˜ ํ‰๊ท ์„ ์ œ๊ณตํ•˜์—ฌ ํ˜„์žฌ ๋ฐ ์ผ๋ฐ˜ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€์—ฐ์„ ๋ณด๊ณ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•œ ๊ฐ€์ง€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ํ”Œ๋ ˆ์ด ์ค‘์— ํ•œ ์‹œ๊ฐ„์— ํ•œ ๋ฒˆ pingํ•˜๋Š” ๊ฒƒ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ย ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ตœ๊ทผ 5๊ฐœ ๋ฐ์ดํ„ฐ ํฌ์ธํŠธ(์—ฐ์†์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์ค‘ ์ตœ๊ทผ 5์‹œ๊ฐ„)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. 7์ผ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ ๋ฐ ์œ ์ง€ํ•˜๊ณ  7์ผ ํ›„์— ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

    GameLift ๋ฆฌ์ „ ์—”๋“œํฌ์ธํŠธ๋Š”

    https://docs.aws.amazon.com/general/latest/gr/rande.html#gamelift_region

    ์— ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ๊ฐœ๋ณ„ ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ด์ปค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ง€์—ฐ ๋ฐ์ดํ„ฐ๋Š”ย StartMatchmaking( )ย ์š”์ฒญ์œผ๋กœ ์ œ์ถœ๋ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค๋Š” ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ๋Œ€๊ธฐ์—ด์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ด์ปค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐย StartGameSessionPlacement( ) ์š”์ฒญ์œผ๋กœ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ย ๋Œ€๊ธฐ์—ด์— ์ง์ ‘ ์š”์ฒญ๋ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ฆฟ ์„ ํƒ์—์„œ ๋ชฉํ‘œ๋Š” ๋งค์น˜ ํ‰๊ท  ์ง€์—ฐ์ด ๊ฐ€์žฅ ์งง์€ ๋ฆฌ์ „์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ์€ ๊ฐ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ์˜ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฒŒ์ž„ ์„ธ์…˜์˜ ํ‰๊ท  ์ง€์—ฐ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

    ํ‰๊ท ์ด ๊ฐ€์žฅ ๋‚ฎ์€ ์˜์—ญ์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๋ฆฌ์ „์—๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”Œ๋ฆฟ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์˜ ์ŠคํŒŸ ํ”Œ๋ฆฟ๊ณผ ์ด๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ์˜จ๋””๋งจ๋“œ ํ”Œ๋ฆฟ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    ํ•ด๋‹น ๋ฆฌ์ „์—์„œ ๋น„์šฉ์ด ๊ฐ€์žฅ ๋‚ฎ์€ ํ”Œ๋ฆฟ์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์šฉ์„ฑ์ด ์—†๋Š” ํ”Œ๋ฆฟ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์šฉ๋Ÿ‰์— ๋„๋‹ฌํ–ˆ๊ฑฐ๋‚˜, ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ŠคํŒŸ ํ”Œ๋ฆฟ์ด๊ฑฐ๋‚˜, ์žฅ์• ๋กœ ์ธํ•ด ํ”Œ๋ฆฟ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ฆฟ์˜ ์ƒํƒœ๋Š” GameLift๊ฐ€ ์„ ํƒํ•œ ์‹œ์ ๊ณผ ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์ด ์„ ํƒ๋˜๋ฉด GameLift๊ฐ€ ๊ฒŒ์ž„์„ ์„ธ์…˜์„ ์ƒ์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•˜๋ฉด ๋‹ค์Œ ์ตœ์ƒ์˜ ์˜ต์…˜์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

    ํ‘œ์‹œ๋œ ์˜ˆ์—์„œ ๊ฒŒ์ž„ ์„ธ์…˜ 1์€ ๋ฆฌ์ „ A์˜ ๊ทผ์ฒ˜์˜ ํ”Œ๋ฆฟ A์— ์—ฐ๊ฒฐ๋˜๊ณ  ๊ฒŒ์ž„ ์„ธ์…˜ 2๋Š” ์ธ๊ทผ ๋ฆฌ์ „ B์˜ ํ”Œ๋ฆฟ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ „ B์—๋Š” ํ”Œ๋ฆฟ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ€์žฅ ๋น„์šฉ์ด ์ €๋ ดํ•œ ํ”Œ๋ฆฟ์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ B2๋Š” ์ŠคํŒŸ ํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค. ๋ฆฌ์ „์—๋Š” B2์™€ B3์ด๋ผ๋Š” 2๊ฐœ์˜ ์ŠคํŒŸ ํ”Œ๋ฆฟ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋น„์šฉ์ด ์ €๋ ดํ•œ ํ”Œ๋ฆฟ์ธ B2๊ฐ€ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ฆฟ์€ ๋•Œ๋•Œ๋กœ ๊ธฐ์•ฝ์—†์ด ๊ฐ€์šฉ์„ฑ์ด ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

    ๊ฐœ๋ฐœ์ž๋Š” ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ํ”Œ๋ฆฟ์— ํ™•์žฅํ•  ์‹œ๊ฐ„์„ ์ฃผ๋Š” ๋Œ€๊ธฐ ๊ธฐ๊ฐ„์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ธฐ ๊ธฐ๊ฐ„์„ ์ ์šฉํ•˜๋ฉด ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ์ด ์ผ์ • ๊ธฐ๊ฐ„์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฐ€์šฉ ๋ฆฌ์ „์— ๊ฒŒ์ž„ ์„ธ์…˜์„ ๋ฐฐ์น˜ํ•˜์ง€ ์•Š๊ณ  ๋” ๊ฐ€๊นŒ์šด ํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ ์ •์ฑ…์€ ์ง€์—ฐ์— ๊ฐ€์žฅ ๋ฏผ๊ฐํ•œ ๊ฒŒ์ž„ ์™ธ์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ง€์—ฐ์— ๋ฏผ๊ฐํ•œ ๊ฒŒ์ž„์˜ ๊ฒฝ์šฐ ์ง€์—ฐ ๋ฐ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ตœ๋Œ€ 1๋ถ„ ์ •๋„ ๋Œ€๊ธฐํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฐ ์ •์ฑ…์€ ์ตœ๋Œ€ ๊ฐœ๋ณ„ ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ(๋ฐ€๋ฆฌ์ดˆ)๊ณผ ์ •์ฑ… ๊ธฐ๊ฐ„(์ดˆ)์„ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜์ง‘์€ ์ง€์—ฐ์ด ๊ฐ€์žฅ ์งง์€ ์ˆœ์„œ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์ •์ฑ…์€ ์ง€์ •๋œ ๊ธฐ๊ฐ„ ๋™์•ˆ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ ๋ฐ์ดํ„ฐ ์—†์ด ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์— ์„ ์–ธ๋œ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ํ”„๋กœ์„ธ์Šค์˜ ๋Œ€๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๋ ค๋Š” ๊ฒฝ์šฐ ์ง€์—ฐ ๋ฐ์ดํ„ฐ ์—†์ด ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ง€์—ฐ์ด ๊ณ ๋ ค๋˜์ง€ ์•Š๋Š” ๊ฒŒ์ž„์—์„œ ๋ฆฌ์ „์ด ๋ฏธ๋ฆฌ ๊ฒฐ์ •๋˜์–ด ์žˆ๊ณ  ์ •๋ ฌ ๋˜๋Š” ๊ฐ€๊ฒฉ ๋น„๊ต๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ด ๊ฒฝ์šฐ ๋Œ€๊ธฐ์—ด์˜ ๋‹ค๋ฅธ ํ”Œ๋ฆฟ ์ค‘์—์„œ ๊ฐ€์šฉ์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋Œ€์ฒด ํ”Œ๋ฆฟ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋Š” ๋Œ€์ƒ ๋ชฉ๋ก์„ ํ†ตํ•ด ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

    ์ด ์˜ˆ์—์„œ๋Š” 2๊ฐœ์˜ ๋Œ€๊ธฐ์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ๊ฒŒ์ž„ ์„ธ์…˜ 1 ์š”์ฒญ์„ ๋Œ€๊ธฐ์—ด 1๋กœ, ๊ฒŒ์ž„ ์„ธ์…˜ 2๋ฅผ ๋Œ€๊ธฐ์—ด 2๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ 1์€ ๊ฐ€์šฉ์„ฑ์— ๋”ฐ๋ผ ํ”Œ๋ฆฟ A1, A2 ๋ฐ ๋งˆ์ง€๋ง‰์œผ๋กœ ํ”Œ๋ฆฟ B์— ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ 2๋Š” ๊ฐ€์šฉ์„ฑ์— ๋”ฐ๋ผ ์ˆœ์„œ๋Œ€๋กœ B, A1 ๋ฐ ๋งˆ์ง€๋ง‰์œผ๋กœ A2์— ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค.

    ์ด ์˜ˆ์—์„œ A1์€ A2๋ณด๋‹ค ์ €๋ ดํ•˜๋ฏ€๋กœ ๋‘ ๊ฒฝ์šฐ์—์„œ ๋ชจ๋‘ ๊ธฐ๋ณธ ๋ฐ ๋Œ€์ฒด๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋น„์Šค ์„ค๊ณ„์—์„œ ์—ฌ๋Ÿฌ ๋Œ€๊ธฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ๋œ ์ด์œ ๋Š” ๋ฆฌ์ „์„ ๋ฏธ๋ฆฌ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

    ์—ฌ๋Ÿฌ ๋Œ€๊ธฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธ€๋กœ๋ฒŒ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋Œ€๊ธฐ์—ด 1์€ ์œ ๋Ÿฝ ๊ฒŒ์ž„ ํ˜ธ์ŠคํŒ…์šฉ์œผ๋กœ EU(์•„์ผ๋žœ๋“œ) ๋ฆฌ์ „์— ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋Œ€๊ธฐ์—ด 2๋Š” ๋ฏธ๊ตญ ๊ฒŒ์ž„์šฉ์œผ๋กœ ๋ฏธ๊ตญ ๋™๋ถ€(๋ฒ„์ง€๋‹ˆ์•„ ๋ถ๋ถ€)์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋Œ€๊ธฐ์—ด 3์€ ์ผ๋ณธ ๊ฒŒ์ž„์šฉ์œผ๋กœ ์•„์‹œ์•„ ํƒœํ‰์–‘(๋„์ฟ„) ๋ฆฌ์ „์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ด์ปค ๋ฐ ๋Œ€๊ธฐ์—ด์€ ๋‹จ์ผ ๊ฐ€์šฉ ์˜์—ญ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์ผ๋ฐ˜์ ์ธ ๊ณ ๊ฐ€์šฉ์„ฑ ์„ค๊ณ„์—์„œ๋Š” ๋™์ผํ•œ ํ”Œ๋ฆฟ ๋ชฉ๋ก์„ ํฌํ•จํ•˜๋Š” ๋Œ€๊ธฐ์—ด ํŽ˜์–ด 1๊ฐœ์™€ ๋™์ผํ•œ ๋งค์น˜๋ฉ”์ดํ‚น ๊ทœ์น™์„ ํฌํ•จํ•˜๋Š” ๋งค์น˜๋ฉ”์ด์ปค ํŽ˜์–ด 1๊ฐœ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š์œผ๋ฉด ๋Œ€์ฒด ๋งค์น˜๋ฉ”์ด์ปค๋กœ ์žฅ์•  ์กฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œ ๋‘ ๋งค์น˜๋ฉ”์ด์ปค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ๋‘˜ ์‚ฌ์ด๋ฅผ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ Amazon Route 53๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ๋งค์น˜๋ฉ”์ด์ปค๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Route 53์˜ ๋ ˆ์ฝ”๋“œ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    ์ฐธ๊ณ ๋กœ ์ด ์„ค๊ณ„๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ์„ค๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ ์žฅ์•  ์กฐ์น˜ ์„ค๊ณ„์ž…๋‹ˆ๋‹ค. ๋‘ ๋งค์น˜๋ฉ”์ด์ปค-๋Œ€๊ธฐ์—ด ํŽ˜์–ด ๊ฐ„์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ด์œ ๋Š” ๋งค์น˜๋ฉ”์ดํ‚น ๊ด€์ ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ถ„ํ• ๋  ๊ฒฝ์šฐ ์ตœ์ ์˜ ๋งค์น˜๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ๋” ์–ด๋ ค์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ

    ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ

    GameLift ๋งค์น˜๋ฉ”์ดํ‚น ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ FlexMatch๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์ˆ˜์˜ ๋งค์น˜๋ฉ”์ด์ปค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ‘œ์ค€ ๊ฒŒ์ž„ ๋งค์น˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋งค์น˜๋ฉ”์ด์ปค์™€ ๊ณ ๊ธ‰ ๋งค์น˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋งค์น˜๋ฉ”์ด์ปค๋ฅผ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค๋Š” ๊ฐ๊ฐ MatchmakingRuleset๋ฅผ ์ฐธ์กฐํ•˜๋Š” MatchmakingConfiguration์— ์ •์˜๋ฉ๋‹ˆ๋‹ค. ๊ทœ์น™ ์„ธํŠธ๋Š” ๊ทœ์น™์˜ ์‹œ๊ฐ„๋Œ€๋ณ„ ์ˆ˜์ •์ธ ๊ทœ์น™ ์„ธํŠธ ํ™•์žฅ์— ์˜ํ•ด ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ๋งค์น˜๋ฉ”์ด์ปค๋Š” ๋งค์น˜๋ฉ”์ดํ‚น ์š”์ฒญ์— ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋ฅผ ํ†ตํ•ด ์ œ์ถœ๋˜๋ฉฐ, ๋งค์น˜๋ฉ”์ดํ‚น ๊ทœ์น™์— ์‚ฌ์šฉ๋˜๋Š” ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ ๋ฐ์ดํ„ฐ์™€ ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ด์ปค๋Š”ย **CreateMatchmakingConfiguration( )**์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฆฌ์ „์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ๋งค์นญ ๊ธฐ์ค€์„ ์ •์˜ํ• ๋•Œ ๋งค์น˜๋ฉ”์ดํ‚น ๊ทœ์น™ ์„ธํŠธ๋ฅผ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค.

    ๋งค์น˜๋Š” ๊ฐ ๋งค์น˜๋ฉ”์ดํ‚น ์š”์ฒญ์—์„œ ํ•˜๋‚˜๋กœ ๊ทธ๋ฃนํ™”๋œ ๋งค์น˜๋ฉ”์ดํ‚น ํ‹ฐ์ผ“ ์„ธํŠธ์ด๋ฉฐ ํ”Œ๋ ˆ์ด์–ด ๋งค์นญ์— ๋Œ€ํ•œ ๊ทœ์น™ ์„ธํŠธ ๊ธฐ์ค€์„ ์ถฉ์กฑํ•ฉ๋‹ˆ๋‹ค.

    ์ž‘๋™ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.ย **StartMatchmakingRequest( )**๋ฅผ ์ œ์ถœํ•ฉ๋‹ˆ๋‹ค. FlexMatch๋Š” ํ•ด๋‹น ์š”์ฒญ์— ๋Œ€ํ•œ ๋งค์น˜๋ฉ”์ดํ‚น ํ‹ฐ์ผ“์„ ์ƒ์„ฑํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ด ํ’€์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉดย MatchmakingSearchingย ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ดํ‚น ์š”์ฒญ์—๋Š” 2๋ช… ์ด์ƒ์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๊ฒฝ์šฐ ์š”์ฒญ์˜ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ•ญ์ƒ ๋™์ผํ•œ ๋งค์น˜์— ํฌํ•จ๋˜์–ด์•ผ ํ•˜๊ณ  ์š”์ฒญ์˜ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ทœ์น™์„ ์ถฉ์กฑํ•ด์•ผ ํ‹ฐ์บฃ์ด ๋งค์นญ๋ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ํ’€์˜ ํ•œ ํ‹ฐ์ผ“์€ ์•ต์ปค๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํ‹ฐ์ผ“์ด ์•ต์ปค๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ์•ต์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜๋จธ์ง€ ํ‹ฐ์ผ“์— ๋Œ€ํ•œ ์ฒ ์ €ํ•œ ๊ฒ€์ƒ‰์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ข‹์€ ๋งค์น˜๊ฐ€ ํ˜•์„ฑ๋˜๋ฉด ํ’€์˜ ๋ชจ๋“  ๋งค์นญ ํ‹ฐ์ผ“์ด ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉดย PotentialMatchCreatedย ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ด์ปค ๊ตฌ์„ฑ์—ย AcceptanceRequiredย ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œย PotentialMatchCreatedย ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š”ย AcceptMatch()๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์ค‘ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋งค์น˜๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ฑฐ๋‚˜ ์ง€์ •๋œ ์ œํ•œ ์‹œ๊ฐ„ ์ „์— ์ˆ˜๋ฝ์ด ์ˆ˜์‹ ๋˜์ง€ ์•Š์œผ๋ฉด ์ œ์•ˆ๋œ ๋งค์น˜๊ฐ€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ดํ‚น ํ‹ฐ์ผ“์€ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. 1๋ช… ์ด์ƒ์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒฝ๊ธฐ๋ฅผ ๊ฑฐ๋ถ€ํ•œ ํ‹ฐ์ผ“์˜ ๊ฒฝ์šฐ ํ‹ฐ์ผ“ ์ƒํƒœ๊ฐ€ย SEARCHINGย ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์ƒˆ ๋งค์น˜๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. 1๋ช… ์ด์ƒ์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š๋Š” ํ‹ฐ์ผ“์˜ ๊ฒฝ์šฐ ํ‹ฐ์ผ“ ์ƒํƒœ๊ฐ€ย CANCELLED์œผ๋กœ ์„ค์ •๋˜๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด๋Ÿฌํ•œ ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ์ƒˆ ๋งค์น˜๋ฉ”์ดํ‚น ์š”์ฒญ์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒฝ๊ธฐ๋ฅผ ์ˆ˜๋ฝํ•˜๋ฉดย AcceptMatchCompletedย ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ์•ต์ปค๋กœ ๋งค์น˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ œ์•ˆ๋œ ๋งค์น˜๊ฐ€ ์‚ญ์ œ๋˜๊ณ  ๋‹ค๋ฅธ ์•ต์ปค๊ฐ€ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ๋งค์น˜๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ’€์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค. ํ‹ฐ์ผ“์ด ํ’€์— ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ์†๋„๊ฐ€ ๋น„์Šทํ•˜๋ฉด ๋™์  ๊ท ํ˜•์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ’€์— ๋‚จ์•„ ์žˆ๋Š” ํ‹ฐ์ผ“์ด ์˜ค๋ž˜๋˜๋ฉด ๊ทœ์น™ ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์นญ ๊ทœ์น™์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ทœ์น™ ํ™•์žฅ์€ ์ง€์ •๋œ ๊ธฐ๊ฐ„(์ดˆ) ํ›„์— ๊ทœ์น™์„ ์ˆ˜์ •ํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ๊ทœ์น™ ํ™•์žฅ์€ ์ œ์•ˆ๋œ ๋งค์น˜์˜ ๋ชจ๋“  ํ‹ฐ์ผ“์ด ์ง€์ •๋œ ๊ธฐ๊ฐ„๋ณด๋‹ค ์˜ค๋ž˜๋œ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด์ „ ํ‹ฐ์ผ“์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ ๋„์ฐฉํ•˜๋Š” ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ ์ ˆํ•œ ๋งค์น˜๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ๋งค์น˜๊ฐ€ ์ƒ์„ฑ๋˜๋ฉดย MatchmakingSucceededย ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค์— ์ง€์ •๋œ ๊ธฐ๊ฐ„ ๋‚ด์— ๋งค์น˜๋ฉ”์ดํ‚น ํ‹ฐ์ผ“์ด ๋งค์นญ๋˜์ง€ ์•Š์œผ๋ฉดย MatchmakingTimedOutย ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    ์ด ์˜ˆ์—์„œ๋Š” ๋งค์น˜๋ฉ”์ดํ‚น ์ •์ฑ…์— ๋”ฐ๋ผ ์ •ํ™•ํžˆ 4๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    1๋ฒˆ์˜ ๊ฒฝ์šฐ FlexMatch๋Š” ํ”Œ๋ ˆ์ด์–ด 2๋ช…์ด ํฌํ•จ๋œ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๊ณ  ์ด 2๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ๋งค์น˜ ํ‹ฐ์ผ“์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ 2๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ๋‘ ๋ฒˆ์งธ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๊ณ  ์ด 2๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•œ ๋งค์น˜ ํ‹ฐ์ผ“์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ‹ฐ์ผ“์€ ํ’€ ์•ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทœ์น™์€ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํ‹ฐ์ผ“์€ ์•ต์ปค๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ๋‹ค๋ฅธ ํ‹ฐ์ผ“์€ ์•ต์ปค์™€ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋ฉด ๋งค์น˜๊ฐ€ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค.

    2๋ฒˆ์˜ ๊ฒฝ์šฐ FlexMatch๋Š” 3๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํฌํ•จ๋œ ์š”์ฒญ๊ณผ 1๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํฌํ•จ๋œ ๋‹ค๋ฅธ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํ‹ฐ์ผ“์€ ์•ต์ปค๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ๋‹ค๋ฅธ ํ‹ฐ์ผ“์€ ์•ต์ปค์™€ ๋น„๊ต๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜๋ฏ€๋กœ ์ผ์น˜๊ฐ€ ํ˜•์„ฑ๋ฉ๋‹ˆ๋‹ค.

    3๋ฒˆ์˜ ๊ฒฝ์šฐ FlexMatch๋Š” ํ”Œ๋ ˆ์ด์–ด 3๋ช…์ด ํฌํ•จ๋œ ์š”์ฒญ๊ณผ ํ”Œ๋ ˆ์ด์–ด 2๋ช…์ด ํฌํ•จ๋œ ๋‹ค๋ฅธ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ˆซ์ž๊ฐ€ 4์ธ ๊ทœ์น™์„ ์ถฉ์กฑํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋งค์น˜๋ฅผ ํ˜•์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ดํ‚น ๊ทœ์น™ ์„ธํŠธ๋Š” ๋งค์น˜๋ฉ”์ด์ปค๊ฐ€ ์ž์ฒด ๊ตฌ์„ฑ ์ด์ƒ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ์ •์˜ํ•˜๋Š” JSON ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ๊ทœ์น™ ์„ธํŠธ์—๋Š” ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ, ๊ฒŒ์ž„์—์„œ ํ—ˆ์šฉ๋˜๋Š” ํŒ€ ๊ตฌ์„ฑ, ํ”Œ๋ ˆ์ด์–ด ๋งค์นญ ๊ทœ์น™, ์ผ์ • ๊ธฐ๊ฐ„ ํ›„์— ๊ทœ์น™์„ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•œ ํ™•์žฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ทœ์น™ ์„ธํŠธ์—๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ํ”Œ๋ ˆ์ด์–ด ์ˆ˜๊ฐ€ ์ตœ๋Œ€ 40๋ช…์ธ โ€œ์†Œ๊ทœ๋ชจ ๋งค์น˜โ€๋ผ๊ณ  ํ•˜๋Š” ์œ ํ˜•์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฐฐํ‹€๋กœ์–„ ์Šคํƒ€์ผ์˜ ๊ฒŒ์ž„์„ ์œ„ํ•œ โ€œ๋Œ€๊ทœ๋ชจ ๋งค์น˜โ€๋ผ๋Š” ์œ ํ˜•์œผ๋กœ ์ด ์œ ํ˜•์˜ ํ”Œ๋ ˆ์ด์–ด๋Š” ์ตœ๋Œ€ 200๋ช…์ž…๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ๋งค์น˜์—๋Š” ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ถ”๊ฐ€์ ์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ทœ์น™ ์ˆ˜๋ฅผ ๋‹จ 1๊ฐœ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

    ๋Œ€๊ทœ๋ชจ ๋งค์น˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์œ ์‚ฌํ•œ ํ”Œ๋ ˆ์ด์–ด๋กœ ๋” ํฐ ๋งค์น˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋‘๊ฑฐ๋‚˜ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๊ฐ€๋Šฅํ•œ ์ตœ์ƒ์˜ ํ”Œ๋ ˆ์ด์–ด ์ง€์—ฐ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๋งค์น˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฐœ๋ฐœ์ž๋Š” ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ์„ ์ •์˜ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๊ฐ ํ”Œ๋ ˆ์ด์–ด์— ๋Œ€ํ•ด ์ „๋‹ฌ๋˜๋Š” ์ •๋ณด๋ฅผ ์„ค๋ช…ํ•˜๋ฉฐ, ๋งค์น˜ ๊ฒฐ์ •์€ ์ด ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‚ด๋ ค์ง‘๋‹ˆ๋‹ค.

    ๊ฐ ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ์€ "string", "number", "string_list" ๋˜๋Š” "string_number_map" ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ”Œ๋ ˆ์ดํ•˜๊ณ ์ž ํ•˜๋Š” ๋งต, ์„ ํƒํ•œ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ๋ชจ๋“œ, ์„ ํ˜ธํ•˜๋Š” ํŒ€ ๋˜๋Š” ์—ญํ•  ๋˜๋Š” ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์„ ํƒํ•œ ์บ๋ฆญํ„ฐ ํด๋ž˜์Šค ๋“ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

    ํ‹ฐ์ผ“์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋งค์น˜์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‹ฐ์ผ“์— ๊ทœ์น™์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

    ์†์„ฑ ํ‘œํ˜„์‹์€ ์†์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทœ์น™์œผ๋กœ ํ‰๊ฐ€๋  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ๊ฒฐํ•ฉ๋œ ์š”์ฒญ์„ ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ์— ์ œ์ถœํ•˜๊ธฐ ์ „์— ํ”Œ๋ ˆ์ด์–ด ์š”์ฒญ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. GameLift Client SDK๋ฅผ ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์— ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ๋Š”

    ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฒซ ๋ฒˆ์งธ๋Š” ๋ณด์•ˆ์ž…๋‹ˆ๋‹ค. GameLift API๋Š” ํ•จ์ˆ˜๋ณ„ ์ธ์ฆ์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ์˜ ์ธ์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์™€ ๋งค์น˜๋ฉ”์ดํ‚น ๊ฐ„์˜ ํ†ต์‹ ์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋˜ ๋‹ค๋ฅธ ์ด์œ ๋Š” ๋งค์น˜๋ฉ”์ดํ‚น ์š”์ฒญ์˜ ์ผ๊ด„ ์ฒ˜๋ฆฌ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ฐ˜์ ์œผ๋กœ 4๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์žˆ์ง€๋งŒ 4๋ช…์ด ์—†์„ ๋•Œ 2๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ž„์—์„œ ๊ฐ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋งค์น˜๋ฉ”์ดํ‚น์— ์ง์ ‘ ์š”์ฒญ์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ”Œ๋ ˆ์ด์–ด๊ฐ€ 2๋ช…์ธ ๊ฒŒ์ž„์ด ๋งŽ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค๋Š” ๋‹จ์ˆœํžˆ ๊ฐœ๋ณ„ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์š”์ฒญํ•  ๋•Œ๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๋งค์น˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๊ฐ€ ์š”์ฒญ์„ ์ˆ˜์ง‘ํ•˜๊ณ  4๋ช…์˜ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๋Š” ๋‹จ์ผ ํ‹ฐ์ผ“์„ ์ œ์ถœํ•˜๋ฉด ๋งค์น˜๋ฉ”์ด์ปค๋Š” 4์ธ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ๋˜ ๋‹ค๋ฅธ ์ด์œ ๋Š” ์†์„ฑ ๊ฐ’์„ ์‚ฌ์ „ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ํ•ด์„ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ ˆ๋Œ€ ์†์„ฑ ๊ฐ’์„ ๋ฐฑ๋ถ„์œจ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ๋กœ๊ทธ ์ฒ™๋„๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๊ณ , ๋˜๋Š” ์†์„ฑ ๊ฐ’์„ ํžˆ์Šคํ† ๊ทธ๋žจ์— ๋งคํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ˆ˜์š”์˜ ๊ธ‰๊ฒฉํ•œ ๋ณ€ํ™”์™€ ํŠน์ด์ ์„ ๊ฐ€์ง„ ์†์„ฑ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํŒ€

    ํŒ€ ํฌ๊ธฐ๊ฐ€ ๊ฐ™์„ ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ํŒ€์€ ์—ฌ๋Ÿฌ ์œ ํ˜•์˜ ์บ๋ฆญํ„ฐ๋‚˜ ์—ญํ• ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ ํŒ€์—๋Š” ๋งˆ๋ฒ•์‚ฌ ์ „์‚ฌ, ์„ฑ์ง์ž, ๋„๋‘‘์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ทœ์น™์—๋Š” 6๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฑฐ๋ฆฌ ๊ทœ์น™์€ ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ ๊ฐ’์„ ์ง€์ •๋œ ๋ฒ”์œ„ ๋‚ด์— ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

    ๋น„๊ต ๊ทœ์น™์€ ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ ๊ฐ’ ๊ฐ„์˜ ๋…ผ๋ฆฌ์  ๋น„๊ต๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์ปฌ๋ ‰์…˜ ๊ทœ์น™์€ ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ ๊ฐ’ ์„ธํŠธ ๊ฐ„์˜ ๊ต์ฐจ์ ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    ์ง€์—ฐ ๊ทœ์น™์€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฆฌ์ „์ด ๋™์ผํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ๋งค์นญ์„ ํ—ˆ์šฉํ•˜์—ฌ ๋ชจ๋‘์—๊ฒŒ ์งง์€ ์ง€์—ฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ๊ฑฐ๋ฆฌ ์ •๋ ฌ ๊ทœ์น™์€ ์•ต์ปค ์š”์ฒญ์œผ๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์•ต์ปค ์š”์ฒญ์˜ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋งค์น˜๋ฉ”์ดํ‚น ์š”์ฒญ์„ ๋ฏธ๋ฆฌ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

    ์ ˆ๋Œ€ ์ •๋ ฌ ๊ทœ์น™์€ ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋งค์น˜๋ฉ”์ดํ‚น ์š”์ฒญ์„ ์˜ค๋ฆ„์ฐจ์ˆœ ๋˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฏธ๋ฆฌ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

    ์ด ๊ทœ์น™์€ ๊ณ„์‚ฐ๋œ ํŒ€ ์†์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

    **count(teams[cowboys].players)**๋Š” "์นด์šฐ๋ณด์ด ํŒ€๊ณผ ํ”Œ๋ ˆ์ด์–ด ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ค๊ณ  ํ”Œ๋ ˆ์ด์–ด ์ˆ˜๋ฅผ ๊ณ„์‚ฐ"ํ•  ๊ฒƒ์„ ์ง€์‹œํ•˜๋Š” ์†์„ฑ ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค. ์ด ์‹์€ ํ•˜๋‚˜์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

    ๋˜๋‹ค๋ฅธ ์†์„ฑ ํ‘œํ˜„์‹์ธย **count(teams[aliens].players)**๋Š” ๋‹ค๋ฅธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ์ด ๊ทœ์น™์€ ๊ฐœ๋ณ„ ํ”Œ๋ ˆ์ด์–ด ์†์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ ์†์„ฑ์€ ํ”Œ๋ ˆ์ด์–ด ์Šคํ‚ฌ์ž…๋‹ˆ๋‹ค.

    **avg(teams[*].players.attributes[skill])**์€ "๊ฐ ํŒ€, ๊ฐ ํŒ€์˜ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด ๋ฐ ์Šคํ‚ฌ ์†์„ฑ์„ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ ์ด ๋ชจ๋“  ์†์„ฑ์˜ ํ‰๊ท ์„ ๊ณ„์‚ฐ"ํ•  ๊ฒƒ์„ ์ง€์‹œํ•˜๋Š” ์†์„ฑ ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ ํŒ€์˜ ํ‰๊ท  ์Šคํ‚ฌ ๋ ˆ๋ฒจ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ•˜๋‚˜์˜ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

    ๋˜ ๋‹ค๋ฅธ ์ •๋ฆฌ ์†์„ฑ ํ‘œํ˜„์‹์ธ**avg(flatten(teams[*].players.attributes[skill]))**์€ ๋‹ค๋ฅธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ์ด ๊ทœ์น™์€ ๊ฐ ํŒ€ ์Šคํ‚ฌ ๊ฐ’์ด ๋ชจ๋“  ํŒ€์˜ ๊ฒฐํ•ฉ๋œ ์ „์ฒด ์Šคํ‚ฌ ๊ฐ’์—์„œ 10์˜ ๊ฑฐ๋ฆฌ ๋‚ด์— ์žˆ๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ์จ ๊ณต์ •ํ•œ ๋งค์น˜๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ดํ‚น ์ œ์–ด

    ๋งค์น˜๋ฉ”์ดํ‚น ์ง€์—ฐ ๊ทœ์น™์€ ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ๋งค์น˜์— ๋Œ€ํ•œ ์ง€์—ฐ์„ ํŠน๋ณ„ํžˆ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด, ๋งค์น˜๋œ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด๋“ค์˜ ๋ฆฌ์ „ ์ง€์—ฐ์ด ๋ฐ˜๋“œ์‹œ ์ตœ๋Œ€ ํ•œ๋„ ์ด๋‚ด์—ฌ์•ผ ํ•œ๋‹ค๊ณ  ๊ทœ์น™์œผ๋กœ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ๊ทœ์น™ ์œ ํ˜•์€ ๋Œ€๊ทœ๋ชจ ๋งค์น˜์— ๋Œ€ํ•œ ๊ทœ์น™ ์„ธํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๊ทœ์น™ ์œ ํ˜•์ด๋ฉฐ maxLatency ์„ค์ •๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ•œ ๋ฆฌ์ „ ์ฃผ๋ณ€์— ์žˆ๋Š” ํ”Œ๋ ˆ์ด์–ด๋“ค์ด ํ•จ๊ป˜ ๋งค์นญ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ๋ชจ๋‘๊ฐ€ ์งง์€ ์ง€์—ฐ์œผ๋กœ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ทœ์น™ ํ™•์žฅ์€ ์ง€์ •๋œ ๊ธฐ๊ฐ„(์ดˆ) ํ›„์— ๊ทœ์น™์„ ์ˆ˜์ •ํ•˜๋Š” ๋‹จ๊ณ„๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ๊ทœ์น™ ํ™•์žฅ์€ ์ œ์•ˆ๋œ ๋งค์น˜์˜ ๋ชจ๋“  ํ‹ฐ์ผ“์ด ์ง€์ •๋œ ๊ธฐ๊ฐ„๋ณด๋‹ค ์˜ค๋ž˜๋œ ๊ฒฝ์šฐ์—๋งŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด์ „ ํ‹ฐ์ผ“์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ ๋„์ฐฉํ•˜๋Š” ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ ์ ˆํ•œ ๋งค์น˜๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ์œ„์˜ ์˜ˆ์—์„œ ๊ณ ๋ ค๋œ FairTeamSkill ๊ทœ์น™์€ ์ผ์ • ๊ธฐ๊ฐ„ ํ›„์— ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.

    ํ‹ฐ์ผ“์ด ์ƒ์„ฑ๋˜๋ฉด ์›๋ž˜ ๊ทœ์น™์— ๋”ฐ๋ผ ํŒ€ ๊ธฐ์ˆ ์ด ํ‰๊ท  ํŒ€ ์Šคํ‚ฌ์—์„œ ์ตœ๋Œ€ 10๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ‹ฐ์ผ“๊ณผ ๋งค์นญ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ‹ฐ์ผ“์ด 5์ดˆ๊ฐ€ ๋˜๋ฉด ํŒ€ ์Šคํ‚ฌ์ด ํ‰๊ท  ํŒ€ ์Šคํ‚ฌ์—์„œ ์ตœ๋Œ€ 50๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ‹ฐ์ผ“๊ณผ ๋งค์นญ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ‹ฐ์ผ“์ด 20์ดˆ๊ฐ€ ๋˜๋ฉด ํŒ€ ์Šคํ‚ฌ์ด ํ‰๊ท  ํŒ€ ์Šคํ‚ฌ์—์„œ ์ตœ๋Œ€ 100๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ์— ์žˆ๋Š” ๋‹ค๋ฅธ ํ‹ฐ์ผ“๊ณผ ๋งค์นญ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„์—๋Š” ์ตœ๋Œ€ ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ดํ‚น ์ค‘์— ๋ชจ๋‘ ์ฑ„์›Œ์งˆ ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ์ผ๋ถ€ ๊ฒŒ์ž„์€ ํ”Œ๋ ˆ์ด์–ด์˜ ์ „์ฒด ๋ณด์ถฉ ์—†์ด ์‹œ์ž‘๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‘ ๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ „์ฒด ๊ฒŒ์ž„์—์„œ ๋‚˜๊ฐˆ ๊ฒฝ์šฐ ๋นˆ ์Šฌ๋กฏ์„ ๋‹ค์‹œ ์ฑ„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฑ„์šฐ๊ธฐ๋Š” ์‹คํ–‰ ์ค‘์ธ ๊ฒŒ์ž„์˜ ํ”Œ๋ ˆ์ด์–ด์™€ ๋งค์น˜๋ฉ”์ดํ‚น ํ’€์˜ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋งค์นญํ•˜์—ฌ ๊ฒŒ์ž„์˜ ์ถ”๊ฐ€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ฑ„์šฐ๊ธฐ์˜ ๋‹จ์ผ ํŒจ์Šค๋กœ ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด์–ด ์Šฌ๋กฏ์ด ์™„์ „ํžˆ ์ฑ„์›Œ์งˆ ์ˆ˜๋„ ์žˆ๊ณ  ์ฑ„์›Œ์ง€์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฑ„์šฐ๊ธฐ๋Š”ย MatchmakingConfiguration์— ์ •์˜๋œ ๋Œ€๋กœ ์„œ๋ฒ„์—์„œ ์‹œ์ž‘๋˜๊ฑฐ๋‚˜ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ๊ฐ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ž๋™ ์ฑ„์šฐ๊ธฐ๋Š” ์ฒซ ๋ฒˆ์งธ ์ฑ„์šฐ๊ธฐ ์‹œ๋‚˜๋ฆฌ์˜ค์—๋งŒ ์ ์šฉ๋˜๋ฉฐ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์™„์ „ํžˆ ๋ณด์ถฉํ•˜์ง€ ์•Š๊ณ  ์‹œ์ž‘๋˜๋Š” ๊ฒŒ์ž„์„ ์ฑ„์›๋‹ˆ๋‹ค. ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋งค์น˜๊ฐ€ ์ƒ์„ฑ๋œ ํ›„ ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์™„์ „ํžˆ ๋ณด์ถฉ๋  ๋•Œ๊นŒ์ง€ ์ฑ„์šฐ๊ธฐ ํŒจ์Šค๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„์— ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ถ”๊ฐ€๋  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด ๋‚ด์—์„œ ์‹ ๊ทœ ๋ฐ ๊ธฐ์กด ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ํ”Œ๋ ˆ์ด์–ด ๋ชฉ๋ก๊ณผ ํ•จ๊ป˜ย updateGameSession( )ย ์ฝœ๋ฐฑ์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.

    ์ˆ˜๋™ ์ฑ„์šฐ๊ธฐ๋Š” ์„œ๋ฒ„์—์„œ ์‹œ์ž‘๋˜๋Š” ์ฑ„์šฐ๊ธฐ์™€ ๋‹ฌ๋ฆฌ ๋‘ ์ฑ„์šฐ๊ธฐ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋ชจ๋‘ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š”ย **StartMatchBackfill( )**์„ ํ†ตํ•ด ์ฑ„์šฐ๊ธฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ํ˜„์žฌ ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์˜ ๋งค์น˜๋ฉ”์ด์ปค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ GameLift๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋งค์น˜๋ฉ”์ดํ‚น ํ‹ฐ์ผ“์ด ์ƒ์„ฑ๋˜๊ณ  ํ’€์— ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ดํ‚น ํ”„๋กœ์„ธ์Šค๋Š” ํ‰์†Œ์™€ ๊ฐ™์ด ์ง„ํ–‰๋˜๋ฉฐ, ์ฑ„์šฐ๊ธฐ ํ‹ฐ์ผ“์„ ๋‹ค๋ฅธ ํ‹ฐ์ผ“๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋งค์น˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค์น˜๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด ๋‚ด์—์„œ ์‹ ๊ทœ ๋ฐ ๊ธฐ์กด ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํฌํ•จํ•œ ์ „์ฒด ํ”Œ๋ ˆ์ด์–ด ๋ชฉ๋ก๊ณผ ํ•จ๊ป˜ย updateGameSession( )ย ์ฝœ๋ฐฑ์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ์— ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ์—ฐ๊ฒฐ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๋งค์น˜๋ฉ”์ดํ‚น ํ‹ฐ์ผ“์— ๋Œ€ํ•œ SNS ์•Œ๋ฆผ์„ ์ˆ˜์‹ ํ•˜๋ฉฐ, ์ด ์ •๋ณด๋Š” ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์— ์˜ํ•ด ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ „๋‹ฌ๋˜์–ด ๊ฒŒ์ž„ ์„ธ์…˜์— ์ฐธ๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    GameLift FlexMatch ์ด๋ฒคํŠธ๋Š” SNS ์•Œ๋ฆผ์„ ํ†ตํ•ด ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๋Š” ์ด๋Ÿฌํ•œ ์•Œ๋ฆผ์„ ๊ตฌ๋…ํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ์— ์‘๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    FlexMatch ๋งค์น˜๋ฉ”์ดํ‚น ์ด๋ฒคํŠธ

    MatchmakingSearching์€ ๋งค์น˜๋ฉ”์ดํ‚น ํ’€์— ํ‹ฐ์ผ“์„ ์ž…๋ ฅํ•  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค.

    PotentialMatchCreated๋Š” ํ‹ฐ์ผ“์ด ๊ทœ์น™ ์„ธํŠธ๋ฅผ ๋งŒ์กฑํ•˜๊ณ  ๋งค์น˜๊ฐ€ ํ˜•์„ฑ๋  ๋•Œ ์ƒ์„ฑ๋˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ด์ปค๊ฐ€ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์ˆ˜๋ฝ์„ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐฑ์—”๋“œ๋Š” ์ด ์‹œ์ ์—์„œ ์ด ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ด๋ฒคํŠธ๋Š” ๋งค์น˜๋ฉ”์ด์ปค๊ฐ€ ๊ฒŒ์ž„ ์ˆ˜๋ฝ์„ ์š”๊ตฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    AcceptMatch๋Š” ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ž ์žฌ์  ๋งค์น˜๋ฅผ ์ˆ˜๋ฝํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค. ๋งค์น˜์— ์žˆ๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ํ˜„์žฌ ์ˆ˜๋ฝ ์ƒํƒœ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    AcceptMatchCompleted๋Š” ํ”Œ๋ ˆ์ด์–ด ์ˆ˜๋ฝ์ด ์™„๋ฃŒ๋˜๊ฑฐ๋‚˜, ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฑฐ๋ถ€ํ•˜๊ฑฐ๋‚˜, ์ˆ˜๋ฝ ์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋งค์น˜์˜ ์ตœ์ข… ์ˆ˜๋ฝ ์ƒํƒœ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    MatchmakingSucceeded๋Š” ๋งค์น˜๋ฉ”์ดํ‚น์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๊ณ  ๊ฒŒ์ž„ ์„ธ์…˜์ด ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    MatchmakingTimedOut์€ MatchmakingConfiguration์˜ย RequestTimeoutSecondsย ์†์„ฑ๋ณด๋‹ค ์˜ค๋ž˜๋œ ํ‹ฐ์ผ“์ด ๋งŒ๋ฃŒ๋  ๋•Œ๋งˆ๋‹ค ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    MatchmakingCancelled๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œย **StopMatchmaking( )**์„ ํ˜ธ์ถœํ•˜์—ฌ ๋งค์น˜๋ฉ”์ดํ‚น ํ‹ฐ์ผ“์ด ์ทจ์†Œ๋œ ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

    MatchmakingFailed๋Š” FlexMatch ๋‚ด๋ถ€ ๋ฌธ์ œ๋กœ ์ธํ•ด ํ‹ฐ์ผ“์ด ํ๊ธฐ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.ย GameSessionPlacementQueue์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค.

    ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ SNS ์ฃผ์ œ๋ฅผ ์ƒ์„ฑํ•œ ๋‹ค์Œ Lambda์™€ ๊ฐ™์€ ํ˜ธํ™˜๋˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ๋…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    FlexMatch ์ด๋ฒคํŠธ๋Š” ๋งค์น˜๋ฉ”์ดํ‚น ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•  ๋•Œ ์šฐ์„ ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋‚ฎ์€ TPS(์ดˆ๋‹น ํŠธ๋žœ์žญ์…˜ ์ˆ˜)๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œย **DescribeMatchmaking( )**๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋ณด๋‹ค ํ™•์žฅ์„ฑ์ด ํ›จ์”ฌ ๋›ฐ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

    ์‹ค์ œ๋กœ ์ฑ„์šฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š” ๊ฑฐ์˜ SNS ์ฃผ์ œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œ ๋งค์น˜๋ฉ”์ด์ปค๋ฅผ ์ง€์†์ ์œผ๋กœ ํด๋งํ•˜๋Š” ์ผ์ด ์—†๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • GameLift ๊ฐœ๋ฐœ ๊ฐœ์š”

    GameLift ๊ฐœ๋ฐœ ๊ฐœ์š”

    ์ด ๋‹จ์›์—์„œ๋Š” GameLift๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. GameLift์˜ ์ผ๋ถ€๋ฅผ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ†ตํ•ฉํ•˜๊ณ  GameLift์˜ ๋‹ค๋ฅธ ์ผ๋ถ€๋ฅผ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ†ตํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๋ฉด์„œ ์ „์ฒด์ ์ธ ๊ทธ๋ฆผ์œผ๋กœ ์ „๊ฐœํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด ๊ตฌ์„ฑ ์š”์†Œ

    ํ”Œ๋ ˆ์ด์–ด๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒŒ์ž„ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๋Š” ๋ณดํ†ต Unity(C# ์‚ฌ์šฉ) ๋˜๋Š” Unreal Engine์ด๋‚˜ Lumberyard(C++ ์‚ฌ์šฉ)์™€ ๊ฐ™์€ ๊ฒŒ์ž„ ์—”์ง„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ปดํ“จํ„ฐ, ๊ฒŒ์ž„ ์ฝ˜์†”, ํƒœ๋ธ”๋ฆฟ, ์ „ํ™” ๋˜๋Š” ๊ฐ€์ƒ ํ˜„์‹ค ๊ธฐ์–ด์™€ ๊ฐ™์€ ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ๋””๋ฐ”์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด์˜ ๋””๋ฐ”์ด์Šค์™€ ํ”Œ๋ ˆ์ด์–ด ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ GameLift์™€ ์ง์ ‘ ํ†ต์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๊ฒŒ์ž„ ๋””๋ฐ”์ด์Šค๋Š” ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋ผ๊ณ  ํ•˜๋Š” ๋ณ„๋„์˜ ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์„ค๋ช…์„œ์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์„œ๋น„์Šค๋ผ๊ณ ๋„ ํ•˜์ง€๋งŒ ์ด ๊ณผ์ •์—์„œ๋Š” ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ๋‹ค์ˆ˜์˜ ์›น ์ง€ํ–ฅ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์–ธ์–ด๋กœ๋Š” C#, Javascript, Java, Node.js, PHP, Python ๋ฐ Ruby๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋œ ์ผ๋ฐ˜์ ์ด์ง€๋งŒ ๊ฐ€๋Šฅํ•œ ์–ธ์–ด๋กœ๋Š” C++๊ณผ Go๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ํ”Œ๋ ˆ์ด์–ด ์ธ์ฆ์„ ํ†ตํ•ด ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๊ฒŒ์ž„ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๋ ค๋Š” ๊ฐœ๋ณ„ ํ”Œ๋ ˆ์ด์–ด์˜ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ GameLift API๋ฅผ ํ†ตํ•ด GameLift์™€ ํ†ต์‹ ํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์œ„ํ•œ ๊ฒŒ์ž„์„ ์ฃผ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—๋Š” ๊ฒŒ์ž„ ์—”์ง„์˜ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ย ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์˜ ์—ญํ• ์€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๊ฒŒ์ž„์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ๋Š” ๊ฒŒ์ž„์„ ์›ํ•˜๋Š” ํ”Œ๋ ˆ์ด์–ด์™€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์œ„ํ•ด ์ค€๋น„๋œ ๊ฒŒ์ž„์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ธŒ๋กœ์ปค์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ฒŒ์ž„ ์„ธ์…˜์— ์—ฐ๊ฒฐ๋œ ํ›„์—๋Š” ๊ด€์—ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ดํ›„์— ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์™€ ๊ฒŒ์ž„ ๋””๋ฐ”์ด์Šค๋Š” ์‹คํ–‰ ์ค‘์ธ ๊ฒŒ์ž„ ์„ธ์…˜๊ณผ ์ง์ ‘ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์€ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์‹คํ–‰ ์ค‘์ธ ์ธ์Šคํ„ด์Šค์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜์ด ์–ด๋””์„œ ์‹œ์ž‘๋˜๋Š”์ง€ ๋ด…์‹œ๋‹ค.

    ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด ํ†ตํ•ฉ

    ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ C# ๋˜๋Š” C++๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. Unity ๊ฐœ๋ฐœ์ž๋Š” C#์„ ์‚ฌ์šฉํ•˜๋ฉฐ Unreal Engine ๋ฐ Lumberyard ๊ฐœ๋ฐœ์ž๋Š” C++๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. GameLift๋Š” C++ ๋˜๋Š” C#์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ๊ฒŒ์ž„ ์—”์ง„๊ณผ๋„ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์ž„ ์—”์ง„์˜ ์š”์†Œ๊ฐ€ ํฌํ•จ๋˜์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฑ์—”๋“œ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ Windows Server ์šด์˜ ์ฒด์ œ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜์ง€๋งŒ, ๋ฐฑ์—”๋“œ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๋“ค์˜ ๊ฒฝ์šฐ ์ €๋ ดํ•œ ๋ผ์ด์„ ์Šค ๋น„์šฉ ๋•์— ๋Œ€๊ทœ๋ชจ๋กœ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ ์ƒ๋‹นํ•œ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์  ๋•Œ๋ฌธ์— Linux๋ฅผ ์ฑ„ํƒํ•˜๋Š” ์ถ”์„ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์—๋Š” ๊ฒŒ์ž„์ด ์‹คํ–‰ ์ค‘์ผ ๋•Œ GameLift์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” Amazon GameLift SDK๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํŒŒ์ผ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” ์‹คํ–‰ ํŒŒ์ผ, ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์‹คํ–‰ ํŒŒ์ผ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ข…์† ์†Œํ”„ํŠธ์›จ์–ด ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ GameLift์— ์—…๋กœ๋“œํ•œ ํ›„ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” GameLift ๋นŒ๋“œ๋ผ๋Š” ๋‹จ์ผ ๊ฐ์ฒด๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ๊ฐ์ฒด๋Š” ๋ถˆํˆฌ๋ช…ํ•ฉ๋‹ˆ๋‹ค. GameLift ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๋นŒ๋“œ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. GameLift๋Š” ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ ๋นŒ๋“œ๊ฐ€ ์ตœ์†Œ ๊ธฐ์ค€(์˜ˆ: ์‹คํ–‰ ํŒŒ์ผ ํฌํ•จ)์„ ์ถฉ์กฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜๋ฉด [Ready]๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

    ๋นŒ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ํ”Œ๋ฆฟ์„ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    GameLift์— ํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•˜๋„๋ก ์š”์ฒญํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋กœ EC2 ์‹œ๋“œ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ์ธ์Šคํ„ด์Šค๋Š” ๋นŒ๋“œ์˜ ๋ณต์‚ฌ๋ณธ๊ณผ ํ•จ๊ป˜ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.

    ํ”„๋กœํ† ํƒ€์ž… ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์Šคํ„ด์Šค์˜ ์Šค๋ƒ…์ƒท์ธ Amazon Machine Image(AMI)๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ธ์Šคํ„ด์Šค๋Š” ๊ธฐ๋ณธ ์šด์˜ ์ฒด์ œ์—์„œ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ AMI์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    AMI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งŽ์€ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šค๊ฐ€ ๋” ๋นจ๋ฆฌ ์‹œ์ž‘๋œ๋‹ค๋Š” ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ด์ ์œผ๋กœ๋Š” ์‚ฌ์ „ ์„ค์น˜๋œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•  ํ•„์š”๊ฐ€ ์—†๊ณ  ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „์ด ์ด๋ฏธ ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ •์ ์ด๋ผ๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

    AMI๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด GameLift๊ฐ€ ํ”Œ๋ฆฟ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ ์ƒ์„ฑ์˜ ๋งˆ์ง€๋ง‰ ์ž‘์—…์€ ํ”Œ๋ฆฟ ๋‚ด์—์„œ ์ฒซ ๋ฒˆ์งธ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ์กฐ์ • ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. AMI์—์„œ ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ตฌ์ถ•๋˜๋ฏ€๋กœ ์ด๋ฏธ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋นŒ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํ”Œ๋ฆฟ์—์„œ TLS๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ AMI๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ํ”Œ๋ฆฟ์— ๋Œ€ํ•œ TLS ์ธ์ฆ์„œ๊ฐ€ ์ƒ์„ฑ๋˜์–ด AMI์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋™์•ˆ ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค ๋˜๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” ๋นŒ๋“œ์— ํฌํ•จ๋œ ๊ฒŒ์ž„ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„œ๋ฒ„๋Š” GameLift API ํ˜ธ์ถœ์„ ํ†ตํ•ด GameLift์™€ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ฆฌ ์ž‘์—…์„ ์™„๋ฃŒํ•œ ํ›„์—๋Š” ์œ ํœด ์ƒํƒœ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋กœ๋“œ๋˜๊ณ  ํ”„๋กœ์„ธ์Šค์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ ์•„์ง ๊ฒŒ์ž„ ์„ธ์…˜์€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    GameLift์˜ ์ผ๋ถ€(์ธ์Šคํ„ด์Šค์˜ GameLift ์—์ด์ „ํŠธ)๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” ํ•˜ํŠธ๋น„ํŠธ ์ƒํƒœ ํ™•์ธ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ์ƒํƒœ ํ™•์ธ์ด ์„ธ ๋ฒˆ ๋ˆ„๋ฝ๋˜๋ฉด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ค‘๋‹จ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์–ด ์ข…๋ฃŒ ๋ฐ ๊ต์ฒด๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์„ ์ •์˜ํ•  ๋•Œ๋Š” ์ธ์Šคํ„ด์Šค์— ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ GameLift๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋” ๋งŽ์€ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    ์ธ์Šคํ„ด์Šค์—์„œ ๊ณ ์ •๋œ ์ˆ˜์˜ ๊ฒŒ์ž„ ์„œ๋ฒ„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

    GameLift API ์š”์ฒญ์ด ์žˆ์œผ๋ฉด GameLift๊ฐ€ ๊ฒŒ์ž„ ์„œ๋ฒ„์— ๊ฒŒ์ž„ ์„ธ์…˜์„ ์‹œ์ž‘ํ•  ๊ฒƒ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์€ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ดˆ๊ธฐํ™” ๋ฐ ์„ค์ •์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์‹œ์ž‘ ์ž‘์—…์€ API๋ฅผ ํ†ตํ•ด ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ฐ›์„ ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Œ์„ GameLift์— ์•Œ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    ์™ผ์ชฝ์— ์„œ๋น„์Šค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฒŒ์ž„ ์„œ๋ฒ„์™€ ํ†ตํ•ฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋‹จ๊ณ„๊ฐ€ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift Server SDK๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ‘œ์‹œ๋œ ๊ฒƒ๊ณผ ๊ฐ™์€ ํ•„์ˆ˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ํ•„์ˆ˜ ํ•จ์ˆ˜๋Š”ย InitSdk( ),ย ProcessReady( ),ย ActivateGameSession( )ย ๋ฐย **ProcessEnding( )**์„ ํฌํ•จํ•˜์—ฌ 4๊ฐœ์ž…๋‹ˆ๋‹ค. ํ•„์ˆ˜ ์ฝœ๋ฐฑ์€ย onStartGameSession( ),ย onProcessTerminate( )ย ๋ฐย onHealthCheck( )์˜ 3๊ฐœ์ž…๋‹ˆ๋‹ค.ย ์ด ํ•จ์ˆ˜ ๊ทธ๋ฃน์€ ์ „์ฒด ๊ฒŒ์ž„ ์„œ๋ฒ„ ๋ฐ ๊ฒŒ์ž„ ์„ธ์…˜ ์ˆ˜๋ช… ์ฃผ๊ธฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์„œ์—์„œ ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด ํ†ตํ•ฉ

    GameLift๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ํ•ต์‹ฌ ์ค‘ ํ•˜๋‚˜๋Š” GameLift SDK๊ฐ€ ๋‹ค์–‘ํ•œ ์ถ”์ƒํ™” ์ˆ˜์ค€์—์„œ API ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„์— ๋งค์น˜๋ฉ”์ดํ‚น ๋ฐ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๊ฐ€ ํ•„์š”ํ•œ์ง€ ์—ฌ๋ถ€์™€ GameLift๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ• ์ง€ ์•„๋‹ˆ๋ฉด ์ฝ”๋“œ์—์„œ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ œ๊ณตํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งค์น˜๋ฉ”์ดํ‚น์„ ์„ ํƒํ•˜๋ฉด ๋งค์น˜๋ฉ”์ดํ‚น ์„œ๋น„์Šค๊ฐ€ ํ•˜์œ„ ์ˆ˜์ค€ ์„œ๋น„์Šค๋ฅผ ํฌํ•จํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์น˜๋ฉ”์ดํ‚น ์•„๋ž˜์˜ ์ˆ˜์ค€๊ณผ ์ง์ ‘ ํ†ต์‹ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜์™€ ์„ธ์…˜ ๊ด€๋ฆฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋กœ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ์…˜ ๊ด€๋ฆฌ์™€ ์ง์ ‘ ํ†ต์‹ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ์ถ”์ƒํ™” ์ˆ˜์ค€์— ๋Œ€ํ•œ ๊ฒฐ์ •์— ๋”ฐ๋ผ API ์‚ฌ์šฉ์„ ์ •๋ ฌ, ์ง‘์ค‘ ๋ฐ ๊ฐ„์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋งค์น˜๋ฉ”์ดํ‚น์€ย StartMatchmaking( ),ย DescribeMatchmaking( )ย ๋ฐย **StopMatchmaking( )**์ด๋ผ๋Š” 3๊ฐœ์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์š”์ฒญ์ž์—๊ฒŒ ๋งค์น˜ ์ƒํƒœ๋ฅผ ์•Œ๋ฆด ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”? ํ˜ธ์ถœ์€ ๋น„์ฐจ๋‹จ(๋…ผ-๋ธ”๋กœํ‚น)์ž…๋‹ˆ๋‹ค.**DescribeMatchmaking( )**์„ ํ˜ธ์ถœํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์€ Amazon SNS ๋‹จ์ˆœ ์•Œ๋ฆผ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋ฐฑ์—”๋“œ์—์„œ SNS ์ฃผ์ œ๋ฅผ ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค. FlexMatch ๋งค์น˜๋ฉ”์ด์ปค๊ฐ€ ์ฃผ์ œ์— ์ด๋ฒคํŠธ๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ด€์‹ฌ ์žˆ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉดย **DescribeMatchmaking( )**์„ ํ˜ธ์ถœํ•˜์—ฌ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ•˜๋‚˜ ์ด์ƒ์˜ ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ๋Œ€๊ธฐ์—ด์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    GameLift์˜ ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ํ•จ์ˆ˜๊ฐ€ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์—์„œ ๊ตฌ๋™๋˜๋ฏ€๋กœ ์ง์ ‘ ํ˜ธ์ถœํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ž์ฒด ๋งค์น˜๋ฉ”์ดํ‚น ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ์†Œํ”„ํŠธ์›จ์–ด์—์„œย StartGameSessionPlacement( )ย ๋ฐย **DescribeGameSessionPlacement( )**๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ์ฝ”๋“œ๋กœ SNS ์•Œ๋ฆผ์„ ๊ตฌ๋…ํ•˜์—ฌ GameLift ์ด๋ฒคํŠธ๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ GameLift์˜ ๋งค์น˜๋ฉ”์ดํ‚น ์‹œ์Šคํ…œ ๋˜๋Š” ๊ฒŒ์ž„ ์„ธ์…˜ ๋ฐฐ์น˜ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ์…˜ ๊ด€๋ฆฌ ํ•จ์ˆ˜๊ฐ€ ๋‚ด๋ถ€์—์„œ ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค.

    ๋ฐฐ์น˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•œ ๊ฒฝ์šฐย **SearchGameSessions( )**๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ธฐ์กด ๊ฒŒ์ž„์„ ์ฐพ๊ณ ย **CreateGameSession( )**์„ ํ˜ธ์ถœํ•˜์—ฌ ์ƒˆ ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ย **CreatePlayerSessions( )**๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ”Œ๋ ˆ์ด์–ด ์š”์ฒญ์— ๋Œ€ํ•œ ์Šฌ๋กฏ์„ ์˜ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Realtime Server Client API ํ†ตํ•ฉ

    Realtime Server Client API๋Š” ํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ ์†Œํ”„ํŠธ์›จ์–ด์— ๋‚ด์žฅ๋ฉ๋‹ˆ๋‹ค.

    ์ด API๋Š” Realtime ๊ฒŒ์ž„ ์„œ๋ฒ„์— ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋œ ๊ตฌ์„ฑ ์š”์†Œ์™€ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

    Realtime ํด๋ผ์ด์–ธํŠธ๋Š” Realtime ๊ฒŒ์ž„ ์„ธ์…˜์— ๋Œ€ํ•œ 2๊ฐœ์˜ ํ†ต์‹  ์ฑ„๋„์„ ์—ฝ๋‹ˆ๋‹ค.

    ํ•˜๋‚˜๋Š” ์†๋„๋ฅผ ์œ„ํ•œ UDP์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์•ˆ์ •์„ฑ์„ ์œ„ํ•œ TCP์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ†ต์‹ ์—์„œ ํด๋ผ์ด์–ธํŠธ๋Š” UDP๋ฅผ ๋จผ์ € ์‹œ๋„ํ•˜๊ณ  ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด TCP๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ํด๋ผ์ด์–ธํŠธ๋Š” opCode๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. opCode๋Š” ์„œ๋ฒ„ ์ธก์—์„œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

    ์„œ๋ฒ„์—์„œ opCode ๋งต์€ ์ฝ”๋“œ๋ฅผ ์Šคํฌ๋ฆฝํŠธ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์‹คํ–‰์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

    ๋”ฐ๋ผ์„œ ํ†ต์‹ ์˜ ์–‘์ธก, ์ฆ‰ opCode๋ฅผ ๋ณด๋‚ด๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ๊ทธ ๊ฒฐ๊ณผ ์‹คํ–‰๋˜๋Š” ์„œ๋ฒ„ ์ธก ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋™๊ธฐ์‹ ๋ฉ”์‹œ์ง€๋Š” ๊ฒŒ์ž„ ์„ธ์…˜ ์—ฐ๊ฒฐ ๋ฐ ์—ฐ๊ฒฐ ํ•ด์ œ์™€ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ์ค‘์— ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

    ๋น„๋™๊ธฐ์‹ ๋ฉ”์‹œ์ง€๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„ ์ธก ์ด๋ฒคํŠธ์— ์‘๋‹ตํ•˜๋Š” ์ฝœ๋ฐฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ

    ๋น„์ฆˆ๋‹ˆ์Šค ์šด์˜ ๋ฐ ์˜์‚ฌ ๊ฒฐ์ •์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์€ ๋งค์šฐ ํฝ๋‹ˆ๋‹ค. GameLift๋Š” ๋ผ์ด๋ธŒ ๊ฒŒ์ž„ ์šด์˜, ๊ฒŒ์ž„ ์„ค๊ณ„ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ์˜์‚ฌ ๊ฒฐ์ •์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    GameLift๋Š” GameLift ๋Œ€์‹œ๋ณด๋“œ์— ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ชจ๋“  ๊ฒŒ์ž„ ๋นŒ๋“œ์˜ ์นดํƒˆ๋กœ๊ทธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ฆฟ์— ๋Œ€ํ•œ ์„ธ๋ถ€ ์ •๋ณด๋„ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์„ธ์…˜๊ณผ ํ”Œ๋ ˆ์ด์–ด ์„ธ์…˜์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜๋ฉฐ

    ๊ฐ•๋ ฅํ•˜๊ณ  ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ง€ํ‘œ ๊ทธ๋ž˜ํ”„ ์‹œ์Šคํ…œ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ์ •๋ณด๋Š” ๊ฒŒ์ž„ ์„œ๋น„์Šค๋ฅผ ์‚ดํŽด๋ณด๊ณ  ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฒŒ์ž„ ์„œ๋น„์Šค ์šด์˜ ์ ˆ์ฐจ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ผ์ด๋ธŒ ์šด์˜์„ ์œ„ํ•œ ํ”Œ๋ ˆ์ด๋ถ์„ ์ •์˜ํ•˜๋Š” ๋ฐ๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

    GameLift๋Š” ํŠน์ • ์ง€ํ‘œ๋ฅผ Amazon CloudWatch๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ”Œ๋ฆฟ, ๋Œ€๊ธฐ์—ด ์ง€ํ‘œ ๋ฐ ๋งค์น˜๋ฉ”์ดํ‚น ๊ด€๋ จ ์ง€ํ‘œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. CloudWatch์—์„œ ๊ด‘๋ฒ”์œ„ํ•œ ๊ธฐ๋Šฅ ๋ณด๊ธฐ๋ฅผ ํ†ตํ•ด ์šด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ˆ˜์ง‘ํ•˜๊ณ  ์ด๋ฅผ ๋‹ค๋ฅธ AWS ์„œ๋น„์Šค ๋˜๋Š” ์˜จํ”„๋ ˆ๋ฏธ์Šค ์„œ๋ฒ„์—์„œ ์ œ๊ณตํ•˜๋Š” ์ •๋ณด์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ย CloudWatch๋Š” GameLift์— ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋œ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋Šฅ์„ ๋›ฐ์–ด๋„˜์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด GameLift์—์„œ๋Š” ๋ผ์ด๋ธŒ ์šด์˜์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CloudWatch์—์„œ๋Š” ์ง€ํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„์œจ, ์ง€ํ‘œ ๋ฐ ํ†ต๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ด๋Ÿฌํ•œ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    GameLift๋Š” API ์ž‘์—…์„ ๊ธฐ๋กํ•˜๋Š” AWS CloudTrail๊ณผ๋„ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

    CloudTrail์€ ๊ฑฐ๋ฒ„๋„Œ์Šค, ๊ทœ์ • ์ค€์ˆ˜ ๋ฐ ๊ฐ์‚ฌ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    CloudTrail์ด ์บก์ฒ˜ํ•˜๋Š” GameLift ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด ๋ณด๊ณ ์„œ๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  S3๋ฅผ ํ†ตํ•ด ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๋ณด๊ณ ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Amazon SNS ๋‹จ์ˆœ ์•Œ๋ฆผ ์„œ๋น„์Šค๋กœ ์ง์›์—๊ฒŒ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด์ œ GameLift ๋ฐ์ดํ„ฐ ์ง€์›์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๋Œ€์‹œ๋ณด๋“œ๋Š” ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Amazon CloudWatch์™€ ํ†ตํ•ฉํ•˜๋ฉด ํ†ต๊ณ„ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    Amazon CloudTrail๊ณผ ํ†ตํ•ฉํ•˜๋ฉด ๊ฑฐ๋ฒ„๋„Œ์Šค ๋ฐ ๊ฐ์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋งˆ์ง€๋ง‰์œผ๋กœ, GameLift์—์„œ ์ƒ์„ฑ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” API๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒŒ์ž„ ๊ธฐ์ˆ  ๋ถ„์„ ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•˜๊ณ  ์ŠคํŠธ๋ฆฌ๋ฐ ๋˜๋Š” ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ๋ถ„์„์— ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ธฐ๊ณ„ ํ•™์Šต๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ณ ๊ธ‰ ๋ถ„์„ ๋ฐ ์˜์‚ฌ ๊ฒฐ์ •์— ํ™œ์šฉํ•˜๊ณ  ์ธ๊ณต ์ง€๋Šฅ ๊ธฐ๋Šฅ์„ ๊ฒŒ์ž„ ์„œ๋น„์Šค์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฒŒ์ž„ ์žฌ๋ฌด

    ๊ฒŒ์ž„ ๊ธˆ์œต์€ ๋น„์šฉ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒฝ๊ณ ํ•˜๊ณ  ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ๋น„์šฉ ๋ฐ ๊ธฐ๋Šฅ์„ ์˜ˆ์ธก, ์ถ”์ • ๋ฐ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.

    ์žฌ๋ฌด ์ •๋ณด๋Š” ๊ฒŒ์ž„ ์„œ๋น„์Šค ๋น„์ฆˆ๋‹ˆ์Šค์—์„œ ์ˆ˜์ต์„ฑ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

    GameLift์˜ ์ฒซ ๋ฒˆ์งธ ์žฌ๋ฌด ๊ธฐ๋Šฅ ๋ฒ”์ฃผ๋Š” ๋น„์šฉ ์ œ์–ด์ž…๋‹ˆ๋‹ค.

    ๋น„์šฉ ์ œ์–ด์—๋Š” ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์ข…์† ๋ณ€์ˆ˜์™€ ์ œ์–ดํ•  ์ˆ˜ ์—†๋Š” ๋…๋ฆฝ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

    ๊ธฐ๋ณธ์ ์ธ ๋…๋ฆฝ ๋ณ€์ˆ˜๋Š” ํ”Œ๋ ˆ์ด์–ด ์ˆ˜์š”์ด๋ฉฐ ์ „์ ์œผ๋กœ ์™ธ๋ถ€ ์š”์ธ์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๋ณ€๋™๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋‹ค๋ฅธ ๋…๋ฆฝ ๋ณ€์ˆ˜๋กœ๋Š” ์ธํ„ฐ๋„ท์˜ ์•ˆ์ •์„ฑ ๋ฌธ์ œ๋กœ ์ธํ•œ ๋„คํŠธ์›Œํฌ ๊ฐ€์šฉ์„ฑ๊ณผ ์‹œ์žฅ ์š”์œจ์— ๋”ฐ๋ผ ๋ณ€๋™๋˜๋Š” ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ๋น„์šฉ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    ์ข…์† ๋ณ€์ˆ˜์—๋Š” ๊ฒŒ์ž„ ์„œ๋น„์Šค๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์กฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” GameLift์˜ ๋ชจ๋“  ์˜ต์…˜๊ณผ ์„ค์ •์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ”Œ๋ฆฟ ์„ค๊ณ„, Auto Scaling, ์ŠคํŒŸ ์ธ์Šคํ„ด์Šค, Realtime ์„œ๋ฒ„, FleetIQ ๋ฐ FlexMatch๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

    ์žฌ๋ฌด ๊ธฐ๋Šฅ์˜ ๋‘ ๋ฒˆ์งธ ๋ฒ”์ฃผ๋Š” ๊ฐ€๊ฒฉ ๋ฐ ๋น„์šฉ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ๊ฐ€๊ฒฉ์€ API๋ฅผ ํ†ตํ•ด ๊ฒŒ์‹œ๋˜๊ณ  ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํ˜„์žฌ ๊ฐ€๊ฒฉ์„ ๊ฒŒ์ž„ ๊ธฐ์ˆ  ๋ถ„์„ ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์‹œ๋ณด๋“œ์—๋Š” 3๊ฐœ์›”์˜ ๊ณผ๊ฑฐ ๊ฐ€๊ฒฉ ์ฑ…์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋ฏ€๋กœ ํ–ฅํ›„ ๊ฐ€๊ฒฉ์„ ์˜ˆ์ธกํ•˜๊ณ  ์ •๋ณด์— ์ž…๊ฐํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift ์ธ์Šคํ„ด์Šค ์š”๊ธˆ์„ ์ถ”์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” EC2 ๋น„์šฉ ์ถ”์ • ๊ณ„์‚ฐ๊ธฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. GameLift๋Š” ๊ณ„์ • ํ• ๋‹น๋Ÿ‰, ์˜ˆ์‚ฐ ์ƒ์„ฑ ๊ธฐ๋Šฅ, ๋น„์šฉ ์›Œํ„ฐ๋งˆํฌ์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ์•Œ๋ ค์ฃผ๋Š” ์กฐ๊ฑด๋ถ€ ์•Œ๋ฆผ ์„ค์ • ๊ธฐ๋Šฅ ๋“ฑ ๋ชจ๋“  AWS ์žฌ๋ฌด ๊ธฐ๋Šฅ์„ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค.

    GameLift๋Š” AWS ๋น„์šฉ ๊ด€๋ฆฌ ์ฝ˜์†”๊ณผ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค.

    ์—ฌ๊ธฐ์—์„œ ์ •๊ตํ•œ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  S3 ๋ฒ„ํ‚ท์„ ํ†ตํ•ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ด๋Ÿฌํ•œ ๋ณด๊ณ ์„œ๋Š” ์ง€์ถœ๊ณผ ๋ณ„๋„๋กœ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ์„ ์‹๋ณ„ํ•˜์—ฌ ๊ฒŒ์ž„ ์„œ๋น„์Šค์—์„œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์„ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    GameLift ์žฌ๋ฌด ์ง€์›์„ ๊ฒ€ํ† ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    GameLift์˜ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์€ ๋น„์šฉ ๊ด€๋ฆฌ, ์šฐ์ˆ˜ํ•œ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ๋˜๋Š” ๋‘˜ ๋‹ค๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

    GameLift๋Š” ๋ณ€ํ™”ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    GameLift๋Š” ๊ฐ€๊ฒฉ ํˆฌ๋ช…์„ฑ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ข…์† ๋ณ€์ˆ˜์™€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€๊ฒฉ์„ ์†์‰ฝ๊ฒŒ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณด๋‹ค ์ •ํ™•ํ•œ ๋น„์šฉ์„ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ๋งˆ์ง€๋ง‰์œผ๋กœ, GameLift๋ฅผ AWS ๋น„์šฉ ๊ด€๋ฆฌ ์ฝ˜์†”๊ณผ ํ†ตํ•ฉํ•˜์—ฌ ์ •๊ตํ•œ ์žฌ๋ฌด ๋‚ด์—ญ์„ ๋ณด๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Step 13.2. Matchmaking ๊ตฌํ˜„ ์‹œ ๊ถŒ๊ณ  ์‚ฌํ•ญ

Game Client์—์„œ Lambda๋ฅผ ํ†ตํ•ด StartMatchmaking API๋ฅผ ํ˜ธ์ถœ ํ•œ ํ›„ ํด๋ง ๋ฐฉ์‹์œผ๋กœ DescribeMatchmaking API ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ, ์‹ค ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ Throttling์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

readme/Match-001.png

๊ทธ๋ž˜์„œ GameLift ์ชฝ์œผ๋กœ DescribeMatchmaking API๋ฅผ ํด๋ง ๋ฐฉ์‹์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ

์•„๋ž˜์™€ ๊ฐ™์ด ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ Match Status ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ทธ ๊ณณ์„ ํ™•์ธ ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

readme/Match-002.png

๋‹ค์Œ๊ณผ ๊ฐ™์ด SNS Topic์„ ์ƒ์„ฑํ•˜๊ณ  MatchEvent API ๊ตฌ๋…ํ•˜๋„๋ก ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

readme/Match-003.png

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งค์น˜๋ฉ”์ดํ‚น ๊ตฌ์„ฑ ์‹œ Notification ๋Œ€์ƒ์œผ๋กœ SNS ARN์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

readme/Match-004.png

์œ„์™€ ๊ฐ™์ด ๊ตฌ์„ฑ ์‹œ GameLift ๋งค์น˜๊ฐ€ SNS Topic ์œผ๋กœ ๋ฐ”๋กœ ํ‘ธ์‹œ๋˜๋ฉฐ, Lambda ํ•จ์ˆ˜๊ฐ€ ์ด๋ฅผ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Step 13.3. Fleet ์ธ์Šคํ„ด์Šค ๊ตฌ์„ฑ์— ๋Œ€ํ•œ Best practices

Spot Fleet์„ ์„œ๋กœ ๋‹ค๋ฅธ 2๊ฐœ ํƒ€์ž…์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด GameLift ์˜ FleetIQ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ Spot Interruption ์ด ๊ฐ€์žฅ ๋œ ๋ฐœ์ƒํ•  ๊ฒƒ์œผ๋กœ ์ถ”์ •๋˜๋Š” Spot Fleet ์œผ๋กœ ๊ฒŒ์ž„ ์„ธ์…˜์ด ๋ฐฐ์น˜ ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— On-demand Fleet์„ ํ•˜๋‚˜ ๋‘์‹œ๋ฉด ๊ฒŒ์ž„ ์ž์ฒด์˜ ์•ˆ์ •์„ฑ์„ ํฌ๊ฒŒ ์˜ฌ๋ฆฌ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://docs.aws.amazon.com/ko_kr/gamelift/latest/developerguide/queues-best-practices.html#queues-design-spot

readme/FleetScaling-001.png

Step 13.4. Fleet ์ƒ์„ฑ ์‹œ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค ์„ค์ •

์œ„์—์„œ ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜์˜ ๊ฒŒ์ž„ ์„ธ์…˜์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ฆฟ ์ƒ์„ฑ ์‹œ ์‚ฌ์šฉํ–ˆ๋˜ CLI ๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

\ctc-game-server\scripts\GameLift\02-GameLift-CreateFleet.sh

# https://docs.aws.amazon.com/cli/latest/reference/gamelift/create-fleet.html
# Set variables to suit your development environment
FLEET_NAME=BattleFleet
BUILD_ID=build-6eaa542c-f1bc-4c96-90ba-c6ce44b62d98
EC2_INSTANCE_TYPE=c5.large
FLEET_TYPE=SPOT
LAUNCH_PATH=BattleServer.exe
RUNTIME_CONFIGURATION='ServerProcesses=[
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50001,ConcurrentExecutions=1},
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50002,ConcurrentExecutions=1},
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50003,ConcurrentExecutions=1},
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50004,ConcurrentExecutions=1},
{LaunchPath="C:\Game\BattleServer.exe",Parameters=50005,ConcurrentExecutions=1}
]'
INSTANCE_ROLE_ARN='arn:aws:iam::831150897155:role/mzc-game-gamelift-fleet-role'

aws gamelift create-fleet \
--name "$FLEET_NAME" \
--build-id "$BUILD_ID" \
--ec2-instance-type "$EC2_INSTANCE_TYPE" \
--fleet-type "$FLEET_TYPE" \
--runtime-configuration "$RUNTIME_CONFIGURATION" \
--instance-role-arn "$INSTANCE_ROLE_ARN" \
--ec2-inbound-permissions 'FromPort=50001,ToPort=50005,IpRange=0.0.0.0/0,Protocol=TCP'

readme/ServerProcesses-001.png

runtime configuration์„ ์„ค์ •ํ•œ ๋ถ€๋ถ„์„ ๋ณด๋ฉด 5๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ค์ • ํ•ด ๋†“์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค์ • ํ–ˆ์„ ๋•Œ ์‹ค์ œ 5๊ฐœ์˜ ๊ฒŒ์ž„ ์„ธ์…˜๊นŒ์ง€ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ 1000๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„์šด๋‹ค๋ฉด Launch parameters๋กœ ๋„˜๊ฒจ์ค€ Port ํ• ๋‹น์ด 50001~51000์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

readme/ServerProcesses-002.png

์„œ๋ฒ„ ๊ตฌํ˜„ ํ›„ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค ๋‚ด์—์„œ ๋ช‡ ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋„์šฐ๊ณ  ํ”Œ๋ ˆ์ด ๊ฐ€๋Šฅ ํ•œ์ง€ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ์ง„ํ–‰ ํ›„ Fleet ์ƒ์„ฑ ์‹œ ํ•ด๋‹น ์ˆ˜ ๋งŒํผ ServerProcesses๊ฐ’์„ ์„ค์ • ํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. CI/CD ๊ตฌ์„ฑ ์‹œ CLI ๋˜๋Š” SDK ๋ฅผ ํ†ตํ•œ Fleet ์ƒ์„ฑ ์‹œ ํ”„๋กœ์„ธ์Šค ์ˆ˜๋ฅผ ๋ฐ›์•„์„œ ๊ทธ๋งŒํผ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์ด ํ†ตํ•ฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Step 13.5. Fleet ์ธ์Šคํ„ด์Šค Scaling

Fleet์ด ํ™œ์„ฑํ™”๋˜๋ฉด ์ฝ˜์†”์˜ Scaling ํƒญ์—์„œ ์†์‰ฝ๊ฒŒ Scaling ์ •์ฑ…์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

readme/Scaling-001.png

readme/Scaling-002.png

๊ธฐ๋ณธ์ด ๋˜๋Š” target tracking scaling ์ •์ฑ… ์™ธ์—๋„ ํŠน์ˆ˜ํ•œ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด target tracking ๊ธฐ๋ฐ˜ scaling์„ ๋ณด์™„ํ•˜๋Š”๋ฐ ์“ธ ์ˆ˜ ์žˆ๋Š” rule-based policies scaling ์ •์ฑ…์„ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-autoscaling.html

Step 13.6. Unity๋กœ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„ ํ†ตํ•ฉ ๊ตฌํ˜„

Unity MLAPI๋Š” Unity ๊ฒŒ์ž„ ์—”์ง„์ด ๋„คํŠธ์›Œํ‚น์„ ์ถ”์ƒํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์ถ• ๋œ ์ค‘๊ฐ„ ์ˆ˜์ค€์˜ ๋„คํŠธ์›Œํ‚น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋‚ฎ์€ ์ˆ˜์ค€์˜ ํ”„๋กœํ† ์ฝœ๊ณผ ๋„คํŠธ์›Œํ‚น ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ€ ์•„๋‹Œ ๊ฒŒ์ž„์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Unity์˜ MLAPI๋ฅผ ์ด์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ์กฐ์ž‘, ์„œ๋ฒ„์—์„œ ์กฐ์ž‘์— ๋Œ€ํ•œ ๊ณ„์‚ฐ ๋ฐ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ†ตํ•ฉ์œผ๋กœ ๊ฐœ๋ฐœ ํ›„ ์„œ๋ฒ„๋กœ ๋นŒ๋“œ, ํด๋ผ์ด์–ธํŠธ๋กœ ๋นŒ๋“œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Step 14. ๋ฆฌ์†Œ์Šค ์ •๋ฆฌ

  1. API ๊ฒŒ์ดํŠธ์›จ์ด
    1. GameAPI
  2. Lambda
    1. CreateGame
    2. SearchGame
    3. Login
    4. CreatePlayer
    5. AccountJoin
    6. BattleResult
  3. SQS
    1. mzc-game-sqs
  4. GameLift Fleet
  5. GameLift Build
  6. RDS
    1. mzc-game-rds
  7. RDS Subnet group
    1. mzc-game-db-subnetgroup
  8. Cloud9
  9. IAM
    1. ์—ญํ• 
      1. mzc-game-gamelift-fleet-role
      2. mzc-game-lambda-role
    2. ์ •์ฑ…
      1. GameLiftFullAccess
  10. NAT ๊ฒŒ์ดํŠธ์›จ์ด
    1. mzc-game-nat
  11. ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด
    1. mzc-game-ig
  12. ์„œ๋ธŒ๋„ท
    1. mzc-game-public-subnet1
    2. mzc-game-public-subnet2
    3. mzc-game-private-subnet1
    4. mzc-game-private-subnet2
  13. ๋ผ์šฐํŠธ ํ…Œ์ด๋ธ”
    1. mzc-game-private-rt
    2. mzc-game-public-rt
  14. VPC
    1. mzc-game-vpc
      1. ๋ณด์•ˆ ๊ทธ๋ฃน์ด ๊ฐ™์ด ์‚ญ์ œ ๋ฉ๋‹ˆ๋‹ค.
        1. mzc-game-lambda-sg
        2. mzc-game-rds-sg

โ€ฆ


END

Releases

No releases published

Packages