Games on AWS 2023 ๋ฆฌ๋ทฐ
์๋ ์ ์ด์ด ์ฌํด๋ โGames on AWSโ์ ๋ค๋ ์๋ค. ๋ ์ผ์ฑ ์ฝ์์ค์์ ์งํํ์๋๋ฐ, ์ด๋ฒ์๋ ํ๊ต์์ ์งํํ๋ค!
์ค๋๋ง์ ์์นจ ์ผ์ฐ ์งํ์ฒ ํ๊ณ ์ด๋ํ๋ ค๋ ๋๋ฌด ํผ๊ณคํ๋คโฆ ใ ใ
์ธ์ ์ ์ ๋ฐ์ ์ผ๋ก Game์ ๊ด๋ จ๋ ์ฃผ์ ๋ค์ธ๋ฐ, ํ์ ์์ธ๋ก ์๋ GoW ๋ณด๋ค ๋ค์๊ฒ ์๋ ๋๋์ด์๋คโฆ;;
๊ทธ๋๋ ์ฐธ์ ํ๋ ์ธ์ ๋ค์ ์ฌ๋ฐ๊ฒ ๋ค์๊ธฐ์ ์ธ์ ๋ด์ฉ๊ณผ ์๊ฐ๋ค์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.
ํค๋ ธํธ ์ธ์
Marvel Snap
๊ฒ์ โMarvel Snapโ์ ๊ฐ๋ฐ์ฌ์ธ โSecond Dinnerโ์์ ์ฐธ์ํ๋ค! ๋ง๋ธ IP๋ก ๋ง๋ TCG ํ์์ ๊ฒ์์ธ๋ฐ, ์งํ์ฒ ํ๊ณ ์ถ๊ทผํ๋ ์์ ์ ์ถ๊ทผ๊ธธ์ ์ฌ๋์ด ์ ๊ฒ์ ํ๋๊ฑธ ์ ๋ง ๋ง์ด ๋ดค์๋ค ใ ใ ใ
ํค๋ ธํธ์์ โSecond Dinnerโ ๊ฐ๋ฐ์ฌ์ โMarve Snapโ์ ๋ํ ์ค๋ช ๊ณผ ๊ฒ์ ๊ฐ๋ฐ ์ฌ์ดํด๊ณผ AWS ์ข์์~ ์ ๋์ ์๊ธฐ๋ง ํ์๋ค. ํฅ๋ฏธ๊ฐ ์๊ฒจ์ ์ดํ์ ์คํ ์ธ์ ์ ์ฐธ์๋ ํ๋๋ฐ, ๊ทธ ์ธ์ ์ด ์ ๋ง ์ฌ๋ฐ์๋ค ใ ใ
Riot Games
๋ ๋๋๊ฒ๋! Riot Games์์๋ GoW ํค๋ ธํธ ๋ฐํ๋ฅผ ํ๋ค! LoL๋ก ์ ๋ช ํ Riot Games์ด์ง๋ง, ์ธ์ ์์ ์ฌ๋ฐ๊ฒ ๋ค์๋ ๋ถ๋ถ์ ๋ฐ๋ก๋ํธ(Valorant) ๊ฐ๋ฐ ์ด์ผ๊ธฐ ์๋ค.
โPeekerโs Advantagesโ๋ ๋ด์ฉ์ ๋ํด ์ค๋ช ํ๋๋ฐ ์๊ฒ ์ ๋ง ์ฌ๋ฐ์๋ค. FPS ์ฅ๋ฅด์์ ๋ฐ์ํ๋ ํ์์ธ๋ฐ, ๊ทธ ์ด์ ๋ ์๋ฒ์ ์ํ๋ฅผ ์ฑํฌํ๋ ๊ณผ์ ์์ ๋ฐ์ํ๋ Latency ๋๋ฌธ์ด๋ค.
peeker๊ฐ ์ด๋ํ๋ค๋ ์ ๋ณด๊ฐ ์๋ฒ์ ์ ์ฅ๋ ํ์ holder๊ฐ ์๋ฒ๋ก๋ถํฐ peeker์ ์์น ์ ๋ณด๋ฅผ ๋ฐ์์ค๊ธฐ ๋๋ฌธ์ latency๊ฐ ์ด์ฉ ์ ์์ด ๋ฐ์ํ๋ค. ๋จ, ๋ฐ๋ก๋ํธ์์ ์ด๋ฐ peeker latency๋ ํ๊ท 40~70 ms ์์ค์ด๋ผ๊ณ ํ๋ฉฐ, ์ธ๊ฐ์ ํ๊ท ๋ฐ์ ์๋๊ฐ 240 ms ์์ค์ด๊ธฐ ๋๋ฌธ์ Peekerโs Advantage๋ก ์ป๋ ํจ๊ณผ๋ฅผ ๊ทธ๋ฆฌ ํฌ์ง ์์ ์ ์๋ค ใ ใ ใ
๊ทธ์ธ
๋ค์ค์์ฆ์ NC์ ๋ฐํ๊ฐ ์ด์ด์ก๋๋ฐ, ๋ค์ค์์ฆ์ ๊ฒฝ์ฐ๋ ๊ทธ๋์ ๋ช ๋ ์ ๊ฑธ์ณ ์จํ๋ ๋ฏธ์ค ์ธํ๋ผ์์ AWS ์ธํ๋ผ๋ก ์ด์ ํ๋ค๋ ๊ฒฝํ๋ด์ด์๊ณ , NC๋ ์์ฒด ๊ฐ๋ฐํ LLM์ธ โVarco LLMโ์ ๋ํ ํ๋ณด๊ฐ ๊ธฐ์ต์ ๋จ๋๋ค. NC ๊ฐ๋ฐ LLM์ AWS Bedrock ํตํด์ ์ฌ์ฉํ ์ ์๋ค๊ณ ํ ๊ฒ ๊ฐ์๋ฐ, ์ด๋ฒ์ AWS Bedrock์ ์ฒ์ ๋ด์ ํ๋ฒ ์จ๋ณด๊ณ ์ถ์ด์ก๋ค ใ ใ
AWS ๊ธฐ์ ๋ธ๋ก๊ทธ์์ NC Varco LLM์ผ๋ก ํ๊ตญ์ด chatbot ๋ง๋๋ ์์ ๋ ์๋ค ใ ใทใท
Marvel Snap - AWS ์๋ฒ๋ฆฌ์ค ๋ง์ผ๋ก ์ฌํด์ ๋ชจ๋ฐ์ผ ๊ฒ์ ๋ง๋ค๊ธฐ
์งํ์ฒ ์์ ๋ง์ด ๋ดค๋ Marvel Snap ใ ใ ํ์ฌ์๋ ์ ๊ฒ์ ํ๋ ์ฌ๋์ด ์์ด์ ๊ตฌ๊ฒฝ ํ์๋๋ฐ, ์ ๋ง ์ ๋ง๋ ๊ฒ์์ด์๋ค!! ํ์ค์คํค ๊ฐ๋ฐ์ ์ถ์ ์ด ๋ง๋ค์๋ค๋๋ฐ ์โฆ ํ์ค๋ฅผ ์ด๋ ๊ฒ ๋ง๋ค์ด์ฃผ์งโฆ ใ ใ
์ ์ผ ํฅ๋ฏธ๋ก์ ๋ ๊ฑด, ๊ฒ์ ์ด์์ ์ฒ์๋ถํฐ ๋๊น์ง โServerlessโ ํ๋๋ก ๋ชจ๋ ํ๊ณ ์๋ค๋ ๊ฑฐ๋ค!! Serverless๊ฐ ์ฅ์ ์ด ์๋ค๊ณ ํด๋ ๋ถ๋ช ํ๊ณ๊ฐ ์กด์ฌํ ํฐ์ธ๋ฐโฆ hmmโฆ
Provisioned Concurrency
Marvel Snap์์๋ ์ค์ํ ๊ธฐ๋ฅ์ ๋ํด์ โProvisioned Concurrencyโ ๊ธฐ๋ฅ์ ์ ์ฉํด Serverless๋ผ๋ ๋น ๋ฅธ ์๋ต์ ์ ๊ณตํ๋ค๊ณ ํ๋ค. ์ฆ, Lambda๊ฐ ๊ฐ์ง โCold Startโ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ฌผ๋ก Lambda Container๋ฅผ ๋์ ์์ผ๋๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ๋ชจ๋ ๋ณด๋ค ๋น์ฉ์ ๋ ๋๊ฐ๋ค.
Lambda Optimization: Static Initialization
๋, Serverless์ ๊ฒฝ์ฐ ๋ด๋ถ์ ์ผ๋ก ์ด๊ธฐ ํธ์ถ ํ์ Micro Container?๊ฐ ์ด์์์ด ๊ทธํ ํธ์ถ๋ถํฐ๋ ์๋ต ์๊ฐ์ด ์์ฃผ ์ค์ด๋ ๋ค๊ณ ํ๋ค. ๊ทธ๋์ ๋๋ค ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋๋์ ๋ฐ๋ผ์ ๊ทธํ ์๋ต ์๊ฐ์ด ๋ฌ๋ผ์ง๋ค.
์๋ฅผ ๋ค์ด, ์๋ ๋ ์ฝ๋๋ 2nd request์์์ ์คํ ์๊ฐ์ด ๋ค๋ฅธ๋ค.
# 1st code
def returnUsersVer1():
db = database.connect(...)
return db.getUsers()
# 2nd code
db = database.connect(...)
def returnUsersVer2():
return db.getUsers()
๋ ์ฝ๋์ ์ฐจ์ด๋ db
๋ผ๋ ๋ณ์๋ฅผ ํจ์ ์๋์ local ๋ณ์๋ก ๋๋๋ ์๋ global ๋ณ์๋ก ๋๋๋์ด๋ค. AWS Lambda์์ ๊ฐ์ execution environment๋ฅผ ๊ฐ๋ ๋ lambda invocation ์ฌ์ด์์ global ๋ณ์์ ๊ฐ์ ์ ์งํ๊ธฐ ๋๋ฌธ์, ์ฒซ ์์ฒญ์์ ๋ ํจ์์ ์คํ์๊ฐ์ด ๊ฐ์๋, ์ฃผ๋ฒ์งธ ์์ฒญ๋ถํฐ๋ db
๋ณ์๋ฅผ global ๋ณ์๋ก ์ง์ ํ Lambda ์ฝ๋๊ฐ ๋ ๋น ๋ฅด๋ค!
AWS GameLift FlexMatch: Serverless Matching
TCG ๊ฒ์์ ๊ฒฝ์ฐ, ์๋์ ๋ง๋ถ๊ธฐ ๋๋ฌธ์ ๋งค์นญ์ ํ ๋ ์ด๋ค ์๋์ ๋งค์นญ ์์ผ์ฃผ๋๋๊ฐ ์ค์ํ๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ณด์์ ๊ณ ์ ์ ์ ๊ฐ ๋งค์นญ ๋๋ค๋ฉด, ์ด๋ณด ์ ์ ๋ ์ด๋ฐ๋ถํฐ ๊ฒ์์ ๋ํ ์์์ ์์ด๋ฒ๋ฆด ๊ฒ์ด๋ค.
์ ํต์ ์ธ ๋งค์นญ ๊ฒ์์์ ๋งค์นญ๋ง์ ์ ๋ฌธ์ ์ผ๋ก ํ๋ ์๋ฒ, ๋ง์ดํฌ๋ก ์๋น์ค ๋๋ ์์ฉ ๋งค์นญ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ค. ๊ทธ๋ฐ๋ฐ, Marvel Snap์์๋ ๋งค์นญ ์กฐ์ฐจ Serverless ์๋น์ค๋ก ํด๊ฒฐํ๋ค!!
AWS GameLift์ FlexMatch์์ ๋งค์นญ์ ํ์ํ Configuration ์ค์ ๋ง์ผ๋ก ์ ๊ตํ ๋งค์นญ์ ์ ๊ณตํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์๋์ ๊ฐ์ด ๊ท์น์ ์ ์ง์ ํ ์ ์๋ค.
// ์ถ์ฒ: https://docs.aws.amazon.com/ko_kr/gamelift/latest/flexmatchguide/match-examples.html
"rules": [{
"name": "FairTeamSkill",
"description": "The average skill of players in each team is within 10 points from the average skill of all players in the match",
"type": "distance",
// get skill values for players in each team and average separately to produce list of two numbers
"measurements": [ "avg(teams[*].players.attributes[skill])" ],
// get skill values for players in each team, flatten into a single list, and average to produce an overall average
"referenceValue": "avg(flatten(teams[*].players.attributes[skill]))",
"maxDistance": 10 // minDistance would achieve the opposite result
}, {
"name": "EqualTeamSizes",
"description": "Only launch a game when the number of players in each team matches, e.g. 4v4, 5v5, 6v6, 7v7, 8v8",
"type": "comparison",
"measurements": [ "count(teams[cowboys].players)" ],
"referenceValue": "count(teams[aliens].players)",
"operation": "=" // other operations: !=, <, <=, >, >=
}],
๊ท์น์ ๋ณด๋ฉด, measurements
, referenceValue
์ SQL ๊ตฌ๋ฌธ์ด ์์ด ์ฌ์ฉ์ ์ํ ์ ๋ณด์ ๋ฐ๋ผ ์ ์ ํ ๋งค์นญ ๊ฒฝํ์ ์ ๊ณตํด์ค ์ ์๋ค!
์ดํ
Marvel Snap์ Serverless ์ํคํ ์ฒ๋ AWS SA๊ฐ ๊ทน์ฐฌํ ์ ๋์ ์ํคํ ์ณ ์๋ค. ์ด์ฉ๋ฉด ์ด๊ธฐ ๊ฒ์, ๋ณ๋์ฑ์ด ๊ฐํ ๊ฒ์์ ๊ธฐํํ๊ณ ์๋ค๋ฉด, ๊ธฐ์กด์ on-demand ๋ชจ๋ธ๋ณด๋ค๋ Sererless ๋ชจ๋ธ์ด ๋ ์ ํฉํ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ํ๊ฒ ๋ ์ ๋์๋ค.
์ธ์ ์์ ๋งํ๊ธธ ํด๋ผ์ฐ๋ ์๋น์ค๊ฐ ์ฒ์ ๋ฑ์ฅ ํ์ ๋, ๊ฐ์ฅ ๋จผ์ ์ธํ๋ผ๋ฅผ ์จํ๋ ๋ฏธ์ค์์ ํด๋ผ์ฐ๋๋ฅผ ์ฑํํ ์ ๊ณ๊ฐ ๊ฒ์ ๋ถ์ผ์๋ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ Serverless์ ๋ํด์๋ ์คํ๋ ค ๊ฒ์ ์๊ณ๊ฐ ์ง์ ์ด ๋๋ฆฌ๊ณ , ์ต๊ทผ์ ํด๋ผ์ฐ๋ ์ธํ๋ผ๋ฅผ ๊ตฌ์ถํ๋ ์ ๊ท ์ ๊ณ๊ฐ ๋ Serverless ๋ชจ๋ธ์ ์ฑํํ๋ ์ถ์ธ๋ผ๊ณ ํ๋ค.
์ด๋ฒ Marvel Snap์ ์ธ์ ์ผ๋ก Serverless์ ๋ํ ๋ด ์ธ์์ด ํฌ๊ฒ ๋ฐ๋ ๊ฒ ๊ฐ๋ค. ์ด์ฉ๋ฉด ๋ค์ ์ฌ๋ด GameJam์์๋ Serverless ๋ชจ๋ธ์ ์ฑํํ๊ฒ ๋ ๊ฒ ๊ฐ๋ค ใ ใ
Riot Games์์์ EKS ์ฌ์ฉ๋ฒ
์์ฆ์ ๊ฐ์ฅ ํซํ ๊ฒ์ํ์ฌ Riot์ EKS ์ฌ์ฉ๋ฒ์ ๋ํ ๊ฐ์์๋ค. Riot๋ผ๋ ์ด๋ฆ ๋๋ฌธ์ธ์ง ๊ฐ์ฅ ํฐ ๊ฐ์ฐ์ฅ์์ ํ์์๋ ์ฌ๋์ด ๊ฝ ์ฐผ๋ค!!
์ฌ๋ฌ ๋ด์ฉ์ด ์์๋ ๊ฒ ๊ฐ์๋ฐ, ๊ธฐ์ต์ ๋จ๋ ๋ด์ฉ์ EKS Scaling์ ๋ํ ๋ด์ฉ์ด์๋ค.
์ํ์ ํ๋ ํ์ฅ(HPA)
ํ์ฌ์์ ์ฌ๋ฌ K8s Cluster์ Object๋ฅผ ์ด์ํ๋ฉด์, ์์ฆ Autoscaling์ ๋ํ ๊ด์ฌ์ด ์๊ฒผ๋ค. K8s์์ AutoScaling์ ์ง์ํ๋๊ฒ ์ฌ๋ฌ ๋ฐฉ์์ด ์์ง๋ง ๊ฐ์ฅ ๋จผ์ ๋ ์ค๋ฅธ๊ฑด ์ โHPAโ๋ค.
๊ฐ์ฅ K8s-nativeํ AutoScaling ๋ฐฉ์์ธ HPA๋ HorizontlPodAutoscaler
์ปจํธ๋กค๋ฌ๋ฅผ ํตํด K8s Deployment๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธ ํ๋ ๋ฐฉ์์ด๋ค.
K8s 1.23๋ถํฐ ๋์ ๋ ๊ธฐ๋ฅ์ผ๋ก CPU, Memory ์งํ์ ๋ฐ๋ผ ๋ ํ๋ฆฌ์นด ๊ฐฏ์๋ฅผ ์กฐ์ ํ ์ ์๋ค.
K8s Event-driven Autoscaling(KEDA)
K8s HPA์ ๋น์ทํ ๊ฐ๋ ์ผ๋ก KEDA(K8s Event-driven Autoscaling)๋ ๊ฒ๋ ์๋ค. ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ K8s HPA ๋ณด๋ค ๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ํ ํ์ฅ์ด ํ์ํ ๋ ์ฑํํ๋ ๊ฒ ๊ฐ๋ค.
K8s HPA์์ CPU, Mem ์์น๋ง์ผ๋ก AutoScaling์ ์ด์ํ๋๋ฐ, KEDA๋ฅผ ์ฌ์ฉํ๋ฉด, AWS SQS ์งํ, ์น ์ ์ ์ด๋ฒคํธ, Cron, ์ฌ์ง์ด๋ PromQL์ ์ฌ์ฉํ AutoScaling์ด ๊ฐ๋ฅํ๋ค! ์ฌ์ค์ ์ ๊ตํ ์ํ ํ์ฅ์ ๋ฌ์ฑ ํ๊ธฐ ์ํด์ KEDA ๋์ ์ ํ์์ ์ธ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
ํ์ฌ์์ ์์ ์ ํ๋ฒ POC ํด๋ณธ ๊ฒ ๊ฐ์๋ฐ, ์๊ฑธ ์ฌ์ฉํ๋๊ฒ ๊ทธ๋ ๊ฒ ํ์ฑํ ๋์ด ์์ง ์๋ค ใ ใ
Node Scaling: K8s CAS vs. Karpenter
์์ HPA์ KEDA๋ K8s Deployment์์ Pod ์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ, K8s Cluster์ ๋ ธ๋ ์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํ๋ ๋ฐฉ๋ฒ๋ ์์๊ฐ? ์๋ค!
K8s์์๋ ์ด๋ฏธ Node Auto Scaling ๊ธฐ๋ฅ โCluster AutoScaler(CAS)โ๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
K8s ํด๋ฌ์คํฐ์ Cloud Provider์ ๋ฐ๋ผ CAS์ ๋์ ๋ฐฉ์์ด ๋ค๋ฅด์ง๋ง, AWS์์ EC2 Auto Scaling Group์ ์ฌ์ฉํด Node Group ๋จ์์ Auto Scaling์ด ์ด๋ค์ง๋ค. ํด๋ฌ์คํฐ์ cluster-autoscaler
๊ฐ Pod์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋ง ํ๋ฉด์, node ์ ์ ์ด ์ง์์ ์ผ๋ก ์คํจํ๋ค๋ฉด, Node Group์ ํตํด ์ ๊ท Worker ๋
ธ๋๊ฐ ์ถ๊ฐ๋๋ค. ์ด๋, ์ถ๊ฐ๋๋ Worker ๋
ธ๋๋ Node Grouop์ ์ ์๋ ํ
ํ๋ฆฟ์ instance ์คํ์ ๋ฐ๋ฅธ๋ค!
๊ทธ๋ผ Karpenter๋ผ๋ Node Scaler๋ ์ ๋ฑ์ฅํ๋๊ฐ?
Karpenter๋ ๋ง์ฐฌ๊ฐ์ง๋ก Pod์ด ๋ค์ด๊ฐ ์ ์ ํ ๋ ธ๋๊ฐ ์๋ ๊ฒฝ์ฐ์ ์ ๊ท ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ค. ๋จ, Karpenter์ ๊ฒฝ์ฐ, NodeGroup์ ๊ธฐ์ค์ผ๋ก ์ ๊ท ๋ ธ๋๊ฐ ์ถ๊ฐ๋๋ ๊ฒ์ด๋ผ ์๋๋ผ โPod์ ์ฉ๋์ ๋ง๋ ๊ฐ์ฅ ์ ๋ ดํ ๋ ธ๋โ๋ฅผ ์์ฑํด ์ฌ์ฉํ๊ฒ ํ ์ ์๋ค!! ๊ฒ๋ค๊ฐ ์ ๊ท ๋ ธ๋๋ฅผ ๋์ธ ๋, Spot Instance๋ก ๋์ ๋ค๊ฐ fail์ On-Demand๋ก ๋ฐ๋ก ์ ํํ๋ ๊ธฐ๋ฅ๋ ์๋ค๊ณ ํ๋ค!
๊ฐ๋ค๊ฐ ๊ทธ์ธ์๋ K8s CAS ๋ณด๋ค ๋ ธ๋ ์ถ๊ฐ์ ์ ๊ฑฐ๊ฐ ๋น ๋ฅด๋ค(1๋ถ ์ด๋ด) ํ๊ฐ๊ฐ ๋ง์ JIT(Just-in-Time) ์ค์ผ์ผ๋ฌ๋ก ์ธ์๋๋ค.
๋จ, K8s CAS์ Karpenter ๋๋ค Node Scaler์ ๊ธฐ๋ฅ์ ํ๊ธฐ ๋๋ฌธ์ ๋์ ํจ๊ป ์ฐ๋ ๊ฑด ๋น์ถ๋ผ๊ณ ํ๋ค.
์๋ง ํ์์๋ K8s CAS๋ก NodeGroup ์ฌ์ฉํด Node Scaling์ ํ๋ ๊ฒ ๊ฐ์๋ฐ, ์ธ์ ๊ฐ Karpenter๋ ์ํํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค ใ ใ
๋ง๋ฌด๋ฆฌ: ์ปจํผ๋ฐ์ค๋ ์ฆ๊ฑฐ์
AWS ์ปจํผ๋ฐ์ค๋ ๋ ๊ทธ๋ ๋ฏ ๋ง์ ์๊ฐ์ ๋ฐ๊ณ ๊ฐ๋ ๊ณณ์ธ ๊ฒ ๊ฐ๋ค. ์ง๊ธ ์ฐ๋ฆฌ ํ์ด ์ ํ๊ณ ์๋์ง ์ ๊ฒํ๊ณ , ํ์ ๋์ ํ ์ ๊ท ๊ธฐ๋ฅ์ ๋ญ๊ฐ ์์์ง, ๋ ์ด๋ค ๋ฐฉํฅ์ผ๋ก ๊ฐ์ผํ ์ง ์๊ฐํ๊ฒ ๋๋ ๊ฒ ๊ฐ๋ค.
์ปจํผ๋ฐ์ค ํ์๋ Databricks ์ธก์์ After Party๋ฅผ ์ด์ด์ฃผ์ ์ ๋ค๋ ์๋๋ฐ, ํ์ฌ ์ฌ๋๋ค์ด๋ ๊ฐ์ด ์์์ง๋ง, ๋ค๋ฅธ ๊ฐ๋ฐํ์ ์ด์ผ๊ธฐ๋ฅผ ๋ง์ด ๋ฃ๊ณ , ๋ ๋ด๊ฐ ๊ถ๊ธํ๋ ๊ฒ๋ ๋ง์ด ์ง๋ฌธํ ์ ์์๋ค ใ ใ ์ฌ๊ธฐ์๋ ์ง์ง์ง์ง ๋ง์ ์๊ฐ์ ๋ฐ์๋ค ใ ใ ์ ๊ทธ๋ฆฌ๊ณ ๊ณต์ง ๋งฅ์ฃผ์ ๋ฌด์ ํ ๋ฉ๋ด๋ ๋๋ฌด ์ข์๋ค ๐ท
ํ๊ต ๊น์ง ๊ฐ๋๊ฒ ์ฝ์ง ์์์ง๋ง ํ๊ต์ ํ์ฌ ๋ถ์๊ธฐ๋ ๋๋ ์ ์์๋ค ใ ใ ํนํ ๊ฐ๋ฐ ํ์ฌ๋ค ์ฌ์ฅ ๊ตฌ๊ฒฝํ๋ ์ฌ๋ฏธ๊ฐ ์ ์ ํ๋ค ใ ใ ๊ทธ๋์ ์ ๋ฒ ์ฃผ๋ง์ ํ๋ฒ๋ ํ๊ต ๊ฐ์ ์ฃผ๋ณ ๊ตฌ๊ฒฝํ๊ณ ํ๋ ๊ณต์์์ ํผํฌ๋๋ ํ๊ณ ์๋ค ๐งบ