SlideShare a Scribd company logo
1 of 55
Download to read offline
LINE Game 
Global 도전기 
Hwang Seonpill 
LINE Corp.
들어가는 말
글로벌 업무를 진행하면서 
가장 많이 받는 질문 
1. 어떤 디바이스를 대응하면 되나요? 
2. 그 디바이스는 점유율이 얼마에요? 
묻고 싶습니다. 몇% 까지 알아보셨어요 ? 
1. 저도 잘 모르고, 
2. 태국사람도 몰라요. 
3. Carrier 도 잘 모를꺼고, 
4. 용산에서 파는 분도 모릅니다
거꾸로 생각해보면 
저런 류의 질문이 많다는 사실은 
1. 글로벌 대응이 특정 디바이스를 대응하는 것이다? 
2. S 사의 G 가 인기가 많다던데 여기서만 잘 돌아가면 되는걸까? 
3. 정말 S 사의 G 가 인기가 많은건 맞는 걸까? 
10 명 중에 9 명은 이렇게 시작하는 글로벌 
그럼 글로벌 서비스를 위해서는 
도대체 무엇을 준비해야 하는 걸 까요 ?
라인의 글로벌 
라인이 
1. 글로벌의 정답은 아닙니다. 
2. 글로벌하게 잘 하고 있는 것도 아니고 
3. 글로벌 문제를 잘 해결한 것은 더더욱 아닙니다. 
라인도 
1. 문제 생기면 우왕 좌왕합니다. 
2. 큰 조직에서 발생한 과도한 정보로 
더욱 혼란스러운 상황이 발생하곤 했습니다. 
3. 큰 그림을 보지 못했고 
작은 이슈들의 임기 응변의 연속이었습니다.
이 강연은 
라인이 겪었던 시행착오를 비롯한 
글로벌의 경험 공유를 목표로 합니다 . 
대부분의 문제는 현재 진행중이고, 
해결을 위해 노력 중입니다. 
라인도 아직 대부분 해결 못했어요 .
여러가지 문제들
Device Fragmentation 
그럼 정말 몇 % 까지 알아 보셨어요 ? 
Indonesia 
Rank Brand Name USD 2013 3 13 Percentage 
1 SAMSUNG E 1205 18 144,586 5.08 
2 BLACKBERRY CURVE 9220 181 133,548 4.69 
3 SAMSUNG GALAXY Y S 5360 99 108,644 3.82 
4 BLACKBERRY CURVE 9320 235 97,420 3.42 
5 SAMSUNG E 1195 29 96,959 3.41 
6 NOKIA 103 21 92,852 3.26 
7 NOKIA 100 26 68,127 2.39 
8 SAMSUNG C 3322 52 57,678 2.03 
9 NOKIA ASHA 305 85 54,769 1.92 
10 NOKIA 101 32 54,495 1.91 
11 SAMSUNG GALAXY CHAT B 5330 129 53,471 1.88
Device Fragmentation 
그래도 S 사가 최고였어요 . 
점유율 1.88% 
밖에 안되고 
점유율 3.82% 
밖에 안되도 내가 제일 잘 나가
Device Fragmentation 
잠깐만요 
이게 점유율이라구요? 그럼 어디까지 대응해야해요 ? 
1. 1 등 디바이스가 4~5% 에 불과합니다. 
2. 상위 20 위까지 디바이스의 점유율 합이 50% 미만이지요. 
3. 그럼 글로벌 디바이스를 대응하기 위해서 
국가별로 디바이스 20 대를 사서 테스트해야 하나요? 
4. 이런 방법은 현실적이지 않습니다. 
하지만 
라인도 이런 비현실적인 방법을 쓰기도 했습니다 .
Device Fragmentation 
이런 스마트폰도 있습니다. Galaxy Y 
Dimensions 104 x 58 x 11.5 mm Internal Storage 180MB 
Weight 97.5 g RAM 290MB 
Android 2.3.5 CPU 830MHz ARMv6 
LINE Game 은 공식적으로 ARMv6 CPU를 지원하지 않았지만… 
지원해야하는 이슈가 발생합니다 . 
참고 
iPhone 3 : 2008 년 armv6 
iPhone 3GS : 2009 년 armv7
Device Fragmentation 
• 한국의 파편화는 글로벌 시장에 비해 매우 양호합니다. 
• 디바이스 파편화를 특정 디바이스를 테스트해서 
해결하기는 쉽지 않습니다. 
• 클라이언트의 덤프 수집 , 통계 시스템을 구축하여 
문제를 빨리 발견 하는 것이 효율적일 수 있습니다.
Low Spec Devices 
왜죠? 왜 하필 대표님 스마트폰인가요? 
언제나 게임을 오픈하면 
1. 대표님, 이사님 스마트폰만 문제가 생깁니다. 
2. 저장 용량이 거의 남아있지 않은 iPhone4 를 쓰고 계신 대표님. 
용량 부족으로 OS 업그레이드도 잘 안됩니다. 
대표님 돈도 많이 버시는데 6+ 로 하나 사시면 안되겠습니까? 
3. 개발자들의 진정한 복지는 대표님의 iPhone 6+으로부터 
실장님 대표님 댁에 iPhone 6+ 놔드려야 겠어요 . 
그런데 바꿔드리고 
그 스마트폰 버리시면 안됩니다 . 
그렇게 문제가 잘 발생하는 테스트폰도 구하기 힘듭니다 .
Low Spec Devices 
다시 등장한 S 사의 Y디바이스 
점유율 3.82% 밖에 안되도 
Armv6 CPU라도 
동남아 서비스를 위해서 
Galaxy Y 가 꼭 지원되 
동남아 서비스를 위해서 
Galaxy Y 가 꼭 지원되 
야 
합니다. 
야 
합니다. 
LINE Plus 이모씨
Armv6는 
Low Spec Devices 
1. 2008년 iPhone 3의 CPU가 Armv6 호환 CPU였습니다. 
2. 2009년 iPhone 3Gs의 CPU는 Armv7호환 CPU였습니다. 
3. 2013년 동남아 저가 디바이스 시장의 주역이었습니다. 
HDD는 2TB, 그래픽 카드는 온보드인 조립 PC를 아시나 
요 ? 
1. 저가 시장에는 이런 형태의 디바이스가 꽤 있습니다. 
2. 싼 부품의 스펙을 높이고 고가 부품의 성능을 낮춘 형태입니다. 
3. 전체가 스펙이 낮은 경우보다 문제를 해결하기 더 힘든 경우가 있습니다. 
아니 최신형 4.5 인치 스마트폰을 샀는데 
왜 이 게임은 안되는겁니까 ? 
Memory 100MB, CPU ARMV6니까요.
Low Spec Devices 
• Armv6 는 제작툴에서 지원하지 않는 경우가 있습니다 . 
• 게임의 CPU, Memory, Storage 제한은 확인해봅시다 . 
• 저 사양 Devices 는 설치 단계에서 많이 실패합니다 . 
• 저 사양 디바이스의 대응은 시간이 매우 많이 걸립니다. 
• 대응 디바이스의 사양을 제한할 필요도 있습니다. 
• 하지만 대응 사양은 명확해야 합니다.
Low Quality Network 
예 비행기안인데 안되신다구요? 
1. 김과장 비행기에서 안된데 
2. 이대리 여기 사우나인데 안되는데? 
3. 박차장 후지산 정상인데 안테나는 잡히는데 왜 안되? 
4. 사장님들 출장 많이 다니시니 게임이 안되는 경험도 많습니다. 
출장도 안가시는게 개발자 복지에 좋을것 같습니다 . 
But, 
진짜 생각하지 못한 장소에도 유저들이 있습니다 .
Low Quality Network 
Network Available 인데 
1. GPRS, Edge, 3G, 3G+, 4G, LTE and Airplane WiFi 등 
우리 생각보다 훨씬 다양한 네트워크 환경이 존재합니다. 
2. 이런 다양한 네트워크 환경사이에 잦은 handover 로 인해 
예상치 못한 문제가 발생하고, 
3. 언제 올지 모르는 Response 를 기다리거나, 
너무 빨리 Connection Timeout 해버리는 문제가 발생합니다. 
4. 현실적으로 이런 모든 상황을 대응하기는 어렵습니다. 
가장 해결하기 어려운 문제 : 안테나는 떠 있는데 안돼 .
Low Quality Network 
전 세계에 안테나를 꽂는게 빠를겁니다. 
1. 농담으로 던진 이 한마디가 
2. 태국에서는 현실이 되었습니다. 
3. 3G 와 Edge 가 기본이던 네트워크 환경이 
4. 1년만에 3G 와 4G 환경으로 변했습니다. 
But, 그 외의 국가라면 
1. SPDY 등의 Protocol 로 변경을 고려해보거나, 
2. More Light More Efficiency Protocol 을 목표로 
전체 Request, Response 를 재설계하거나, 
3. Round Trip 자체를 줄이는 등의 노력이 필요합니다. 
RTT 가 느리다는 것을 고려하지 않고 설계된 Request, Response는 
문제가 생깁니다 .
Low Quality Network 
Decreasing Round Trip 
1. 저품질 네트워크의 가장 큰 문제는 긴 Round Trip Time입니다. 
2. Round Trip Time 을 줄이는 것은 불가능합니다. 
3. 하지만 Round Trip 의 회수를 줄일 수는 있습니다. 
4. 필요없는 Request 가 있는지 게임의 Flow 를 점검해야 합니다. 
5. 한번에 보낼 수 있는 Request 는 하나로 합칩니다. (Merging)
Low Quality Network 
Network Link Conditioner 
1. Uplink, Downlink 의 Network Delay, Bandwidth 를 강제로 고정시켜서 
Low Quality Network 환경을 만들어 줍니다. 
2. Delay 의 경우 정확도가 떨어지므로, 
Ping 등을 이용하여 오차를 수정한 후 사용해야 합니다. 
3. LINE 내부에서는 Delay 설정의 정확도 문제로 
별도 툴을 자체 개발해서 사용합니다. 
하지만 매우 좋은 툴입니다 !!
Low Quality Network 
• “No Network” is better than 
“Available but Low Quality Network” 
• “Available but Low Quality Network” is more than 
“No Network” 
• Connection Timeout, Read Timeout 
• Decreasing Round Trip Time 
• Apple 에서 제공하는 Network Link Conditioner 는 
Low Quality Network 테스트에 큰 도움이 됩니다 .
Data Synchronization 
Smartphone Game의 Data 처리는 
1. Online PC Game보다 
2. Console Game 의 저장 방식과 비슷합니다. 
Online PC Game : 다른 유저와의 상호작용 중요 , 즉시 데이터 갱신 필요 
Smart Phone, Console : 다른 유저와의 상호작용이 실시간으로 필요하지 않음. 
나의 랭킹 데이터는 30 초 후 쯤에 랭킹 리스트에 갱신되도 OK
Data Synchronization 
대부분의 경우 
실시간으로 서버와 동기화를 할 필요는 없습니다. 
데이터 연동은 
게임 시작 시 데이터는 클라이언트에 가지고 있는 
데이터로 시작해도 됩니다. 
게임 종료, 기록은 나중에 보고해도 됩니다. 
데이터의 흐름에 맞춘 게임보다 , 
유저 편의에 맞춘 데이터 흐름 
하지만 한국산 게임은 온라인 게임의 데이터 흐름 그대로인 경우가 많습니다 .
Data Synchronization 
First OK 
1. 데이터 갱신이 필요한 경우 
2. 클라이언트에 저장하고 그냥 게임 진행하자. 
3. 10~20 초 후 랭킹이 갱신된다고 내가 게임을 못하지 않는다. 
Last Synchronization 
1. Background 에서 갱신을 하거나 
2. Data 를 모아서 한번에 갱신을 하거나 
3. Binary File 형태로 업로드 하거나 
중요하지 않은 데이터를 처리하기 위해 
유저의 동작을 Block 하지 맙시다 !!!!
Data Synchronization 
Client Security and Business Model 
1. Client 에 저장된 Data 는 언젠가는 공격자에게 뚫립니다. 
2. Client 에 Play log 도 같이 저장해서 서버에서 Play log 를 재검증 하거 
나 
3. Business Model 자체를 클라이언트의 보안과 관련없게 만들거나 
4. Offline 모드를 별도로 제공하는 방법도 있습니다. 
Nintendo 도 
당하고 Elf 도 당하고
Data Synchronization 
• Smart phone Game 의 Data Sync 는 Console 과 닮았다 . 
• First OK, Last Synchronization 
• Client Security 처리가 중요하다 . 
• 하지만 Client는 무력화 된다는 것을 전제로 
Business Model 을 만들자 .
CDN Download 
Big size image from CDN 
1. 대한민국의 인터넷 환경, 특히 스마트폰 네트워크 환경은 전세계 최고 
2. 대한민국의 스마트폰 개발자 분중에 “일부”는 
파일 사이즈에 너무 관대합니다. 
Name Download Speed Download Speed 2.5Mbyte files download 
GPRS 80Kbit/s 10Kbyte/s 250sec 
EDGE 200Kbit/s 25Kbyte/s 100sec 
3G CDMA2000 2Mbit/s 250Kbyte/s 10sec 
HAPS+ 20Mbit/s 2500Kbyte/s 1sec 
LTE 100Mbit/s 12500Kbyte/s 0.2sec 
스펙상의 수치입니다 . 
실제 환경은 더욱 열악합니다 .
CDN Download 
Delete Redundant Files 
1. 중복 파일을 관리해야해요. 
2. 중복되는 파일이 없도록 파일단위로 관리하고, 
같은 숫자면 하나의 파일로 압축 후 전송합시다. 
압축명 파일명 
FILE1.zip Abcde.jpg -> 이전 파일에서 삭제할 수 있도록 파일 단위 관리 방법을 고민합시다 . 
FILE1.zip 12345.jpg 
FILE1.zip Qwert.jpg 
FILE2.zip Abcde_edited.jpg 
FILE2.zip 67890.jpg 
FILE2.zip Zxcvb.jpg
CDN Download 
CDN Request 는 최대한 적게 
1. Round Trip Time 은 CDN Download 에서도 큰 장애가 됩니다. 
2. Keep Alive 나 다른 해결 방식도 존재하지만, 
가장 기본적인 해결 방식은 파일 숫자를 줄이는 것입니다. 
파일명 파일 사이즈 Download 시간 (A) RTT (B) A+B 
File1.jpg 1Kbyte 100ms 200ms 300ms 
File2.jpg 1Kbyte 100ms 200ms 300ms 
File3.jpg 1Kbyte 100ms 200ms 300ms 
File4.jpg 1Kbyte 100ms 200ms 300ms 
File5.jpg 1Kbyte 100ms 200ms 300ms 
File1_5.zip 5Kbyte 500ms 200ms 700ms
CDN Download 
Low Resolution Image File 을 준비합시다 . 
1. Device 의 종류에 따라서 2~3 가지 
Resolution 의 Image 파일을 준비 합시다. 
2. 최대 사이즈의 Image 를 일정 배율로 사이즈를 줄여서 준비하면, 
작업의 시간을 줄일 수 있을지도 모릅니다. 
3. 당연히 Location문제나, 디자인 퀄리티 등이 문제 될수 있습니다. 
하지만 게임이 안되는 것보다는 나아요 . 
다시 등장한 점유율 3.82% 
나는 1280x1024 의 이미지를 
설치할 메모리가 없어요.
CDN Download 
• 파일 갯수를 줄이고 
• 파일 사이즈를 줄이고 
• 중복 파일은 꼭 골라냅시다.
SIM Card 
한국과 일본의 SIM Card는 
1. 개인정보가 담긴 소중한 것 것입니다. 
2. 2 년에 한번 또는 더 오랜 기간 사용 후 가끔 교체합니다. 
3. 그래서 SIM Card 에서 예외 사항이 발생하는 경우는 매우 드물어요. 
한국과 일본의 SIM Card 의 정보는 
유저별로 Unique 한 구분자가 될 수 있습니다.
SIM Card 
하지만 그렇지 않은 나라가 대부분입니다. 
1. SIM Card 는 언제나 바꿀 수 있는 것이고, 
2. 프로모션에 따라 바로 바로 바꿔 쓰기도 하고 
3. Data 용 SIM 과 통화용 SIM 을 동시에 사용하기도 합니다. (Dual SIM 
Slot) 
Dual SIM Slot 
1. SIM Card 정보로 이벤트, 
지표 등을 생성할 때는 꼭 Dual SIM Card 에 대한 대책이 필요합니다. 
2. 하지만, Google 의 공식 API 는 존재하지 않습니다. 
3. 각 Device 제조사로부터의 API 만 존재합니다. 
현재까지 공식적으로 Dual SIM Card Slot 의 정보를 
효율적으로 취득할 수 있는 방법은 없어 보입니다 .
SIM Card 
MCCMNC 
1. 유저의 국가를 구분할 때는 MCCMNC 를 사용하세요. 
Mobile Country Code / Mobile Network Code 
2. ISO 3166 로 추출하는 코드보다 효율적으로 
국가와 캐리어를 구분할 수 있습니다. 
3. 특히 Carrier 정보는 MNC 를 사용해야 정확히 추출 가능합니다. 
EX) LG vs LGT vs LG Telecom 
MCC MNC Operators Bands 
450 05 SK CDMA2000 800 / UMTS 2100 / 
LTE 850 / LTE 1800 
450 06 LG CDMA2000 1700 / LTE 850 2100 2600 
450 08 KT UMTS 2100 / LTE 900 / LTE 1800 
450 11 Korea Cable Telecom(t-plus), Eco-mobile UMTS 2100
SIM Card 
태국인의 30% 가 미국인 
1. 일본 서비스에서는 전혀 문제가 없었는데, 
2. 태국 서비스 오픈 이후 태국 매출의 30% 가 
미국인에 의해서 발생하고 있습니다. 
Dual SIM, Device 설정 
1. LINE 게임의 국가 결정 순위는 SIM Card 의 국가 설정(ISO) 이 1순위 
입니다. 
2. SIM Card 에서 취득이 실패하면 디바이스의 Location 이 2 순위 입니다 
. 
3. 동남아에서는 디바이스의 언어 설정을 영어로 해두는 경우가 
상당히 많습니다. 
그래서 LINE 게임 유저는 SIM Card 의 국가 정보 취득이 실패하면 
국가 정보가 미국으로 보고되는 경우가 많습니다 .
Dual SIM Device 
• SIM Card 의 정보 이용은 신중해야 합니다 . 
• Dual SIM Card 의 정보를 효율적으로 컨트롤할 수 있는 
Google 의 API 는 존재하지 않습니다 . 
• 국가 코드 취득 기준은 MCCMNC가 관리하기 편합니다.
Abusing 
Global Platform은 
1. Global Economic System 이라고 정의하신 분이 있습니다. 
2. 클라이언트에서는 저장되어있는 값을 찾아서 하나씩 수정해나가거나 
Client memory modify 
3. 공격자 마음대로 하도록 아에 클라이언트를 새로 만들고 
Client reverse engineering and resigning 
4. 패킷을 분석하고, 재사용하고, 변조하는 등 
Packet analysis, reuse, modify 
5. 우리가 알고 있는 모든 어뷰징 방식이 총 동원됩니다. 
Global 
Economic 
System 
Global 
Economic 
System
Abusing 
• 알려진 모든 형태의 Abusing 에 대한 
기본적인 대응이 필요합니다. 
• 하지만 모든 Abusing 을 피할 수 없습니다. 
• 상세한 유저 패턴의 저장 , 분석, CS 대응이 필요합니다 .
User Pattern Analysis 
새로운 앱 릴리즈 후 발생하는 문제는 
1. Key Word 만 알아도 문제 해결에 많은 도움이 됩니다. 
2. 하지만 수많은 Comment 를 모두 분석해서 해결하는 것은 
생각보다 시간이 걸리는 작업이에요. 
3. Key Word 분석 만으로도 Abusing, 
Crash, Bug 등 다양한 분야를 
대응하는데 유용합니다. 
4. 일부 서비스에 적용되어 있으며 
라인 게임은 준비 중에 있습니다.
Length of Currency 
환율이 너무해 
1. 모 게임에서 인도네시아에서 결제가 안된다는 문의가 들어왔습니다. 
2. 개발자들과 조사를 해봤지만, 인도네시아에서만 안될 이유는 없었습니 
다. 
3. 현지의 비전문가 인력에게 클라이언트 전달 후 로그 추출을 반복하다보 
니 
원인 확인에도 많은 시간이 걸렸습니다. 
4. 문제는 99.99$=1,205,196IDR 
5. 베트남에서도 같은 문제가 발생했을 겁니다. 
너무 바보같은 실수 아니냐고요 ? 
한국에서온 2 개의 게임에서 발생했고 , 둘다 Major 개발사 였습니다 .
Carrier 
불변의 진리 Carrier사 
1. KT 는 진리, SKT 는 진리, 불변의 법칙 그 이름은 한국 Carrier입니다 
. 
2. 그리고, 3G, 4G 의 셀룰러 망은 믿을만한 네트워크라고 생각했습니다. 
하지만, 아니었습니다. 
1. 임의로 헤더 고쳐쓰고, 데이터 변경하고 (Softbank) 
2. 버그로 패킷 잘리고 (Starhub) 
대체로 
1. Carrier 의 문제를 직접해결할 수는 없는 경우가 많지만 
2. 도저히 해결의 실마리가 안잡히는 네트워크 관련 문제는 
Carrier 가 문제일 가능성에 대해서도 테스트해볼 필요가 있습니다.
그러나 이런 문제들 
• 다 라인 때문이다. 
• 모두 라인탓이고, 해결해야죠. 
• 해결하려고 시작했습니다.
라인은 이렇게 바뀌어 왔습니다
LINE Game Platform HSP 
LINE Game 의 시작은 
1. 한게임 스마트폰 플랫폼이었습니다. 
2. Pokopang 을 비롯해서 훌륭한 게임들의 
동시접속자가 100 만이 넘게 서비스 할 수 있는 
훌륭한 플랫폼입니다. 
3. 하지만, 당시에는 국내용이었습니다. 
(과거형입니다. 화내지마세요 ^^;) 
4. 한게임, 라인 모두 글로벌 대응이 
필요한 상황이었습니다. 
5. 그리고 TOAST 와 LINE GAME Platform 으로 
각각 글로벌 대응을 진행했습니다.
LINE Game Platform Phase1 
글로벌 대응을 위한 첫번째 작업 
1. RTT 를 최소화해서 로그인등의 속도를 높이고, 
2. 기본적으로 최소한의 필요한 기능만을 새로 만들었습니다. 
그러다보니, API 의 간소화라고는 했는데 
1. 아무것도 없었습니다. 
2. 정말 아무것도없었어요. 
3. API 몇개 주고 개발사가 모두 만들어야 하는 정도였습니다. 
4. 그래서 사용한 개발사가 하나뿐…
LINE Game Platform Phase2 
글로벌 테스트 결과가 적용되기 시작한 Phase2에서는 
1. 네트워크 반응성을 높이기 위한 3G Warm Up 을 적용하거나, 
2. Round Trip 회수를 줄이기 위한 Merge API 를 적용하거나 
3. 데이터를 클라이언트에 캐싱해서 저사양 네트워크를 대응하였습니다. 
또한 API 의 사용성을 높히기 위해서 
1. API 의 소스를 정리하고 
2. 로그인의 API 를 간소화하고 
3. 기타 라인 채널의 API 들에 캐싱이 추가되었습니다.
3G Warm UP 
네트워크의 반응성을 높이기 위한 대책 
1. 대기 상태의 3G 모듈을 Active 상태로 두어 네트워크의 반응성을 높 
임 
2. 원리는 간단합니다. 
일어날때까지 때리기 
잘못 사용하면 
밧데리가 매우 빨리 소비됩니다 .
Merge API 
Round Trip 회수를 줄이기 위한 대책 
1. Round Trip Time 을 줄이는 것은 매우 힘들거나 불가능합니다. 
2. 그러나 요청 회수를 줄일 수는 있습니다. 
3. 몇 가지 관련 내용을 하나로 묶어서 Request하거나 
4. 전혀 별개의 API 라도 하나로 묶을 수 있는 Merge API 를 추가했습니 
다. 
Merge API 적용으로 최초 로그인 시 적용전보다 
3 배 정도 빠르게 로그인이 가능해졌습니다 .
Client Caching 
모든 데이터를 Client 에 저장하기 시작했습니다. 
1. 보안과 관계없는 유저 Profile, 친구리스트, 랭킹 리스트들과 
2. 서버 접속 수치 등 서버에서 받아와야 하나 재사용가능한 값들을 
모두 Client 에 저장하기 시작했습니다. 
3. 그 결과 첫로그인 이후에 로그인의 결과값은 실시간으로 받아지고 
로그인 결과값에 문제가 있는 경우에만 예외처리를 진행하게 됩니다 
First OK, Last Synchronization 
Client Caching 적용으로 최초 로그인 이후의 로그인은 
거의 실시간으로 결과를 받아올 수 있게 되었습니다 .
LINE Game Platform Phase3 
최종 목적지 
1. Front Proxy 
2. Cloud 
3. Client Network Library 
• Caching 
• Packet Analysis 
• Protocol Optimization 
1. User Pattern Analysis 
2. User Environment Analysis 
3. CDN Download File Packing System
LINE Global POP 
Frankfurt Beijing New York 
Seoul 
Tokyo 
HK 
Singapore 
POP 구성없는 게임 서비스는 태국이 한계 
Front Server 대응 후는 전세계가 목표
LINE Game Test Process 
• Low Spec Device Test 
• Low Speed Network Test 
• 각 오피스의 원격 테스트용 Android 
• Local Office Test (Taiwan, Thailand, Indonesia)
Additional… 
Communication Problem 
1. 글로벌의 가장 큰 문제는 사실 Communication이에요. 
2. 제가 일하는 사람의 국적은 
한국, 일본, 중국, 태국, 대만, 프랑스, 미국이에요. 
3. 다른 문화 다른 생각 , A 를 말하면 모두 다르게 생각해요 
A, a, Apple, Android, A학점… 
4. 요청과 원하는 결과의 형태를 정확한 기술용어를 사용하여 직관적으로 기술해야 
합니다. 
나에겐 당연한 영어 약어를 미국인이 모를수도있어요. 
5. “플레이해보고 결과 주세요”라는 요청에 답을 줄 수 있는 사람은 한국 사람 뿐 
이에요. 
한국인의 종특일지도 모릅니다. 
정확한 테스트 방법과 원하는 테스트 결과를 작성해서 줘야 합니다. 
6. 한국어를 하는 외국인은 한국 사람이 아니에요. 
그들은 직접 얘기하고 부연 설명하지 않으면 당신이 뭘 원하는지 모릅니다. 
7. 이렇게 얘기하면 이해하겠지라는 생각이 있으면, 상대방은 이해하지 못했어요. 
이해시키고 싶은 내용을 직접 설명해야해요.
KGC 2014 Hwang Seonpill Line Game Global

