brunch

You can make anything
by writing

C.S.Lewis

by 시류아 Jul 27. 2020

ARM으로 플랫폼 전환하는
Mac에 대한 고찰

애플 실리콘을 바탕으로 네 번째 플랫폼 전환하는 Mac에 대한 생각


 지난 2007년 아이폰이 출시된 이후로 급격하게 모바일 시장이 부상하기 시작하면서 iOS를 중심으로 모바일 OS에 집중하며 Mac에서는 그렇게까지 큰 임팩트 있는 변화가 많지 않았습니다. 이에 따라 올해 WWDC 2020 역시 Mac 관련해서는 큰 임팩트가 전혀 없을 것이라 생각하고 있었으나.. 발표된 내용은 생각했던 것과 완전히 달랐습니다.


 두말할 필요도 없이 WWDC 2020의 주인공은 Mac이었습니다. 대규모 업데이트인 Big Sur과 함께 역사상 네 번째 플랫폼 전환, ARM으로 완전 전환을 예고했거든요. 이번 이야기에서는 ARM으로 플랫폼 전환하는 Mac에 대해서 잠깐이나마 생각해보는 시간을 가져볼까 합니다.





네 번재 플랫폼 전환, 그리고 가상화



1994년, Motorola 68k 에서 Power PC 로 하드웨어 플랫폼 전환

2000~2001년, Classic Mac OS에서 NeXTSTEP/UNIX 기반의 Mac OS X로 소프트웨어 플랫폼 전환

2006년, Power PC 에서 인텔(Intel)로 하드웨어 플랫폼 전환


 Mac 은 두 번의 하드웨어 플랫폼 전환과 한 번의 소프트웨어 전환까지 총 세 번의 플랫폼 전환이 있었습니다. 그리고 플랫폼 전환이 이루어질 때마다 이전 시스템에서 구동되는 애플리케이션을 문제없이 새로운 플랫폼에서 사용할 수 있도록 하기 위해 칩셋 명령어 셋 일부를 이식하거나(68k → PPC), 두 플랫폼 모두 사용할 수 있는 단일 바이너리(PPC → 인텔), 유니버설(Universal) 솔루션을 제공하기도 했지만, 모든 전환 과정에서 공통적으로 가상화(emulates) 솔루션이 나왔습니다.




 즉, 이전 시스템에서 사용하던 애플리케이션을 문제없이 사용할 수 있도록 하기 위해 가상화 솔루션을 도입하여 사용자가 충분히 문제없이 사용할 수 있도록 제공해주었으며, 대표적인 사례로는 Power PC 용 애플리케이션을 인텔 프로세서에서 구동할 수 있는 로제타(Rosetta) 예뮬레이터가 있습니다.


 이러한 솔루션 덕분에 애플은 지금까지 모든 플랫폼 전환을 성공적으로 끝마칠 수 있었으며, 이번 ARM 플랫폼으로의 전환 역시 인텔과 arm64 바이너리를 모두 가지고 있는 유니버설 2 (Universal 2)와 LLVM(Low-Level Virtual Machine)을 기반으로 하고 있는 로제타 2 (Rosetta 2) 예뮬레이터를 통해서 사용자 입장에서는 큰 불편함이 없도록 대응하며 전환을 시작하고 있습니다.





