Upgrade to PRO for Only $50/YearโLimited-Time Offer! ๐ฅ
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
iLoveCoffee Programming Postmortem
Search
ehooi
April 26, 2013
Programming
3
2k
iLoveCoffee Programmingย Postmortem
ehooi
April 26, 2013
Tweet
Share
Other Decks in Programming
See All in Programming
AIใณใผใใฌใใฅใผใใใผใ ใฎ"ๆ่"ใ ่ชญใใใใใซใชใใพใง
marutaku
0
310
่ช่จผใป่ชๅฏใฎๅบๆฌใๅญฆใผใๅ็ทจ
kouyuume
0
150
TUIใฉใคใใฉใชใคใใฃใฆใฟใ / i-just-make-TUI-library
kazto
1
310
TypeScript 5.9 ใงไฝฟใใใใใซใชใฃใ import defer ใงใใใฉใผใใณในๆ้ฉๅใๅฎ็พใใ
bicstone
1
1k
Reactive Thinking with Signals and the new Resource API
manfredsteyer
PRO
0
160
ใใใฏใจใณใใจใณใธใใขใซใใ Amebaใใญใฐ K8s ๅบ็คใธใฎ CronJobใฎๅฐๅ ฅใป้็จ็ต้จ
sunabig
0
130
AIใณใผใใฃใณใฐใจใผใธใงใณใ๏ผNotebookLM๏ผ
kondai24
0
130
ใชใๅ ๅผใ ไฝ็ฝใฎๆๅณใ่ใใฆใใ UIๅฎ่ฃ ใใฆใใ๏ผ
ktcryomm
10
11k
ใฌใคใใฌZไธไปฃใซๆงใใไปใใใฌใคใใฌใๅงใใใใใฎๅฐๅพ
ichi_raven
0
490
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.2k
Integrating WordPress and Symfony
alexandresalome
0
120
Google Antigravity and Vibe Coding: Agentic Development Guide
mickey_kubo
2
130
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
51k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Facilitating Awesome Meetings
lara
57
6.7k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
BBQ
matthewcrist
89
9.9k
Optimizing for Happiness
mojombo
379
70k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
How to Ace a Technical Interview
jacobian
280
24k
ใใณใใใใฃใณในใซ๏ผๆชๆฅใใคใใใใญใใฏใใญใผใใใใ #pmconf2020
aki_iinuma
128
54k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Producing Creativity
orderedlist
PRO
348
40k
Transcript
์์ด๋ฌ๋ธ์ปคํผ ๊ฐ๋ฐ ํฌ์คํธ๋ชจํ - ์จ๋ผ์ธ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ ์ ์ฅ์์ ํํฐ๊ฒ์์ฆ CTO
์ํํ
์์ด๋ฌ๋ธ์ปคํผ ๊ณผ๊ฑฐ์ฌ โข 2011๋ โ 1์ ํ์ฌ ์ค๋ฆฝ โ 7์
์ธ์ด์๋ ์ถ์ โ 10์ ๋๋ง ์ถ์ โ 12์ ์ค๊ตญ ์ถ์ โข 12์ ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ ์์
๋น์ ์ํฉ โข ์น ๋ฒ์ ๋ ๊ณ์ ๋ผ์ด๋ธ ํฉ๋๋ค โ #
lines: 40,000 ๏ 62,000 โข Android๊ฐ ์ฐ์ธํ๋, iOS๋ ๋ฌด์ํ ์ ์๋ค โข ๋ชจ๋ฐ์ผ ์์ ๊ทธ๋ํ ๋์ธ๊ฐ ์๋ค โ ์ง์ ๋ง๋ค์
๋น์ ์ํฉ โข ๋ชจ๋ฐ์ผ ๊ฐ๋ฐ ๊ฒฝํ ์ ๋ฌด โ ํ์ฌ์ Mac๋
์๊ณ , ์๋๋ก์ด๋ํฐ๋ ์์ โ ํ๋ก๊ทธ๋๋จธ 2์ธ์ผ๋ก ์์ โข ๋ชจ๋ฐ์ผ์ ๋ง๋๋ก ๊ธฐํ โ UI ์์ - Mouse Over โฆ โ ์ค๋ ฅ ์ผ์, ํฐ์น๋ฅผ ํ์ฉํ ์ฝํ ์ธ
์ธ๊ณ ์ถ๋ค
์์ โข Game Engine โข Logic Converting โข Client Optimization
โข Server Optimization
GAME ENGINE
์์ง ์ ์ Adobe AIR โข ์ฅ์ โ ์ฝ๋ ์ ์ง โ
๊ฐ๋ ฅํ 2D ๋ ๋๋ฌ โ Flash โข ๋จ์ โ ์ฑ๋ฅ โ ์์ ์ฑ Cocos2D-X โข ์ฅ์ โ Open Source โข ๋จ์ โ ๊ธฐ๋ฅ ๋น์ฝํจ โ OpenGL ES 1.1 โ ๋ฒ๊ทธ ๋ง๋ค โ ํด์ด ์๋ค
๋น์ ๊ฐ ํํธ ์งํ ์ํฉ โข ๊ธฐํ ํํธ โ UI
๊ธฐํ ์ค๋ฐ ์์ โ UI ํ๋ฉด 50๊ฐ ์ด์ โข ๊ทธ๋ํฝ ํํธ โ UI ๋์์ธ ์์ ์์ โข ํ๋ก๊ทธ๋๋ฐ ํํธ โ Legacy ๋ฉ์ด๋ฆฌ ActionScript ์ฝ๋๋ค Fla ํ์ผ๋ค
UI Editor Cocos Builder 1.0 โข Only for Mac โข
No Source โข No maintenance ์์ฒด ๊ฐ๋ฐ โข Undo ์์ผ๋ฉด ์ ์ด๋ค โข ์์ฃผ ์ฃฝ์ด๋ ์ ์ด๋ค โข ํค๋ณด๋๋ก ํฝ์ ๋จ์ ์กฐ์ โข ์ต์ํ MFC ์ฌ์ฉ ๏ ๋น ๋ฅธ ์ด๊ธฐ ๋ฒ์
UI Editor
UI System โข Non-Retina ์ ๊ฑฐ โข UI Event Handling โ
Modal / Popup โ Multi-touch โ Slide
Effect Editor
๊ธฐ๋ฅ ์ถ๊ฐ โข Glow Effect โข Sprite Masking โข Text
Stroke ๏ ์ ๋ถ Flash์ ์๋ ๊ธฐ๋ฅ
LOGIC CONVERTING
C++๋ก ๊ฐ๋ฐ ์์ โข ์ฃผ์ ์ธ๋ ฅ์ ์น ๋ฒ์ ๊ฒฝํ ๋ฟ
โ ActionScript + Java โข C++ โ No Garbage Collection โ No Closure ๏จ ์ด ์๋๋ผ๋ฉด ๋ช ๋ ์ ๋ง๋ค์ด์ผ ํ ํ
์จ๋ผ์ธ ๊ฒ์ ๊ฒฝํ์ ์ด๋ฆฌ์
Lua Patch โข ํ๊ธ๋ณ์ โข UTF8 ํ์ผ ์ง์ โข continue
์ฝ๋ฉ ์ค์ ๋ฐฉ์ง โข strict โข class / descriptor โข
Visual Studio โ Syntax highlighter โ Build time syntax check (custom rule)
๋๋ฒ๊น โข Debug Console โ C++ Crash โข Lua Crash
Report Server โข VS Debugger โ Debug API ๋๋ฌด ๋๋ฆฌ๋ค
Coroutine ํ์ฉ โข ์ ์ฐจ๋ฅผ ์์ โ ๊ทธ๋ฅ lua ์ฝ๋ โ
์ง์ญ ๋ณ์ โ ๋ถ๊ธฐ/๋ฐ๋ณต โข yield? โ ๊ธฐ๋ณธ ํจ์ ์
CLIENT OPTIMIZATION
๊ทธ๋ํฝ ๋ฆฌ์์ค ๋ถ๋ โข ์ธํ ๋ฆฌ์ด ์์ดํ : 4,500๊ฐ โข ์บ๋ฆญํฐ ์์ดํ :
720๊ฐ โข ์บ๋ฆญํฐ ์ ๋๋ฉ์ด์ : 233๊ฐ โข ๊ฐ์ข ์์ด์ฝ: 1,400๊ฐ
ํ๊ฒ ์ค๋งํธํฐ ์ฌ์ โข iPhone 3GS โ Cortex-A8 600 MHz
โ PowerVR SGX535 โ 320x480 โ 256 MB RAM โข Galaxy S โ 1 GHz Cortex-A8 โ PowerVR SGX540 โ 480x800 โ 512 MB RAM
๋ฆฌ์คํธ ๋ฐ์ค 80 Pages
๋ฆฌ์คํธ ๋ฐ์ค - ํ ์คํธ ๋ฒ๊ทธ ๋ฐ๊ฒฌ โข JNI memory leak
โข ์ค๋ฐ๊ฟ ๋ฌดํ ๋ฃจํ ๋ฒ๊ทธ ์ต์ ํ โข ๋ฐ๋ ํ ์คํธ ์ด๊ธฐํ ์๋ต โข ๋ฉ๋ชจ๋ฆฌ ํ ๋น ํ์ ์ค์ โข ๋ณต์ฌ ํ์ ์ค์
๋ฆฌ์คํธ ๋ฐ์ค - ์ด๋ฏธ์ง โข ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ก๋ฉ โข ์ ์ฐ๋
ํ ์ค์ฒ ๋ฉ๋ชจ๋ฆฌ ํด์ โข UI ์ฌํ์ฉ
์บ๋ฆญํฐ ์์คํ
None
None
์บ๋ฆญํฐ ์์คํ ์ต์ ํ โข ์บ๋ฆญํฐ ๋น ๋ ์ด์ด ์ = 16~25
โ ๋ ์ด์ด = ํ ์ค์ฒ = Draw Call ๏จ Texture Atlas
๋๋ฌด ๋ํ ์ผํด์ ๋ฌธ์
ํด๊ฒฐํ ๋ฐฉ๋ฒ โข ํ์ผ๋ก ๊ตฌ๊ฒจ ๋ฃ์ โ ์ด ์ ๋ ๋ง๋ค์์ผ๋ฉด,
ํฌ๊ฒ ๋ฒ์ด๋์ง ์๊ฒ ์ง โ ์ผ๋ถ ์์ดํ ์์ ๏จ 512x512 1์ฅ
์ธํ ๋ฆฌ์ด ์์ดํ โข ๋ฉ๋ชจ๋ฆฌ/ํ์ผ ์ฉ๋ ๋ ๋ค ๋ฌธ์ โข PVRTC?
ETC1? DXT? PNG 8bit? โข RGBA4444 (PNG 32bit) โ ๋๋๋ง โ ์บ๋ฆญํฐ, UI๋ ์ผ๋ถ ์ ์ฉ
SERVER OPTIMIZATION
๋น์ ๊ตฌ์กฐ โข Java Socket Server โ ์ฑ๋ฅ ํฅ์ โ
๋ฐฑ์ญ ๊ฐ๋ฅ์ฑ ์กด์ฌ โข Mongo DB โ ๋น ๋ฅด๊ฒ(๋ง) ๊ฐ๋ฐ โข Web server?
๋ชจ๋ฐ์ผ ๋คํธ์ํฌ โข ์๋ ์ฌ์ ์ ์๋ โข ์ฌ์ ์ ์ฑ๊ณต์ ํต์
๋ด์ฉ ๋ณต๊ตฌ โ TCP ์ฒ๋ผ ์ฃผ๊ณ ๋ฐ์ ํจํท์ ๋ง์ถฐ ๋ด
๋น์ ์๋น์ค ์ํฉ โข K์ฌ ํด๋ผ์ฐ๋ ์๋ฒ โ Amazon ๋๋น
50% ์ด์ ์ ๋ ด / ๊ธฐ๋ฅ ๋ถ์กฑ โ ๋์์ ์์ 1๋ง๋ช ์ฒ๋ฆฌ / ์ 40๋ง์ โ ์๋ฒฝ์ ๊ฐํน ์๋ฒ ๋ฉ์ถค (Hang) ๏ ์์ฒด ์๋ฒ ๊ตฌ๋งค
ํธ๋ํฝ ํญ์ฆ ๋๋น Redis ๋์ โข Cache โ ์น๊ตฌ ๋ ๋ฒจ
๋ฑ โข ์๋ฉธ์ฑ ๋ฉ์์ง โ ์น๊ตฌ์๊ฒ ์์ฒญ โ ์น๊ตฌ์ง ๋ฐฉ๋ฌธ ํ๋ Mongo DB โข Collection ๋ถ๋ฆฌ โข ๋ฉ๋ชจ๋ฆฌ ์ฆ์ค โข Sharding?
Game Server ์ฅ์ ์ฒ๋ฆฌ โข ulimit โข iptables โ ip_conntrack
โข GC options โข More Memory โข Load balancing โ uid % k
์ต์ ํ ํจ๊ณผ โข RU ์ฝ 500๋ง โข DAU ์ฝ 150๋ง
โข CCU ์ฝ 22๋ง โข DB 400๋ง์ * 1๋ โข APP 110๋ง์ * 3๋ โข IDC ์๋๋ฃ 70๋ง์ / ์ โ ๋จ, CDN ๋ณ๋
๋ง๋ฌด๋ฆฌ
๋ชป๋ค ํ ์ด์ผ๊ธฐ โข ํจ์น ์์คํ ์ฝ์ง๊ธฐ โข ์๋๋ก์ด๋์์ ์ฌํฌ
โข ํํฐํ๋ ์ฆ๋ฅผ ์์๋์?
ํ๊ณ ์ถ์ ๋ง โข ์จ๋ผ์ธ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ๋ ๋ชจ๋ฐ์ผ ๊ฒ์ ์
๋ง๋ค ์ ์๋ค โข Cocos2D-X๋ก ๊ฐ๋ฐํ๋ ํ๋ค์ ๋์์ด ๋๊ธธ
์งํ์ค์ธ ํ๋ก์ ํธ โข ์์ด๋ฌ๋ธ์ปคํผ ๋ผ์ด๋ธ โข SNG 2์ข โข ์บ์ฃผ์ผ
1์ข โข ํผ๋ธ๋ฆฌ์ฑ ๋ค์
ํ๋ก๊ทธ๋๋จธ๋๋ ๋ชจ์ญ๋๋ค!
[email protected]
[email protected]