More Related Content

Viewers also liked

Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드cranbe95
 
조건상의 자기소개서
조건상의 자기소개서조건상의 자기소개서
조건상의 자기소개서건상 조
 
4.[d2 오픈세미나]LINE Rangers 게임 클라이언트/서버 아키텍쳐
4.[d2 오픈세미나]LINE Rangers 게임 클라이언트/서버 아키텍쳐4.[d2 오픈세미나]LINE Rangers 게임 클라이언트/서버 아키텍쳐
4.[d2 오픈세미나]LINE Rangers 게임 클라이언트/서버 아키텍쳐NAVER D2
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)Kay Kim
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다Jinho Jung
 
2016 3rd UX 트렌드 리포트_1부
2016 3rd UX 트렌드 리포트_1부2016 3rd UX 트렌드 리포트_1부
2016 3rd UX 트렌드 리포트_1부RightBrain inc.
 
Casual Game for Windows Mobile
Casual Game for Windows MobileCasual Game for Windows Mobile
Casual Game for Windows MobileSeo Jinho
 
GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom Brian Housand
 
Guided Reading: Making the Most of It
Guided Reading: Making the Most of ItGuided Reading: Making the Most of It
Guided Reading: Making the Most of ItJennifer Jones
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 

Viewers also liked (13)

Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
Ndc2011 성능 향상을_위한_데이터베이스_아키텍쳐_구축_및_개발_가이드
 