그동안 실패한 ARM 플랫폼으로의 전환



 애플의 ARM 플랫폼으로 전환을 시도하기 이전, 이미 9년 전부터 많은 곳에서 ARM으로 플랫폼 전환을 시도하고 있었습니다. 대표적인 사례로 마이크로소프트의 Surface RT 가 있으며, 최근 출시한 서피스 프로 X (Surface Pro X) 그리고 삼성전자의 갤럭시 북 2 (Galaxy Book 2) 등 윈도우(Windows) 제품군에서 사용하고 있던 인텔 x86 아키텍처 대신 ARM 아키텍처를 사용한 여러 2 in 1 PC 제품군이 틈틈이 출시되고 있습니다. 하지만, 이 모든 제품들이 어느 정도 판매량이 있는 경우가 있을지언정 하나도 성공하지 못했습니다.


 이들이 성공하지 못한 이유를 살펴보면, 모든 제품이 하나 같이 애플리케이션 호환성이 그리 좋지 못했다는 결론에 도달하게 됩니다. 그도 그럴 것이 지난 30년 간 윈도우 OS 위에서 돌아가는 애플리케이션은 인텔의 x86 아키텍처를 기반으로 하고 있으며, 많은 애플리케이션이 이에 맞추어서 개발되어 있는 상황입니다.


 즉, ARM 아키텍처를 사용한 윈도우 하드웨어는 자연스럽게 사용할 수 있는 애플리케이션에 제한이 분명하게 있었으며, 이는 곧 소비자에게 불편으로 돌아와 수요 감소로 이루어졌습니다. 나아가서 제조사와 개발자에게 있어서는 소비자의 수요가 적으니 당연하게 제품 및 애플리케이션 개발 필요성에 대해서 의구심을 가질 수 없는 상황이 계속 반복되었습니다.




 서피스 프로 X를 비롯하여 그나마 최근에 출시되고 있는 제품들은 인텔 x86 에뮬레이터를 내장하여 인텔 x86 기반 애플리케이션을 구동할 수 있는 상황이라고 하나.. 아직까지 64bit 애플리케이션 구동이 불가능해서 생각보다 많은 애플리케이션을 사용할 수 없으며, 구동 성능에 있어서도 아직까지 부족함이 많아 간단한 애플리케이션을 제외하고는 사용성에 있어서 매우 아쉬운 점이 많은 상태입니다.


 이러한 앞선 사례를 보았을 때, 애플이 그동안 여러 솔루션을 활용하여 성공적으로 진행한 플랫폼 전환 경험을 살려서, 유니버설 2와 로제타 2를 통해 소비자 사용성을 대응하면서 Mac 플랫폼 전환을 진행한다고 하지만, 과연, 오랜 기간 동안 실패를 달려온 윈도우 진영과 달리 제대로 성공할 수 있을지에 대한 의구심을 가질 수밖에 없습니다.





Performance-per-watt,

전력 소모 대비 성능 그리고 애플의 불만



 ARM 플랫폼 위에서 제대로 구동될 수 있는 애플리케이션이 나오기 전까지 가상화 솔루션을 통해서 소비자의 불편을 최소화시킨다고 하더라도 그동안 네이티브 환경에서 구동되었던 애플리케이션이 가상화 환경에서 구동됨에 따라 일부 애플리케이션에서는 분명한 성능상의 불편함과 아쉬움이 있을 수밖에 없습니다. 특히 고성능을 요구하는 애플리케이션에서는 더더욱 말이지요.


 그럼에도 불구하고 왜 애플은 그동안 잘 사용하고 있었던 인텔 x86 아키텍처를 버리고 자체 SoC(System on Chip)과 SiP(System in Package) 통합 브랜드 애플 실리콘(Apple Silicon)을 론칭하며 ARM 아키텍처로 전환하려고 하는 것일까요? 이는 ARM 아키텍처가 가지고 있는 이점과 그동안 애플이 인텔 x86 아키텍처를 사용하면서 가져온 불만에 대해서 알아보면 어렴풋이 그 해답을 알 수 있습니다.




 인텔 x86 아키텍처 대비 ARM 이 가지고 있는 장점을 생각해보면 두말할 것도 없이 “Performance-per-watt” 전력 소모 대비 성능입니다. ARM 아키텍처 같은 경우 다른 아키텍처 대비 전력 소모가 상당히 적은 것으로 유명한데, 보통 사용 시 전력은 수백 mW으로 다른 아키텍처의 대기 수준입니다.


 이에 따라 과거에는 전력 당 전성비는 좋으나 성능 자체는 다른 아키텍처 대비 아쉬웠으나, 현시점에 와서는 애플 A 시리즈 같은 경우 인텔 i5 프로세서와 큰 성능 차이가 없을 정도로 성능이 높아져 다른 아키텍처의 추종을 불허하는 매우 뛰어난 전력 당 성능비를 가지고 있습니다.


 그리고 이러한 플랫폼이 인텔 x86 아키텍처만큼의 부피를 키우고 그만큼 더 많은 코어로 구성할 수 있게 된다면 어떻게 될까요? 애플 A12Z 프로세서의 다이 사이즈는 10.1 x 12.6 mm이며, 인텔 i5-10310U 프로세서는 46 x 24 mm입니다. 굳이 부가적인 설명을 하지 않더라도 충분히 어떠할지 예상할 수 있을 것이라 생각합니다.


