(부재 : 우리가 모르는 애플)
제가 계속 쓰고싶었던 글입니다.
애플이 왜 끌릴까? 과연 애플의 기기들은 하드웨어적으로나 시스템적으로나 다른 폰에게 떨어진다는 언플이 옳을까?
지투, 갤럭시S4, 이보4G+, 디자이어 HD, 테이크 원, 갤럭시 U, 옵티머스 마하 사용해봤고여..
애플 제품은 가격때문에 사용해본적이 없습니다. 어머니가 아이폰5을 사용중이긴 합니다.
안드로이드와 비교하는 관점에서
가상머신 위에서 노는 안드로이드
우리가 사용하는 안드로이드는 리눅스에 기반하며 JAVA라는 프로그래밍 언어로 만들어집니다.
이 JAVA라는 언어로 컴파일하면 자바 바이트코드 형식으로 바뀌는대 이걸 그냥 실행 할 수 없어 해석을 해야되서 별도의 인터프리터가 필요합니다.
원래 JVM(Java Virtual Macine)이라고 불리는 가상 머신을 사용해야 되는대, 안드로이드는 구글에서 자체 설계한 가상머신인 달빅(Dalvik)을 사용합니다. 그렇게 되면, 결국 안드로이드는 아래와 같은 실행 단계를 거칩니다.
결국 가상 머신을 거치는 안드로이드는 동성능의 아이폰보다 여러 면에서 버벅일 수 밖에 없죠. 달빅 가상머신은 실행 부분 전체를 RAM을 통해 올려야 되기 때문에, 램도 많이 먹을 수 밖에 없고 JIT(Just-In-Time) 컴파일러가 돌아가는대 성능이 많이 필요해서, iOS와 안드로이드와의 성능 편차는 심해진 편입니다.
이런 단점때문에 현재 개발중인 ART(Android RunTime)이 달빅을 갈아 치워야 성능 편차가 사라집니다. 하지만, 안드로이드는 오픈 소스 운영체재라 어쩔 수 없는 단점이 하나 더 있습니다. 바로..
파편화(부제 : 개발자들은 왜 애플을 좋아할까)
개발자들이 미치는 과제입니다. 예전에 XLGAMES의 대표이사인 송재경이 "안드로이드 버전은 언제 나오냐"라는 유저의 질문에 "차라리 아이폰을 하나 사시죠"라고 답변한 이야기 아는지 모르겠네요. 사실 그 예기를 개발자 입장에서 생각하면 전적으로 동의할거라 생각됩니다.(일단 저는 프로그래밍 언어를 공부한 적도 없고 개발자도 아니지만) 물론, 그 표현 방식이 잘못됬다는 생각이 듭니다. 개발자 입장에서 애플 매니아가 많은것은 어쩔 수 없습니다.
이 아래 글은 작년 3월 31일에 쓰여진 글입니다. 루리웹이 출처고요.
------------------------------------------------------------------------------------------------------------------------------------
제조사 파편 아직 심합니다.
심지어 같은 삼성 갤럭시s2 s3 노트 노트2 끼리도 제대로 개발하기 힘듭니다.
위에 분들은 아이스크림부터는 os에서 좀 지원해주고 게다가 이제 안드로이드폰 화면크기가 대체로 규격화 되기 때문에 가능하리라 생각하시겠지만
그것은 오직 네이티브로만 개발했을때 예기이고
수많은 앱들은 웹과 네이티브를 같이 사용하고 있는데 웹쪽에서 문제가 많이 생깁니다.
그리고 네이티브로만 개발한다고 해도 사운드칩셋, 카메라칩셋등이 틀려서
해당 기능에서 기기별로 다르게 동작하는 경우가 많습니다.
아마 실제로 개발해 보신분이시라면 카메라 뒤집히는 증상 아실겁니다.
사운드 칩셋의 경우 openAL 같은 외부 라이브러리를 사용하면 모를까
안드로이드 sdk에서 제공하는 api썼다가는 다증 사운드 출력시 기기별로 오락가락하는거
100% 나옵니다.
저는 저번주에 모 기업의 앱개발을 맡았습니다 ios 쪽이었구요, 이제 내일 본사복귀해서
정리하고 모레부터 휴가입니다.
하지만 안드로이드개발자는 아직도 디버깅 리스트와 싸우고 있습니다.
안드로이드 사용자가 워낙 많은 기업인데 기종이 가지각색이고 사용하는 os도 가지각색이라
사용하다보면 생각치도 못한 문제가 막 나오고 있습니다.
------------------------------------------------------------------------------------------------------------------------------------
보안
따로 설명드리지 않겠습니다.
안드로이드 어플리케이션 설치할때 뜨는 "이 어플리케이션에서 요구하는 기능들"을 잘 보셔야합니다.
정말 뜬금없이 요구되는 기능들도 많고, 이것만 잘 이용해도 연락처 뽑이오는 프로그램은 50줄 이내로 프로그래밍이 가능하다고 합니다.
최근 이슈를 끈건 자주 사용하는 손전등 앱이 사용자의 위치정보를 무단으로 전송하다 적발된 사례입니다. 지금 제 폰에도 뭐가 제 개인정보를 빼가는지 예상하지 못합니다. "어플리케이션에서 요구하는 기능들"을 전부 봐도 무엇때문에 이 기능을 사용하는지 안적어두거든요.
잘 아는 텔레그램도 여기 앞에서는 무너집니다. 가벼운 프로그래밍을 이용하면 지금 보고 있는 화면을 원격으로 전송하는 일까지 가능합니다. 세계 아이폰 점유율은 안드로이드의 반 정도 되는대 악성코드는 안드로이드용이 99%입니다.
안드 제조사들의 치열한 치킨게임
AP, 해상도, 카메라 화소 등 여러 방면에서 안드로이드 제조사들은 자기 회사 플레그쉽 모델의 더 좋은 부품을 넣기 위해서 노력합니다. 어떻게 보면 정말 의미 없는 경쟁일때도 많습니다. 기본적으로 FHD 해상도는 탑제되어 나오고, 최근 G3가 WQHD(Quad-HD) 해상도를 탑제했다가, 기기 성능이 해상도를 받쳐주지 못해 포기하는 방향으로 돌릴 가능성이 높아졌습니다. 카메라 화소도, 카메라 성능을 과시할때 가장 보여주기 좋은 측면이나, 가장 중요한건 사진의 품질입니다. 화소도 사진의 품질을 높이나, 더 중요한건 아니죠.
이런 의미없는 치킨게임은 결국 G3같은 결과를 불러옵니다.
덤벼라, 베가 R3!(12년 9월 출시)
플레이웨어즈에서 G3은 스냅드래곤 801 AP로는 QWHD를 감당하기 버겁다는것을 몸소 보여준 베타테스트 제품이라는 평가를 내릴 정도였죠.
애플은 과연 성능이 낮은가?
그냥 끝내주는 AP
일단 초창기에는 타사 AP보다 월등히 앞선 성능의 AP를 사용했습니다. 이는 타사 AP들이 너무 성능이 낮았던거였죠. 아이폰 이후로 AP의 발전이 급격하게 이뤄집니다. 그리고 애플은 점차 독자적인 AP 설계 능력을 갖추어나갑니다. 자사 제품에 맞게 AP를 최적화 시키기 시작한겁니다. 그래서, 수치상으로는 안드로이드가 앞서는대 실제 성능이나 품질은 아이폰이 앞서는 현상이 발생합니다.
그리고 애플 제품은 계속 GPU가 상당히 좋았습니다. 애플이 설계를 시작한 A5 칩은 PowerVR SGX543을 듀얼코어로 구성했습니다. 이례적인 구성이였죠. 그리고 아이패드3의 2048x1536이라는 미친 해상도를 커버하기 위해서 GPU를 4개박은 A5X를 따로 출시합니다.
또한 A6X도 GPU를 쿼드코어 구성을 했는대 SGX554를 쿼드코어로 묶어 출시했는대, 이게 성능이 또 엄청나게 강해서 1년이 지나서야 A6X를 넘을 수 있었습니다.
그리고 아이폰5s와 함깨 세계 최초 64bit 모바일 AP라는 타이틀을 얻게 된 A7
이 A7이 괴물입니다. 일단 다이 구조를 비교해 보면
왼쪽이 A7이고 오른쪽이 A5X입니다. X가 붙은 제품은 원래 아이패드에 사용하기 위해 GPU를 강화한 버전입니다.
보시면 A6X GPU만한 CPU가 A7에서부터 엄청나게 커졌습니다. 벤치마킹에서 다른 ARM AP들은 비슷하게 나옵니다. 예는 듀얼코어인대?
또한 아난드텍은 "A7은 데스크톱 PC 성능을 갖고 있다" 라고 했습니다. 리오더 버퍼 사이즈를 비롯한 다른 부분들의 대역폭이 다른 모바일 AP에 비해 높아 성능을 내기 충분한대 애플리케이션들이 그 성능을 제대로 따라갈 수 없을 정도라고 합니다.
플레이웨어즈 Geekbench3 점수입니다. 싱글 코어 기준으로 애플 시리즈가 삼성의 최신 모델인 갤럭시 노트 2종과 200점 가까이 떨어트려 놓았습니다. 물론 멀티코어로 가면 쿼드코어인 제품들이 좋게 나옵니다. A시리즈는 최대가 듀얼코어이기 때문이죠.
A8은.. 생략하겠습니다. 힘드네요. 여기까지 쓰는대 4시간이 걸릴줄이야
결론
실제로는 디자인 보고 사시는 분들이 많을겁니다.
애플의 기기는 안드로이드보다 성능이 떨어진다라고 알고 계신분들도 많을거라 생각됩니다.
사실, 애플 제품들은 성능이 떨어지지 않고, 보여주지 않을 뿐. 이라는것.
제가 뭘 쓴지도 모르겠네요^..
긴 글 읽어주셔서 감사합니다.