조건상의 자기소개서
조건상의 자기소개서조건상의 자기소개서
조건상의 자기소개서
 
Portfolio
PortfolioPortfolio
Portfolio
 
4.[d2 오픈세미나]LINE Rangers 게임 클라이언트/서버 아키텍쳐
4.[d2 오픈세미나]LINE Rangers 게임 클라이언트/서버 아키텍쳐4.[d2 오픈세미나]LINE Rangers 게임 클라이언트/서버 아키텍쳐
4.[d2 오픈세미나]LINE Rangers 게임 클라이언트/서버 아키텍쳐
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다
 
2016 3rd UX 트렌드 리포트_1부
2016 3rd UX 트렌드 리포트_1부2016 3rd UX 트렌드 리포트_1부
2016 3rd UX 트렌드 리포트_1부
 
Casual Game for Windows Mobile
Casual Game for Windows MobileCasual Game for Windows Mobile
Casual Game for Windows Mobile
 
GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom GAME ON! Integrating Games and Simulations in the Classroom
GAME ON! Integrating Games and Simulations in the Classroom
 
Guided Reading: Making the Most of It
Guided Reading: Making the Most of ItGuided Reading: Making the Most of It
Guided Reading: Making the Most of It
 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similar to KGC 2014 Hwang Seonpill Line Game Global