https://www.pcmag.com/news/former-intel-engineer-explains-why-apple-switched-to-arm


 이러한 상황 속에 PCMag에 올라온 글에 따르면 엔텔 스카이레이크(Sky Lake, 코어 i 시리즈 6세대) 시절, 인텔의 품질 보증이 비정상적으로 나빴다고 합니다. Intel 이 직접 프로세서의 문제점을 해결하는 것보다 인텔이 버그를 찾아서 피드백하는 것이 훨씬 더 많았으며, 결국 애플이 프로세서의 가장 큰 문제를 제기하는 곳이 되었습니다.




 제품을 공급받는 입장에서는 제품의 결함이 있다고 하더라도 빠르게 품질 보증이 이루어져서 해결이 이루어진다면 크게 문제 삼지 않습니다. 하지만, 인텔이 애플이 피드백하고 있는 문제점에 대해서 제대로 해결하고 있지 못하고 있으며, 이는 곳 제품 개발에 있어서 불편함으로 이어졌고, 곧 애플의 불만이 되어 ARM 아키텍처로 전환하는 것에 가장 큰 계기가 되었다고 볼 수 있습니다.


 더군다나 인텔 프로세서 같은 경우 카비 레이크(Kaby Lake), 커피 레이크(Coffee Lake) 등 스카이레이크 이후 출시되고 있는 아키텍처의 구조적 결함에 따른 보안 취약점 이슈와 심각한 발열 이슈는 덤입니다.





해킨토시와 Macbook 에서 윈도우는

이제 안녕?



 애플이 ARM 아키텍처로 플랫폼을 전환함에 따라 다양한 전망이 쏟아져 나오고 있지만, 가장 재미있게 보고 있는 것은 해킨토시(Hackintosh)와 윈도우 가상화 관련입니다. 해킨토시부터 먼저 이야기를 해보면, 누구나 손쉽게 할 수 있었던 것은 아니지만 인텔 플랫폼을 사용하고 있기 때문에 할 수 있었던 것 중 하나로 애플 제품이 아니더라도 다소 시간 투자하여 시스템을 구성하여 Mac OS를 일반적인 데스크톱 PC 나 노트북에서도 사용할 수 있었습니다.


 하지만, ARM 플랫폼으로 완전 전환이 이루어지고 인텔 플랫폼에 대한 지원이 중단되어 갈수록 점점 더 플랫폼 간 호환성은 낮아지게 될 것이고 자연스럽게 해킨토시를 진행하기 위한 난이도는 더 올라갈 수밖에 없습니다. 결국 최종장에 이르러서는 해킨토시 자체가 불가능할 가능성이 매우 높습니다.


 두번째로 윈도우 가상화 관련, 윈도우 위주로 인프라가 구성되어있고, 의존성이 높은 곳이면 높은 곳일수록 윈도우 환경은 필수 부가결에 가까워 땔래야 땔 수 없습니다.




 이에 따라서 부트캠프(Boot Camp)나 패러렐즈(Parallels) 같은 윈도우를 가상화시킬 수 있는 솔루션이 꼭 필요로 하고 있습니다.


 하지만, ARM 플랫폼으로 전환함에 따라서 기존 인텔 x86 아키텍처와는 다른 명령어 셋을 사용하게 되고, 이는 곧 가상화에 있어서도 다른 아키텍처에서 다른 OS를 가상화시키는 것이기 때문에 분명하게 퍼포먼스 저하가 발생될 수밖에 없습니다.


 당장 윈도우만 하더라도 그렇게 오랜 기간 투자를 해왔음에도 불구하고 ARM 프로세서를 사용한 제품에서 x86 애플리케이션을 구동 시 인텔 프로세서를 사용한 제품과 비교해서 확연하게 성능 차이를 보이고 있어 이러한 예측을 충분히 뒷받침해주고 있습니다.


 다만, 애플을 비롯한 많은 기업에서 ARM 아키텍처로의 전환을 위해 가상화 관련 기술을 비롯하여 상당히 많은 연구 투자를 하고 있으며, 실질적인 성능을 높이기 위해 CPU 코어 개수를 늘릴 수도 있고, x86 아키텍처 명령어를 내장시킬 수도 있으며, 윈도우에서 ARM 지원이 강화되어 가상화가 원활하게 될 수도 있기 때문에 장기적으로는 여러 가지 상황을 고려하여 지켜보아야 된다고 생각합니다.





