LainyZine: 프로그래머 가이드 🐣

macOS 앱의 애플 실리콘 지원 여부 확인하는 방법

지난 2020년 12월 Apple에서는 직접 설계한 Apple Silicon M1 칩을 탑재한 맥북 라인업을 공개했습니다. 2021년 5월 현재 M1 CPU를 탑재한 MacBook Air, 13형 MacBook Pro, Mac mini, 24인치 iMac 라인업이 출시 되었습니다. M1 칩이 사용된 Mac을 사용하더라도 Rosetta 2로 Intel CPU로 빌드된 앱을 사용할 수 있기 때문에 대부분의 경우 호환성 문제를 걱정할 필요는 없습니다.

많은 앱들이 발빠르게 M1 빌드를 제공하고, Rosetta 2로 정상 동작합니다만, 여전히 문제가 있는 경우도 있고 별도로 확인을 해야하는 상황도 있습니다. 이 글에서는 애플리케이션의 애플 실리콘 지원 여부를 확인하는 방법을 소개합니다.

Is Apple silicon ready?: macOS 앱의 애플 실리콘 지원 여부 확인

macOS 용 특정 애플리케이션 M1 빌드를 공식적으로 제공하는지, 혹은 Rosetta 2로 정상 동작하는지 확인할 수 있는 가장 간단한 방법은 Is Apple silicon ready? 사이트에서 검색해보는 방법입니다.

이 사이트에서는 M1 optimized 빌드를 제공하는지와 Rosetta 2에서 정상 동작하는지를 알려줍니다. 아래는 Chrome을 검색해본 결과입니다.

Is Apple silicon ready?에서 확인한 Chrome 앱

Chrome은 Intel 버전을 사용하더라도 Rosetta 2로 아무런 문제 없이 동작합니다. 또한 워낙 대중적인 앱이다보니 M1 맥이 정식 출시되기 이전부터 M1 대응 작업이 이루어진 대표적인 앱입니다. 애플 실리콘 버전으로 빌드된 Chrome을 설치하는 방법은 아래 글을 참고해주세요.

반면에 Dropbox를 검색해보면 아직 애플 실리콘 최적화된 버전이 없는 것을 확인할 수 있습니다. 다행히 Rosetta 2를 통해 정상 동작하고 있으며 Dropbox 측에서도 Intel 버전이 M1 맥에서 문제없이 동작한다고 밝히고 있습니다.

Is Apple silicon ready?에서 확인한 Dropbox 앱

멀티미디어 앱들의 경우 M1 빌드가 제공 되지 않거나 Rosetta에서도 문제가 있는 경우가 있으니, 필수적으로 사용하는 앱이 있다면 꼭 먼저 확인하는 것을 추천합니다.

설치된 애플리케이션 정보에서 빌드 아키텍처 확인하는 방법

설치된 애플리케이션의 경우 앱 정보를 열어서 애플 실리콘 지원 여부를 확인할 수 있습니다. 먼저 Finder 앱을 열고 응용 프로그램 디렉터리로 이동합니다. 확인하고 싶은 앱을 선택하고 Command + I 키를 입력하면 정보 창이 나타납니다. 정보 창의 일반 -> 종류를 보면 앱이 어떤 아키텍처로 빌드 되었는지 확인할 수 있습니다.

빌드 종류는 크게 3가지로 나눠 볼 수 있습니다.

하나씩 사례를 살펴보겠습니다. Docker 최신 버전의 경우 Apple Silicon 전용으로 빌드되어있습니다.

Docker: 응용 프로그램(Apple Silicon)

Dropbox는 Intel CPU 아키텍처로 빌드되었습니다. 이 경우 M1 탑재 Mac에서는 Rosetta 2로 동작합니다.

Dropbox: 응용 프로그램(Intel)

마지막으로 앱 스토어에서 설치한 Bear 앱은 인텔과 애플 실리콘 모두 지원하는 Universal 앱입니다. 이 경우 애플 실리콘을 기본적으로 사용하며 ’Rosseta를 사용하여 열기’를 선택해서 강제로 Intel 아키텍처 앱으로 실행할 수 있습니다.