글로벌 서비스 개발하기 - 사례 중심 경험 공유
글로벌 서비스 개발하기 - 사례 중심 경험 공유글로벌 서비스 개발하기 - 사례 중심 경험 공유
글로벌 서비스 개발하기 - 사례 중심 경험 공유Myeongseok Ko
 
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhudMinGeun Park
 
Manual SHV-E330S (Samsung Galaxy S4 LTE-A)
Manual SHV-E330S (Samsung Galaxy S4 LTE-A)Manual SHV-E330S (Samsung Galaxy S4 LTE-A)
Manual SHV-E330S (Samsung Galaxy S4 LTE-A)Armando Orozco Perez
 
실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기IMQA
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법YoungSu Son
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Bansook Nam
 
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)Lab80
 
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트KIMHYUNWOO22
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1stPark Jonggun
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteSeok-yong Kim
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가NAVER D2
 
국내외모바일Os동향및플랫폼동향
국내외모바일Os동향및플랫폼동향국내외모바일Os동향및플랫폼동향
국내외모바일Os동향및플랫폼동향Jong Jin Hong
 
이승재, 마비노기 듀얼: 라이브 서비스 사건사고기록, NDC2016
이승재, 마비노기 듀얼: 라이브 서비스 사건사고기록, NDC2016이승재, 마비노기 듀얼: 라이브 서비스 사건사고기록, NDC2016
이승재, 마비노기 듀얼: 라이브 서비스 사건사고기록, NDC2016devCAT Studio, NEXON
 