안그래도 Mac 에서 게임 할 수 있는게 적었는데.. 이제는 더 못하겠네? 아니 글쎄?


 게이머에게 있어서 Mac 은 좋은 선택지라고 이야기할 수 있는 플랫폼이 아닙니다. 많은 게임과 게이밍 기어는 윈도우를 기반으로 출시되고 있으며, 사실상 Mac에서 할 수 있는 게임을 정리해보면 손에 꼽힐 정도로 그리 많지 않습니다.


 이러한 상황은 ARM 플랫폼으로 전환함에 따라서 오히려 할 수 있는 게임이 더 줄어드는 것은 아닐까? 생각이 참 많이 듭니다만, 다른 한 편으로는 지금보다 훨씬 더 많이 늘어갈 것 같다는 생각이 들기도 합니다.




 이와 관련된 근거로, iOS, iPad OS, mac OS 등 애플에서 제공하는 모든 플랫폼의 OS는 자체 그래픽 API인 Metal을 공통적으로 사용하고 있으며, 지난 2018년 출시한 iOS 12와 mac OS 10.14 모하비부터는 OpenGL과 OpenCL 등 다른 그래픽 API에 대한 지원을 공식적으로 중단했습니다. 사실상 애플 플랫폼의 그래픽 처리는 Metal로 통일되어있습니다.


 그리고 게임 개발에서 많이 사용되고 있는 언리얼 엔진(Unreal Engine)과 유니티 엔진(Unity Engine)을 비롯하여 많은 게임 엔진들이 Metal API를 지원하고 있으며, 장기적으로 점점 더 커질 수밖에 없는 모바일 플랫폼 시장에 대응하여 ARM 타깃 컴파일까지 열심히 지원해주고 있습니다.




 나아가서 프로젝트 카탈리스트(Project Catalyst)를 통해서 애플 제품의 생태계 통합이 이루어지고 있으며, 소스 코드 역시 그대로 사용할 수 있는 것들이 많습니다. 이에 따라 mac OS에서도 iOS나 iPad OS 용으로 출시된 애플리케이션을 구동할 수 있으며, 많은 애플리케이션이 하나의 단일 애플리케이션으로 통합되고 있습니다.

지금까지 한 이야기를 정리하자면, 애플 생태계는 개발적인 측면에서부터 시작해서 플랫폼 간 공유가 정말 잘 되어있어, iOS나 iPad OS에서 구동하는 모바일 게임을 mac OS에서 그대로 구동할 수 있다는 것입니다.


 고로, 지금 현시점보다 더 많은 게임을 할 수 있는 환경이 될 가능성이 매우 높습니다.




 더군다나 이제 막 시작하고 있는 애플의 구독형 게임 서비스인 애플 아케이드(Apple Arcade)는 애플 플랫폼 간 전환 및 연동 플레이를 지원해주고 있으며, Mac 이 ARM 플랫폼으로 전환됨에 따라 더 원활하게 호환될 가능성이 높습니다.


 여담으로 애플 아케이드가 성공적으로 정착된다면 더 이상 모든 애플 플랫폼에서 게임 관련해서 부족하다는 이야기를 더 논할 필요가 없습니다.





마치며



 Mac 이 Intel 플랫폼에서 ARM 플랫폼으로 전환한다고 발표한 지 어느덧 한 달이 넘는 시간이 흘렀습니다. 그동안 DTK(Developer Transition Kit)를 통해서 어느 정도 성능을 가지고 있다는 이야기부터 시작해서 하반기에 출시되는 Macbook부터 탑재된다는 소식, 애플 실리콘에서 썬더볼트를 지원한다는 소식 등 관련 정보들이 상당히 많이 나왔습니다.


 또한, 인텔에서 7 nm 공정으로 넘어가는데 예정보다 더 늦어져서 2023년은 되어야 할 것 같다는 소식이 있다 보니, 애플의 선택이 다소 무모했을지는 몰라도 옳은 결정은 아니었을까? 생각해보게 되기도 합니다.




 여러모로 ARM으로 완전 전환된 Mac 관련하여 기대치를 점점 높여주는 정보들이 나오고 있고, 성공적으로 플랫폼 전환을 마무리한다면, 그동안 계속 실패해온 윈도우 진영의 제조사들이 벤치마킹하여 또 다른 성공사례를 만들어 낼 가능성이 높다고 판단되기 때문에 기대치가 나날이 높아지는 것 같습니다.


 앞으로의 아키텍처 시장에서 큰 영향력을 끼치고 많은 변화를 가져올 것으로 사료되는데.. 어서 빨리 개발자 킷이 아닌 일반 사용자 대상으로 나온 실 제품을 만나볼 수 있기를 바라며 글을 마무리합니다. 감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari