Pokémon GO




뭐 이젠 너무 유명한 게임입니다. Pokemon Go.


스마트폰을 쓰면서 밖으로 나가 게임을 하라는 바로 그 게임입니다.

누군가의 제보가 들리면 우르르 달려가 스마트폰을 붙잡고 덜덜 떨리는 손으로 화면을 지켜볼 때의 그 짜릿함. 이게 바로 이 게임의 재미의 일부입니다.


사실 저는 약간의 역마살? 비슷한 기질이 있어서 이 게임에 최적화된 인간(?)이라고 할 수 있는데요. 가까운 거리도 택시를 타는 일부 귀차니스트에게는 그냥 힘든 게임이라는 소리를 많이 들었습니다.


하지만 이 게임... 큰 문제가 생겼습니다. 바로 움직이지 않고도 게임을 한다는 지극히 귀차니즘스러운 문제 때문이었습니다.




GPS조작?


GPS조작이라는 것은 사실 이전에도 많이 연구 되어 왔습니다. 실제로 군사적인 목적이 강했습니다. GPS가 본래 군사용이었다는 것을 아는 사람이라면 그것을 방어하기위해 그러한 연구가 있었다는 것은 잘 알 수 있습니다.

다만 일반인들에게는 그것이 별로 와 닿지는 않았을 겁니다. 아니 알려고도 안 했을 겁니다. 하지만 GPS가 일반에 공개되고 그걸 활용하는 기기가 많아 지면서 이제는 현대사회의 필수품이 되었습니다. 이는 인터넷하고도 비슷하지요. (인터넷도 처음에는 군사용 네트워크인 AlphaNet이 원조입니다. 이후 CERN에 의해 WWW가 나오면서 전세계에서 사용하는 것이 되었습니다.)


무엇보다 군사적인 조작이라면...대규모 GPS교란이 있겠습니다. 만약 어떤 적성 국가가 특정 국가에 GPS교란이 일으키는 전파를 쐈다고 합시다. 그러면 그 나라의 GPS들은??? 일단 현재 내 위치와 네비게이션의 위치가 달라 엉뚱한 길을 안내할 것입니다. 그리고 스마트폰들은 위치기반 서비스들이 바보가 될 것이고 군사적으로는 정밀 유도 미사일이 이상한 방향으로 날아갈 겁니다.


Pokemon GO의 GPS조작은 이런 군사적 조작과는 거리가 멉니다. 단순히 수신된 GPS좌표를 임의의 좌표로 바꿔주는 지극히 기초적인 것이니까요. 안드로이드에서는 이를 개발자용 기능으로 임의 좌표로 넣을 수 있었기에 해킹 수준도 아닙니다. 사실 개발 중 테스트를 위해 만든 기능을 악용한 셈입니다. 


이런 것을 보다보면 답답해서 먼저 돌아가실 것 같다.



이런걸 왜 만들었냐부터해서 신고한다까지 참 말도 안 되는 헛소리하는 놈들이 있는데 이게 없으면 위치 기반 개발을 어떻게 하라고요. 직접 개발자가 차비들여서 가야합니까? 원래 플레이스토어 리뷰는 보는게 아니라고는 하지만 공부가 필요한 사람들이 너무 많습니다. 이런걸 해킹툴이라고 생각하는 사람은 대체 뭡니까?


뭐 요즘은 공대생도 헛소리를 하는 시대가 되어버려서 답답한 노릇이기는 하지만 일단 해킹의 영역까지는 되지 않습니다. 따라서 법적으로는 문제가 되지 않습니다. 다만 나이앤틱과의 약관 위반일 뿐이지요.


그런데 약관 위반도 계약 위반이니 잘못된 것은 잘못된 것입니다. 하지만 FlyGPS등의 앱들을 통해 위치를 조작하는 것이 잘 걸리지 않는 이유는 뭘까요? 일단 기술적인 이유가 있습니다. 사실 여러분들이 스마트폰을 통해 사용하는 GPS기능은 완전한 GPS가 아닙니다. 진짜 GPS는 지금 지구상에 떠있는 수많은 위성의 위치와 이를 기반으로 한 삼각함수를 통해 계산을 합니다. 위치추적을 위한 위성의 수는 어마어마해서 이들의 위치와 전파가 돌아오는 속도를 통해서 계산을 하면 꽤 정확한 위치가 나온다고 합니다. 그런데 이렇게 모든 위성을 이용했다가는 계산 속도 문제로 실시간 위치 파악이 불가능합니다.

지금 떠있는 GPS용 위성 갯수가 30개라면