Galaxy tab gb_upgrade_manual
Galaxy tab gb_upgrade_manualGalaxy tab gb_upgrade_manual
Galaxy tab gb_upgrade_manualmark_r_hickman
 
Wiz manual(kor)
Wiz manual(kor)Wiz manual(kor)
Wiz manual(kor)jumiss
 
2015 Android Game Revenue Saver
2015 Android Game Revenue Saver2015 Android Game Revenue Saver
2015 Android Game Revenue SaverJay Li
 
안드로이드 오픈마켓_보안이슈
안드로이드 오픈마켓_보안이슈안드로이드 오픈마켓_보안이슈
안드로이드 오픈마켓_보안이슈Lee Ji Eun
 
구글I/O 2016 review
구글I/O 2016 review구글I/O 2016 review
구글I/O 2016 review남억 김
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 YoungSu Son
 

Similar to KGC 2014 Hwang Seonpill Line Game Global (20)

글로벌 서비스 개발하기 - 사례 중심 경험 공유
글로벌 서비스 개발하기 - 사례 중심 경험 공유글로벌 서비스 개발하기 - 사례 중심 경험 공유
글로벌 서비스 개발하기 - 사례 중심 경험 공유
 
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud[박민근] 3 d렌더링 옵티마이징_nv_perfhud
[박민근] 3 d렌더링 옵티마이징_nv_perfhud
 
Manual SHV-E330S (Samsung Galaxy S4 LTE-A)
Manual SHV-E330S (Samsung Galaxy S4 LTE-A)Manual SHV-E330S (Samsung Galaxy S4 LTE-A)
Manual SHV-E330S (Samsung Galaxy S4 LTE-A)
 
실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기실 사례로 보는 고객 디지털 경험 지키기
실 사례로 보는 고객 디지털 경험 지키기
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지Android와 Flutter 앱 개발의 큰 차이점 5가지
Android와 Flutter 앱 개발의 큰 차이점 5가지
 
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
 
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
제 1회 미래 모빌리티 디자인 경진대회 사용설명서_오토이펙트
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st
 
GDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's NoteGDG DevFest Busan 16" Android Nougat Developer's Note
GDG DevFest Busan 16" Android Nougat Developer's Note
 
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
[2A1]Line은 어떻게 글로벌 메신저 플랫폼이 되었는가
 
국내외모바일Os동향및플랫폼동향
국내외모바일Os동향및플랫폼동향국내외모바일Os동향및플랫폼동향
국내외모바일Os동향및플랫폼동향
 
이승재, 마비노기 듀얼: 라이브 서비스 사건사고기록, NDC2016
이승재, 마비노기 듀얼: 라이브 서비스 사건사고기록, NDC2016이승재, 마비노기 듀얼: 라이브 서비스 사건사고기록, NDC2016
이승재, 마비노기 듀얼: 라이브 서비스 사건사고기록, NDC2016
 
Galaxy tab gb_upgrade_manual
Galaxy tab gb_upgrade_manualGalaxy tab gb_upgrade_manual
Galaxy tab gb_upgrade_manual
 
Wiz manual(kor)
Wiz manual(kor)Wiz manual(kor)
Wiz manual(kor)
 
2015 Android Game Revenue Saver
2015 Android Game Revenue Saver2015 Android Game Revenue Saver
2015 Android Game Revenue Saver
 
안드로이드 오픈마켓_보안이슈
안드로이드 오픈마켓_보안이슈안드로이드 오픈마켓_보안이슈
안드로이드 오픈마켓_보안이슈
 
구글I/O 2016 review
구글I/O 2016 review구글I/O 2016 review
구글I/O 2016 review
 
Android Applications on Galaxy S (장기성)
Android Applications on Galaxy S (장기성)Android Applications on Galaxy S (장기성)
Android Applications on Galaxy S (장기성)
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
 