Bear: 응용 프로그램(Universal)

활성 상태 보기에서 실행중인 애플리케이션 아키텍처 확인하기

활성 상태 보기 앱은 현재 실행중인 프로세스들의 목록과 상태를 보여줍니다. 여기서 실행중인 프로세스의 아키텍처를 확인하는 것이 가능합니다.

활성 상태 보기에서 실행중인 앱(프로세스)의 아키텍처를 확인할 수 있습니다

위 이미지에서는 Dropbox가 Intel 아키텍처로 실행되고 있고, Docker가 Apple 아키텍처로 실행되고 있는 것을 확인할 수 있습니다.

file: 커맨드라인 명령어(바이너리)의 아키텍처 확인하는 방법

지금까지는 주로 macOS 데스크톱 GUI 애플리케이션의 아키텍처를 확인하는 방법을 소개했습니다. 데스크톱 앱과 마찬가지로 커맨드라인 바이너리도 빌드된 아키텍처를 확인할 수 있습니다. 이 때는 file 명령어를 사용합니다.

예를 들어 macOS에 기본적으로 포함된 ZSH 바이너리의 아키텍처를 확인해보겠습니다. 터미널을 열고 다음 명령어들을 실행해보면 됩니다. 먼저 which로 명령어의 정확한 경로를 찾고, 이 경로를 file에 넘겨줍니다.

$ which zsh
/bin/zsh

$ file /bin/zsh
/bin/zsh: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64e:Mach-O 64-bit executable arm64e]
/bin/zsh (for architecture x86_64): Mach-O 64-bit executable x86_64
/bin/zsh (for architecture arm64e): Mach-O 64-bit executable arm64e

데스크톱 애플리케이션의 Universal 빌드처럼, 이 파일도 Universal binary인것을 확인할 수 있습니다. 즉, 이 명령어는 Intel(x86_84)과 애플 실리콘(arm64)을 모두 지원합니다.

Homebrew로 설치된 jq 바이너리를 file로 확인해보겠습니다.

$ file /opt/homebrew/bin/jq
/opt/homebrew/bin/jq: Mach-O 64-bit executable arm64

arm64 아키텍처로 빌드된 Apple Silicon 지원 버전임을 확인할 수 있습니다. Homebrew의 jq 패키지 페이지에서도 애플 실리콘 지원 여부를 확인할 수 있습니다.

애플 실리콘을 지원하는 Homebrew를 사용하려면 3.0.0 이상 버전을 설치해야합니다. 애플 실리콘 지원 Homebrew 설치 방법에 대해서는 다음 글에서 자세히 소개합니다.

애플 실리콘 지원하는 Docker 이미지 확인하는 방법

지난 4월 15일 애플 실리콘을 지원하는 Docker 정식 버전이 공개되었습니다. 애플 실리콘 버전 Docker 설치 방법과 이미지 아키텍처에 대한 정보는 아래 글을 참고해주세요.

애플 실리콘 버전 Docker는 arm64 아키텍처로 빌드된 이미지를 우선적으로 사용합니다. 만약 arm64로 빌드된 이미지가 없는 경우 --platform linux/amd64 옵션을 지정해 인텔 CPU에서 사용할 수 있는 이미지를 Rosetta 2로 실행할 수 있습니다. 단, Docker 측에서는 안정성 등의 이유로 애플 실리콘 버전을 사용 시에는 arm64로 빌드된 이미지 사용을 권장하고 있습니다.

Docker Hub에서 이미지를 검색할 때 필터를 통해 arm64 이미지를 검색할 수 있습니다. 이미 100개 이상의 공식 이미지가 arm64 아키텍처를 지원하고 있으니 애플 실리콘의 Docker 지원에 대해서 너무 우려할 필요는 없을 것으로 보입니다.

Docker Hub에서 ARM 64 아키텍처 이미지를 필터링할 수 있습니다

Pull 받은 이미지의 아키텍처는 아래 명령어로 확인해볼 수 있습니다.

docker image inspect <IMAGE_NAME> | jq '.[].Architecture'
LainyZine은 쿠팡 파트너스 활동에 따른 수수료를 제공받습니다.