즉, 경도와 위도라는 두 개의 출력이 나오는 함수에 입력 변수가 자그마치 60개인 미친 삼각함수를 풀어야 하는 겁니다. 그런데 이것이 고정된 것이면 문제가 안 될텐데 실시간으로 변한다는 것이 더 큰 문제입니다. 현재 스마트폰 기준으로 이런 식으로 계산하면 10분 정도 걸린다고 합니다. 이러면 실시간 서비스 자체가 불가능하겠지요. (말이 좋아 삼각함수지 지구는 둥글기 때문에 더 복잡합니다.)


그래서 현재 사용하는 위치서비스는 A-GPS(Assistanced GPS)라 해서 통신망기반 GPS서비스입니다. 피쳐폰 시절의 위치 추적을 기억하시나요? 경찰에서 주로 사용했는데 정확한 위치는 알 수 없지만 적당한 위치는 알 수 있는 수준이었습니다. 여기의 정확도를 위해 진짜 GPS를 동원하는 건데 모든 위성을 쓰는 것이 아닌 통신망을 통해 특정 위치를 찾고 여기에 제일 가까운 몇몇 위성의 정보 만을 사용해서 위치 추적 속도를 개선한 것이 A-GPS입니다.


즉, 스마트폰의 GPS정보란 정확한 것이 아닙니다. 실제로 Pokemon GO를 켜놓고 가만히 냅두더라도 혼자서 이리저리 왔다 갔다 하는 모습을 볼 수 있는데 사용되는 위성이 바뀌고 이에 따른 오차가 생기기 때문에 실제로는 움직이지 않았음에도 스마트폰의 좌표가 계속 변하는 거지요. 게다가 통신망이 불안정할 경우 기준이 되는 위치마저 변해버립니다. 그러니 몇 100M에서 심한 경우 몇 KM의 오차가 생기기도 하는데요. 그 상태에서 지하라도 내려가게 되면? 혼자서 발광하는 제 캐릭터의 모습을 볼 수 있을 겁니다.


사실 나이앤틱에서 대량으로 밴을 먹였을 때 사용한 것 중 하나가 전세계를 순간이동하거나 절대로 불가능한 위치 변화를 보인 사람을 통계적으로 확인해서 밴을 먹인 겁니다. 그런데 정상적인 플레이어도 몇 100M오차는 흔히 일어나고 저는 수원에서 평택으로 위치가 잡히는 오류도 겪은 적이 있습니다. 그런데 이런 사람들도 밴을 먹였다가는 선의의 피해자가 발생하고 말 겁니다.


아직은 GPS서비스란 녀석이 불안정한 탓에 네트워크 위치(통신망 위치)와 최종 GPS위치가 크게 차이가 나지 않으면 이게 Fake인지 True인지 알 수가 없는 것입니다. 물론 순간 이동을 숨쉬듯이 하면 이건 100% Fake라 걸고 넘어 갈 수 있지만 살짝 살짝 원래 위치에서 조정하는 수준이면 점점 더 알아낼 길이 없습니다.


실제로 이런 사람이 있다면 밴을 먹이는 것은 거의 불가능에 가까울 것이다.



Bot문제


GPS조작은 그렇다 치는데 이젠 더 큰 문제가 생겨버렸습니다. 그냥 켜놓고 자면 알아서 포켓몬을 잡고 알아서 체육관을 깨는 Bot들이 활개를 치기 시작했습니다. 사실 Bot문제는 Pokemon GO의 문제만은 아닙니다. 사실 대다수 MMORPG게임이라면 다들 한 번씩은 보셨을 오토들이 바로 그들이지요. 사실 저는 이런 Bot들을 볼때마다 한마디씩 합니다.


"그러면 게임이 재미있냐..?"


솔직히 GPS조작을 통해 게임을 하는 것도 재미가 없더군요. 저도 잠깐 해봤는데 집에서 하느니 나가는 것이 더 재미있습니다. 공원을 빙빙 돌면서 잡는 맛도 있고 저랑 똑같은 사람들이랑 같이 하는 맛도 있거든요. (사실 게임이란 것은 같이하는 것이 혼자하는 것보다 훨씬 더 재미있습니다. 이건 친구들끼리 PC방 가는 것과 비슷한 이유입니다.) 그런데 이건 제가 하는 게 아무것도 없습니다. 게임이 재미라는 것이 전혀 없는 것을 떠나 저는 게임을 하는 것이 아닙니다. 그런데 의외로 성황중이더군요. 이걸 돈받고 파는 놈들도 있습니다. 뭐하러..??


근데 이게 그냥 혼자 잡고 놀면 되는데 그게 문제가 아닙니다. Pokemon GO는 체육관이라는 대결 요소가 있습니다. 그런데 체육관을 기껏 먹어도 이런 Bot이 와서 깨고 나면 허탈합니다. 실제 아무도 없는데 누가 와서 내 체육관을 깨고 있더라는 것은 자주 보이는 이야기입니다. 이는 Pokemon GO뿐만 아니라 모든 MMO게임의 문제입니다. 보통 Bot은 게임을 업데이트함으로서 이를 막아버리는 방식을 쓰는데 문제는 창과 방패의 대결에서 방패가 이기는 것 봤습니까? 계속 문제가 생길 수밖에 없다는 겁니다. 그리고 그 피해는 정상적인 플레이를 하는 사람들이 당하고 있는 중입니다.


실제로 Bot에 대해서 나이앤틱이 사용 내역을 수집하고 있는 중입니다. 게임을 업데이트 하고 Bot사용이 걸리면 이를 DB에 넣었다가 특정 기간에 Ban Wave를 한다고 합니다. 그런데 게임을 업데이트하는 기간이 너무 길다는 것이 문제입니다. 즉 Bot을 잡는 기간 = 업데이트 후 잠깐 동안인 셈인데(어느정도 기간이 지나면 그걸 우회하는 Bot이 나오니까요) Pokemon GO의 업데이트 주기는 상당히 긴 편입니다. 그동안 Bot들에 의한 피해를 받을 수밖에 없는 셈입니다. 난감하지요. 일단 기술적인 문제로 잡으려면 잡을 수는 있는데 기간이 너무 긴 겁니다. 이쪽은 운영상의 문제가 있는 셈이지요.



그렇다고 이 글만 믿고 "야 밴 못 먹인다! 신난다!" 하지는 마세요. 기술은 계속 발전하고 있으니 어떻게 될지는 알 수 없거든요. 실제로 Ingress는 대량으로 잡아들인 전적이 있는 놈들이니 A-GPS의 문제나 Bot의 문제는 기상천외한 방법으로 잡을지도 모르거든요.


하지만 지금처럼 방치를 했다가는 Pokemon GO란 게임은 추억속의 게임으로 전락할지도 모릅니다. 그건 나이앤틱이 풀어야할 숙제이겠지요.

,




크랜치뱅이라 했던 배포판을 혹시 기억하시나요? 나름 꽤나 유명했던 배포판인데 저사양용으로 제작되서 상당히 가볍기로 유명했던 배포판입니다.


로고도 상당히 인상적이었는데

그냥

#!


이게 로고였습니다. 하지만 이 배포판은 결국 업데이트가 중단되고 말았고 아쉬움 속에 사라지고 말았지요.


하지만 2015년 6월 크런치뱅 제작자들이 다시 모여서 새로운 프로젝트를 시작했습니다. 일명 bunsenlabs란 배포판인데요. 그냥 크랜치뱅이 그대로 돌아왔다고 해도 과언은 아니더군요.


Openbox + tint2 + conky 그리고 몇몇 어플리케이션만을 넣고 배포되는 것으로 크런치뱅만큼 상당히 가볍습니다. 기본 상태로 메모리를 180MB를 먹고 있는 것이 확인 되었습니다. 여기서 더 가볍게 하려고 하면 더 가볍게도 가능할 지경입니다.


처음 설치는 Debian과 동일한데(Debian 기반이니까요.) OS설치후 이런 저런 것을 물어보는데 Backport저장소를 추가할 것인지 물어보는 때가 있는데 꼭 해주는 것을 추천합니다.


2017년 현재 Debian Jessie의 커널 버전은 3.1로 4.9가 넘어간 현재 버전에 비해 상당히 커널 버전이 낮습니다. 그리고 최신 하드웨어 지원도 별로입니다. 따라서 모든 OS의 설치와 설정이 끝난 다음 다음 명령어를 꼭 터미널에 넣어주시길 바랍니다.


sudo apt-get update

sudo apt-get install aptitude

sudo aptitude -t jessie-backports update

sudo aptitude -t jessie-backports upgrade


이렇게 해주시면 백포트 저장소를 통해 어느정도 패키지버전이 업그레이드 되는 것을 보실 수 있습니다.


그리고 깜빡했는데 기본적으로 한글폰트가 없으므로 꼭 한글 폰트를 설치해주시길 바랍니다.


sudo apt-get install fonts-nanum



더 가볍게 쓰고 싶으시다면 composite를 삭제하고 xfce4-power-manager삭제하고 수동으로 전원 관리를 해주시면 편리합니다.