KGC 2014 Hwang Seonpill Line Game Global

  • 1. LINE Game Global 도전기 Hwang Seonpill LINE Corp.
  • 3. 글로벌 업무를 진행하면서 가장 많이 받는 질문 1. 어떤 디바이스를 대응하면 되나요? 2. 그 디바이스는 점유율이 얼마에요? 묻고 싶습니다. 몇% 까지 알아보셨어요 ? 1. 저도 잘 모르고, 2. 태국사람도 몰라요. 3. Carrier 도 잘 모를꺼고, 4. 용산에서 파는 분도 모릅니다
  • 4. 거꾸로 생각해보면 저런 류의 질문이 많다는 사실은 1. 글로벌 대응이 특정 디바이스를 대응하는 것이다? 2. S 사의 G 가 인기가 많다던데 여기서만 잘 돌아가면 되는걸까? 3. 정말 S 사의 G 가 인기가 많은건 맞는 걸까? 10 명 중에 9 명은 이렇게 시작하는 글로벌 그럼 글로벌 서비스를 위해서는 도대체 무엇을 준비해야 하는 걸 까요 ?
  • 5. 라인의 글로벌 라인이 1. 글로벌의 정답은 아닙니다. 2. 글로벌하게 잘 하고 있는 것도 아니고 3. 글로벌 문제를 잘 해결한 것은 더더욱 아닙니다. 라인도 1. 문제 생기면 우왕 좌왕합니다. 2. 큰 조직에서 발생한 과도한 정보로 더욱 혼란스러운 상황이 발생하곤 했습니다. 3. 큰 그림을 보지 못했고 작은 이슈들의 임기 응변의 연속이었습니다.
  • 6. 이 강연은 라인이 겪었던 시행착오를 비롯한 글로벌의 경험 공유를 목표로 합니다 . 대부분의 문제는 현재 진행중이고, 해결을 위해 노력 중입니다. 라인도 아직 대부분 해결 못했어요 .
  • 8. Device Fragmentation 그럼 정말 몇 % 까지 알아 보셨어요 ? Indonesia Rank Brand Name USD 2013 3 13 Percentage 1 SAMSUNG E 1205 18 144,586 5.08 2 BLACKBERRY CURVE 9220 181 133,548 4.69 3 SAMSUNG GALAXY Y S 5360 99 108,644 3.82 4 BLACKBERRY CURVE 9320 235 97,420 3.42 5 SAMSUNG E 1195 29 96,959 3.41 6 NOKIA 103 21 92,852 3.26 7 NOKIA 100 26 68,127 2.39 8 SAMSUNG C 3322 52 57,678 2.03 9 NOKIA ASHA 305 85 54,769 1.92 10 NOKIA 101 32 54,495 1.91 11 SAMSUNG GALAXY CHAT B 5330 129 53,471 1.88
  • 9. Device Fragmentation 그래도 S 사가 최고였어요 . 점유율 1.88% 밖에 안되고 점유율 3.82% 밖에 안되도 내가 제일 잘 나가
  • 10. Device Fragmentation 잠깐만요 이게 점유율이라구요? 그럼 어디까지 대응해야해요 ? 1. 1 등 디바이스가 4~5% 에 불과합니다. 2. 상위 20 위까지 디바이스의 점유율 합이 50% 미만이지요. 3. 그럼 글로벌 디바이스를 대응하기 위해서 국가별로 디바이스 20 대를 사서 테스트해야 하나요? 4. 이런 방법은 현실적이지 않습니다. 하지만 라인도 이런 비현실적인 방법을 쓰기도 했습니다 .
  • 11. Device Fragmentation 이런 스마트폰도 있습니다. Galaxy Y Dimensions 104 x 58 x 11.5 mm Internal Storage 180MB Weight 97.5 g RAM 290MB Android 2.3.5 CPU 830MHz ARMv6 LINE Game 은 공식적으로 ARMv6 CPU를 지원하지 않았지만… 지원해야하는 이슈가 발생합니다 . 참고 iPhone 3 : 2008 년 armv6 iPhone 3GS : 2009 년 armv7
  • 12. Device Fragmentation • 한국의 파편화는 글로벌 시장에 비해 매우 양호합니다. • 디바이스 파편화를 특정 디바이스를 테스트해서 해결하기는 쉽지 않습니다. • 클라이언트의 덤프 수집 , 통계 시스템을 구축하여 문제를 빨리 발견 하는 것이 효율적일 수 있습니다.
  • 13. Low Spec Devices 왜죠? 왜 하필 대표님 스마트폰인가요? 언제나 게임을 오픈하면 1. 대표님, 이사님 스마트폰만 문제가 생깁니다. 2. 저장 용량이 거의 남아있지 않은 iPhone4 를 쓰고 계신 대표님. 용량 부족으로 OS 업그레이드도 잘 안됩니다. 대표님 돈도 많이 버시는데 6+ 로 하나 사시면 안되겠습니까? 3. 개발자들의 진정한 복지는 대표님의 iPhone 6+으로부터 실장님 대표님 댁에 iPhone 6+ 놔드려야 겠어요 . 그런데 바꿔드리고 그 스마트폰 버리시면 안됩니다 . 그렇게 문제가 잘 발생하는 테스트폰도 구하기 힘듭니다 .
  • 14. Low Spec Devices 다시 등장한 S 사의 Y디바이스 점유율 3.82% 밖에 안되도 Armv6 CPU라도 동남아 서비스를 위해서 Galaxy Y 가 꼭 지원되 동남아 서비스를 위해서 Galaxy Y 가 꼭 지원되 야 합니다. 야 합니다. LINE Plus 이모씨
  • 15. Armv6는 Low Spec Devices 1. 2008년 iPhone 3의 CPU가 Armv6 호환 CPU였습니다. 2. 2009년 iPhone 3Gs의 CPU는 Armv7호환 CPU였습니다. 3. 2013년 동남아 저가 디바이스 시장의 주역이었습니다. HDD는 2TB, 그래픽 카드는 온보드인 조립 PC를 아시나 요 ? 1. 저가 시장에는 이런 형태의 디바이스가 꽤 있습니다. 2. 싼 부품의 스펙을 높이고 고가 부품의 성능을 낮춘 형태입니다. 3. 전체가 스펙이 낮은 경우보다 문제를 해결하기 더 힘든 경우가 있습니다. 아니 최신형 4.5 인치 스마트폰을 샀는데 왜 이 게임은 안되는겁니까 ? Memory 100MB, CPU ARMV6니까요.
  • 16. Low Spec Devices • Armv6 는 제작툴에서 지원하지 않는 경우가 있습니다 . • 게임의 CPU, Memory, Storage 제한은 확인해봅시다 . • 저 사양 Devices 는 설치 단계에서 많이 실패합니다 . • 저 사양 디바이스의 대응은 시간이 매우 많이 걸립니다. • 대응 디바이스의 사양을 제한할 필요도 있습니다. • 하지만 대응 사양은 명확해야 합니다.
  • 17. Low Quality Network 예 비행기안인데 안되신다구요? 1. 김과장 비행기에서 안된데 2. 이대리 여기 사우나인데 안되는데? 3. 박차장 후지산 정상인데 안테나는 잡히는데 왜 안되? 4. 사장님들 출장 많이 다니시니 게임이 안되는 경험도 많습니다. 출장도 안가시는게 개발자 복지에 좋을것 같습니다 . But, 진짜 생각하지 못한 장소에도 유저들이 있습니다 .
  • 18. Low Quality Network Network Available 인데 1. GPRS, Edge, 3G, 3G+, 4G, LTE and Airplane WiFi 등 우리 생각보다 훨씬 다양한 네트워크 환경이 존재합니다. 2. 이런 다양한 네트워크 환경사이에 잦은 handover 로 인해 예상치 못한 문제가 발생하고, 3. 언제 올지 모르는 Response 를 기다리거나, 너무 빨리 Connection Timeout 해버리는 문제가 발생합니다. 4. 현실적으로 이런 모든 상황을 대응하기는 어렵습니다. 가장 해결하기 어려운 문제 : 안테나는 떠 있는데 안돼 .
  • 19. Low Quality Network 전 세계에 안테나를 꽂는게 빠를겁니다. 1. 농담으로 던진 이 한마디가 2. 태국에서는 현실이 되었습니다. 3. 3G 와 Edge 가 기본이던 네트워크 환경이 4. 1년만에 3G 와 4G 환경으로 변했습니다. But, 그 외의 국가라면 1. SPDY 등의 Protocol 로 변경을 고려해보거나, 2. More Light More Efficiency Protocol 을 목표로 전체 Request, Response 를 재설계하거나, 3. Round Trip 자체를 줄이는 등의 노력이 필요합니다. RTT 가 느리다는 것을 고려하지 않고 설계된 Request, Response는 문제가 생깁니다 .
  • 20. Low Quality Network Decreasing Round Trip 1. 저품질 네트워크의 가장 큰 문제는 긴 Round Trip Time입니다. 2. Round Trip Time 을 줄이는 것은 불가능합니다. 3. 하지만 Round Trip 의 회수를 줄일 수는 있습니다. 4. 필요없는 Request 가 있는지 게임의 Flow 를 점검해야 합니다. 5. 한번에 보낼 수 있는 Request 는 하나로 합칩니다. (Merging)
  • 21. Low Quality Network Network Link Conditioner 1. Uplink, Downlink 의 Network Delay, Bandwidth 를 강제로 고정시켜서 Low Quality Network 환경을 만들어 줍니다. 2. Delay 의 경우 정확도가 떨어지므로, Ping 등을 이용하여 오차를 수정한 후 사용해야 합니다. 3. LINE 내부에서는 Delay 설정의 정확도 문제로 별도 툴을 자체 개발해서 사용합니다. 하지만 매우 좋은 툴입니다 !!
  • 22. Low Quality Network • “No Network” is better than “Available but Low Quality Network” • “Available but Low Quality Network” is more than “No Network” • Connection Timeout, Read Timeout • Decreasing Round Trip Time • Apple 에서 제공하는 Network Link Conditioner 는 Low Quality Network 테스트에 큰 도움이 됩니다 .
  • 23. Data Synchronization Smartphone Game의 Data 처리는 1. Online PC Game보다 2. Console Game 의 저장 방식과 비슷합니다. Online PC Game : 다른 유저와의 상호작용 중요 , 즉시 데이터 갱신 필요 Smart Phone, Console : 다른 유저와의 상호작용이 실시간으로 필요하지 않음. 나의 랭킹 데이터는 30 초 후 쯤에 랭킹 리스트에 갱신되도 OK
  • 24. Data Synchronization 대부분의 경우 실시간으로 서버와 동기화를 할 필요는 없습니다. 데이터 연동은 게임 시작 시 데이터는 클라이언트에 가지고 있는 데이터로 시작해도 됩니다. 게임 종료, 기록은 나중에 보고해도 됩니다. 데이터의 흐름에 맞춘 게임보다 , 유저 편의에 맞춘 데이터 흐름 하지만 한국산 게임은 온라인 게임의 데이터 흐름 그대로인 경우가 많습니다 .
  • 25. Data Synchronization First OK 1. 데이터 갱신이 필요한 경우 2. 클라이언트에 저장하고 그냥 게임 진행하자. 3. 10~20 초 후 랭킹이 갱신된다고 내가 게임을 못하지 않는다. Last Synchronization 1. Background 에서 갱신을 하거나 2. Data 를 모아서 한번에 갱신을 하거나 3. Binary File 형태로 업로드 하거나 중요하지 않은 데이터를 처리하기 위해 유저의 동작을 Block 하지 맙시다 !!!!
  • 26. Data Synchronization Client Security and Business Model 1. Client 에 저장된 Data 는 언젠가는 공격자에게 뚫립니다. 2. Client 에 Play log 도 같이 저장해서 서버에서 Play log 를 재검증 하거 나 3. Business Model 자체를 클라이언트의 보안과 관련없게 만들거나 4. Offline 모드를 별도로 제공하는 방법도 있습니다. Nintendo 도 당하고 Elf 도 당하고
  • 27. Data Synchronization • Smart phone Game 의 Data Sync 는 Console 과 닮았다 . • First OK, Last Synchronization • Client Security 처리가 중요하다 . • 하지만 Client는 무력화 된다는 것을 전제로 Business Model 을 만들자 .
  • 28. CDN Download Big size image from CDN 1. 대한민국의 인터넷 환경, 특히 스마트폰 네트워크 환경은 전세계 최고 2. 대한민국의 스마트폰 개발자 분중에 “일부”는 파일 사이즈에 너무 관대합니다. Name Download Speed Download Speed 2.5Mbyte files download GPRS 80Kbit/s 10Kbyte/s 250sec EDGE 200Kbit/s 25Kbyte/s 100sec 3G CDMA2000 2Mbit/s 250Kbyte/s 10sec HAPS+ 20Mbit/s 2500Kbyte/s 1sec LTE 100Mbit/s 12500Kbyte/s 0.2sec 스펙상의 수치입니다 . 실제 환경은 더욱 열악합니다 .
  • 29. CDN Download Delete Redundant Files 1. 중복 파일을 관리해야해요. 2. 중복되는 파일이 없도록 파일단위로 관리하고, 같은 숫자면 하나의 파일로 압축 후 전송합시다. 압축명 파일명 FILE1.zip Abcde.jpg -> 이전 파일에서 삭제할 수 있도록 파일 단위 관리 방법을 고민합시다 . FILE1.zip 12345.jpg FILE1.zip Qwert.jpg FILE2.zip Abcde_edited.jpg FILE2.zip 67890.jpg FILE2.zip Zxcvb.jpg
  • 30. CDN Download CDN Request 는 최대한 적게 1. Round Trip Time 은 CDN Download 에서도 큰 장애가 됩니다. 2. Keep Alive 나 다른 해결 방식도 존재하지만, 가장 기본적인 해결 방식은 파일 숫자를 줄이는 것입니다. 파일명 파일 사이즈 Download 시간 (A) RTT (B) A+B File1.jpg 1Kbyte 100ms 200ms 300ms File2.jpg 1Kbyte 100ms 200ms 300ms File3.jpg 1Kbyte 100ms 200ms 300ms File4.jpg 1Kbyte 100ms 200ms 300ms File5.jpg 1Kbyte 100ms 200ms 300ms File1_5.zip 5Kbyte 500ms 200ms 700ms
  • 31. CDN Download Low Resolution Image File 을 준비합시다 . 1. Device 의 종류에 따라서 2~3 가지 Resolution 의 Image 파일을 준비 합시다. 2. 최대 사이즈의 Image 를 일정 배율로 사이즈를 줄여서 준비하면, 작업의 시간을 줄일 수 있을지도 모릅니다. 3. 당연히 Location문제나, 디자인 퀄리티 등이 문제 될수 있습니다. 하지만 게임이 안되는 것보다는 나아요 . 다시 등장한 점유율 3.82% 나는 1280x1024 의 이미지를 설치할 메모리가 없어요.
  • 32. CDN Download • 파일 갯수를 줄이고 • 파일 사이즈를 줄이고 • 중복 파일은 꼭 골라냅시다.
  • 33. SIM Card 한국과 일본의 SIM Card는 1. 개인정보가 담긴 소중한 것 것입니다. 2. 2 년에 한번 또는 더 오랜 기간 사용 후 가끔 교체합니다. 3. 그래서 SIM Card 에서 예외 사항이 발생하는 경우는 매우 드물어요. 한국과 일본의 SIM Card 의 정보는 유저별로 Unique 한 구분자가 될 수 있습니다.
  • 34. SIM Card 하지만 그렇지 않은 나라가 대부분입니다. 1. SIM Card 는 언제나 바꿀 수 있는 것이고, 2. 프로모션에 따라 바로 바로 바꿔 쓰기도 하고 3. Data 용 SIM 과 통화용 SIM 을 동시에 사용하기도 합니다. (Dual SIM Slot) Dual SIM Slot 1. SIM Card 정보로 이벤트, 지표 등을 생성할 때는 꼭 Dual SIM Card 에 대한 대책이 필요합니다. 2. 하지만, Google 의 공식 API 는 존재하지 않습니다. 3. 각 Device 제조사로부터의 API 만 존재합니다. 현재까지 공식적으로 Dual SIM Card Slot 의 정보를 효율적으로 취득할 수 있는 방법은 없어 보입니다 .
  • 35. SIM Card MCCMNC 1. 유저의 국가를 구분할 때는 MCCMNC 를 사용하세요. Mobile Country Code / Mobile Network Code 2. ISO 3166 로 추출하는 코드보다 효율적으로 국가와 캐리어를 구분할 수 있습니다. 3. 특히 Carrier 정보는 MNC 를 사용해야 정확히 추출 가능합니다. EX) LG vs LGT vs LG Telecom MCC MNC Operators Bands 450 05 SK CDMA2000 800 / UMTS 2100 / LTE 850 / LTE 1800 450 06 LG CDMA2000 1700 / LTE 850 2100 2600 450 08 KT UMTS 2100 / LTE 900 / LTE 1800 450 11 Korea Cable Telecom(t-plus), Eco-mobile UMTS 2100
  • 36. SIM Card 태국인의 30% 가 미국인 1. 일본 서비스에서는 전혀 문제가 없었는데, 2. 태국 서비스 오픈 이후 태국 매출의 30% 가 미국인에 의해서 발생하고 있습니다. Dual SIM, Device 설정 1. LINE 게임의 국가 결정 순위는 SIM Card 의 국가 설정(ISO) 이 1순위 입니다. 2. SIM Card 에서 취득이 실패하면 디바이스의 Location 이 2 순위 입니다 . 3. 동남아에서는 디바이스의 언어 설정을 영어로 해두는 경우가 상당히 많습니다. 그래서 LINE 게임 유저는 SIM Card 의 국가 정보 취득이 실패하면 국가 정보가 미국으로 보고되는 경우가 많습니다 .
  • 37. Dual SIM Device • SIM Card 의 정보 이용은 신중해야 합니다 . • Dual SIM Card 의 정보를 효율적으로 컨트롤할 수 있는 Google 의 API 는 존재하지 않습니다 . • 국가 코드 취득 기준은 MCCMNC가 관리하기 편합니다.
  • 38. Abusing Global Platform은 1. Global Economic System 이라고 정의하신 분이 있습니다. 2. 클라이언트에서는 저장되어있는 값을 찾아서 하나씩 수정해나가거나 Client memory modify 3. 공격자 마음대로 하도록 아에 클라이언트를 새로 만들고 Client reverse engineering and resigning 4. 패킷을 분석하고, 재사용하고, 변조하는 등 Packet analysis, reuse, modify 5. 우리가 알고 있는 모든 어뷰징 방식이 총 동원됩니다. Global Economic System Global Economic System
  • 39. Abusing • 알려진 모든 형태의 Abusing 에 대한 기본적인 대응이 필요합니다. • 하지만 모든 Abusing 을 피할 수 없습니다. • 상세한 유저 패턴의 저장 , 분석, CS 대응이 필요합니다 .
  • 40. User Pattern Analysis 새로운 앱 릴리즈 후 발생하는 문제는 1. Key Word 만 알아도 문제 해결에 많은 도움이 됩니다. 2. 하지만 수많은 Comment 를 모두 분석해서 해결하는 것은 생각보다 시간이 걸리는 작업이에요. 3. Key Word 분석 만으로도 Abusing, Crash, Bug 등 다양한 분야를 대응하는데 유용합니다. 4. 일부 서비스에 적용되어 있으며 라인 게임은 준비 중에 있습니다.
  • 41. Length of Currency 환율이 너무해 1. 모 게임에서 인도네시아에서 결제가 안된다는 문의가 들어왔습니다. 2. 개발자들과 조사를 해봤지만, 인도네시아에서만 안될 이유는 없었습니 다. 3. 현지의 비전문가 인력에게 클라이언트 전달 후 로그 추출을 반복하다보 니 원인 확인에도 많은 시간이 걸렸습니다. 4. 문제는 99.99$=1,205,196IDR 5. 베트남에서도 같은 문제가 발생했을 겁니다. 너무 바보같은 실수 아니냐고요 ? 한국에서온 2 개의 게임에서 발생했고 , 둘다 Major 개발사 였습니다 .
  • 42. Carrier 불변의 진리 Carrier사 1. KT 는 진리, SKT 는 진리, 불변의 법칙 그 이름은 한국 Carrier입니다 . 2. 그리고, 3G, 4G 의 셀룰러 망은 믿을만한 네트워크라고 생각했습니다. 하지만, 아니었습니다. 1. 임의로 헤더 고쳐쓰고, 데이터 변경하고 (Softbank) 2. 버그로 패킷 잘리고 (Starhub) 대체로 1. Carrier 의 문제를 직접해결할 수는 없는 경우가 많지만 2. 도저히 해결의 실마리가 안잡히는 네트워크 관련 문제는 Carrier 가 문제일 가능성에 대해서도 테스트해볼 필요가 있습니다.
  • 43. 그러나 이런 문제들 • 다 라인 때문이다. • 모두 라인탓이고, 해결해야죠. • 해결하려고 시작했습니다.
  • 45. LINE Game Platform HSP LINE Game 의 시작은 1. 한게임 스마트폰 플랫폼이었습니다. 2. Pokopang 을 비롯해서 훌륭한 게임들의 동시접속자가 100 만이 넘게 서비스 할 수 있는 훌륭한 플랫폼입니다. 3. 하지만, 당시에는 국내용이었습니다. (과거형입니다. 화내지마세요 ^^;) 4. 한게임, 라인 모두 글로벌 대응이 필요한 상황이었습니다. 5. 그리고 TOAST 와 LINE GAME Platform 으로 각각 글로벌 대응을 진행했습니다.
  • 46. LINE Game Platform Phase1 글로벌 대응을 위한 첫번째 작업 1. RTT 를 최소화해서 로그인등의 속도를 높이고, 2. 기본적으로 최소한의 필요한 기능만을 새로 만들었습니다. 그러다보니, API 의 간소화라고는 했는데 1. 아무것도 없었습니다. 2. 정말 아무것도없었어요. 3. API 몇개 주고 개발사가 모두 만들어야 하는 정도였습니다. 4. 그래서 사용한 개발사가 하나뿐…
  • 47. LINE Game Platform Phase2 글로벌 테스트 결과가 적용되기 시작한 Phase2에서는 1. 네트워크 반응성을 높이기 위한 3G Warm Up 을 적용하거나, 2. Round Trip 회수를 줄이기 위한 Merge API 를 적용하거나 3. 데이터를 클라이언트에 캐싱해서 저사양 네트워크를 대응하였습니다. 또한 API 의 사용성을 높히기 위해서 1. API 의 소스를 정리하고 2. 로그인의 API 를 간소화하고 3. 기타 라인 채널의 API 들에 캐싱이 추가되었습니다.
  • 48. 3G Warm UP 네트워크의 반응성을 높이기 위한 대책 1. 대기 상태의 3G 모듈을 Active 상태로 두어 네트워크의 반응성을 높 임 2. 원리는 간단합니다. 일어날때까지 때리기 잘못 사용하면 밧데리가 매우 빨리 소비됩니다 .
  • 49. Merge API Round Trip 회수를 줄이기 위한 대책 1. Round Trip Time 을 줄이는 것은 매우 힘들거나 불가능합니다. 2. 그러나 요청 회수를 줄일 수는 있습니다. 3. 몇 가지 관련 내용을 하나로 묶어서 Request하거나 4. 전혀 별개의 API 라도 하나로 묶을 수 있는 Merge API 를 추가했습니 다. Merge API 적용으로 최초 로그인 시 적용전보다 3 배 정도 빠르게 로그인이 가능해졌습니다 .
  • 50. Client Caching 모든 데이터를 Client 에 저장하기 시작했습니다. 1. 보안과 관계없는 유저 Profile, 친구리스트, 랭킹 리스트들과 2. 서버 접속 수치 등 서버에서 받아와야 하나 재사용가능한 값들을 모두 Client 에 저장하기 시작했습니다. 3. 그 결과 첫로그인 이후에 로그인의 결과값은 실시간으로 받아지고 로그인 결과값에 문제가 있는 경우에만 예외처리를 진행하게 됩니다 First OK, Last Synchronization Client Caching 적용으로 최초 로그인 이후의 로그인은 거의 실시간으로 결과를 받아올 수 있게 되었습니다 .
  • 51. LINE Game Platform Phase3 최종 목적지 1. Front Proxy 2. Cloud 3. Client Network Library • Caching • Packet Analysis • Protocol Optimization 1. User Pattern Analysis 2. User Environment Analysis 3. CDN Download File Packing System
  • 52. LINE Global POP Frankfurt Beijing New York Seoul Tokyo HK Singapore POP 구성없는 게임 서비스는 태국이 한계 Front Server 대응 후는 전세계가 목표
  • 53. LINE Game Test Process • Low Spec Device Test • Low Speed Network Test • 각 오피스의 원격 테스트용 Android • Local Office Test (Taiwan, Thailand, Indonesia)
  • 54. Additional… Communication Problem 1. 글로벌의 가장 큰 문제는 사실 Communication이에요. 2. 제가 일하는 사람의 국적은 한국, 일본, 중국, 태국, 대만, 프랑스, 미국이에요. 3. 다른 문화 다른 생각 , A 를 말하면 모두 다르게 생각해요 A, a, Apple, Android, A학점… 4. 요청과 원하는 결과의 형태를 정확한 기술용어를 사용하여 직관적으로 기술해야 합니다. 나에겐 당연한 영어 약어를 미국인이 모를수도있어요. 5. “플레이해보고 결과 주세요”라는 요청에 답을 줄 수 있는 사람은 한국 사람 뿐 이에요. 한국인의 종특일지도 모릅니다. 정확한 테스트 방법과 원하는 테스트 결과를 작성해서 줘야 합니다. 6. 한국어를 하는 외국인은 한국 사람이 아니에요. 그들은 직접 얘기하고 부연 설명하지 않으면 당신이 뭘 원하는지 모릅니다. 7. 이렇게 얘기하면 이해하겠지라는 생각이 있으면, 상대방은 이해하지 못했어요. 이해시키고 싶은 내용을 직접 설명해야해요.