sudo apt-get purge compton

sudo apt-get purge xfce4-power-manager


참고로 10년전 랩탑의 윈도7에서 버벅거리던 H.264 동영상 재생이 BunsenLabs를 쓰고 쌩쌩히 돌아가는 것이 확인 되었습니다. 뭔가 상당히 투박하지만 굉장히 가볍기 때문에 구형 하드웨어 재생용으로는 상당히 탁월한 것을 알 수 있습니다.



(스크린샷들을 날려먹었습니다.)

,

One drive는 Microsoft가 제공하는 클라우드 서비스입니다. 물론 윈도를 설치하면 기본적으로 설정 되어있기 때문에 아는 사람은 다 알고 있습니다.


사실 office365를 구독하면 1TB라는 꽤나 쓸만한 공간을 주기 때문에 저는 이 쪽을 애용하고 있던 편인데요. (물론 제가 구독한 것은 아니고 학교에서 구독을 하고 있어서...) 크롬의 웹 앱을 통해서 Microsoft가 직접 제공하는 웹오피스를 쓸 수도 있어서 상당히 편리하게 쓰고 있었습니다.


그런데 One drive에 파일을 올리려고 할 때마다 크롬이나 파이어폭스가 뻗는 증상이 자꾸 보이더군요. 처음에는 파이어폭스로 하는데 자꾸 뻗길래 파이어폭스 문제라고 생각했는데 크롬에서도 동일한 증상이 생겼습니다.


웃긴것은 클래식모드로 넘어가면 아무런 문제없이 잘 된다는 것이다. 즉 모던모드에서 알 수없는 문제가 있다는 것.


제 컴퓨터 문제인가 하고 검색해봤더니 저만 그런 것이 아니더군요. 전세계의 모든 리눅스PC에서 Onedrive사용에 문제가 있다고 합니다. 문제는 오로지 리눅스에서만 문제가 일어났고 Windows나 OSX에서는 전혀 문제가 없다고 합니다.


https://productforums.google.com/forum/#!msg/chrome/x-B5T7tnVuc/fTVGlzgfBgAJ



크롬 포럼에서는 Onedrive를 쓰면 CPU사용률이 100%로 치솟는 문제가 있다고 하면서 이를 해결하는 방법을 제시했는데요. 그 방법이라는 것이...



Edge나 IE11로 브라우저를 속이라는 것입니다.


아니...이건 뭐...???


코드상에서 Linux 혹은 Ubuntu라는 것이 나오면 특정 자바스크립트 코드가 바뀐다고 하더군요. 자세히는 모르겠지만 Prefetch형태로 자바스크립트를 구동하던 것이 Plain Text형태로 구동하면서 속도가 극악하게 느려진다는 것이 적당한 설명입니다.


근데 Prefetch라는 것이 리눅스에서도 잘 돌아가거든요. 그런데 리눅스는 어쩐일인지 Plain TEXT로 보여준다는 것이지요.


일부러 그랬다고 하기에는 애매한데 기분이 엄청 나빠지더군요. 일단 방법은 알려드리겠습니다.


크롬기준으로(파이어폭스는 웹오피스가 느려서 One drive 쓸 때에는 잘 안 씁니다.) 크롬 웹스토어에서 User agent Switcher나 비슷한 확장을 설치합니다.


https://chrome.google.com/webstore/detail/user-agent-switcher-for-g/ffhkkpnppgnfaobgihpdblnhmmbodake/reviews


그리고 오른쪽 위에 새로운 아이콘이 생기는데 이걸 누르고 Edge를 선택합니다. 그런다음 Onedrive에 접속하면 끝





실제로 기본 Agent일때와 Edge일 때의 시스템 성능을 살펴보면 화가 날 지경입니다.


기본 Agent(Chrome, Ubuntu)일 때 CPU사용률이 25%로 나오는데 이는 4코어짜리라 CPU0만 갈구고 있기 때문.


이쪽은 Edge Agent일 때 잠시 25%까지 올랐지만 금방 0%로 떨어졌다. 즉 이 쪽은 금방 일이 끝난다는 것.


실제로 Edge로 User Agent를 맞추고 웹오피스와 Onedrive 등 Microsoft 서비스를 써봤는데 굉장히 쾌적하게 굴러갔습니다. 이쯤되면 의도적으로 한 것 아니냐는 짜증도 올라오는데요. 그냥 단순한 실수라고 믿고 싶습니다.


개인적으로 좋아하지는 않았지만 싫지도 않았는데 정나미가 좀 떨어지네요. Micro$oft...

,