개발자를 위한 애플 실리콘 M1 맥 세팅
iTerm 2, oh-my-zsh, Homebrew, Docker
iTerm2 설치
macOS의 기본 터미널 대신 많이 사용하는 것이 iTerm2입니다. iTerm2 는 유니버설 빌드 버전을 지원하기 때문에 최신 버전의 iTerm2를 설치하면 Apple M1을 지원합니다.
iTerm2 Downloads 페이지에서 최신 릴리즈를 다운 받습니다.
iTerm2 실행 후 활성 상태 보기에서 iTerm2 프로세스의 아키텍처가 Apple 로 표시되는 것을 확인할 수 있습니다. 아키텍처가 Apple 로 표시되면 Apple M1을 지원하는 것입니다.

Oh my zsh 설치
macOS Big Sur 버전부터 기본 쉘이 기존 bash 에서 zsh 로 변경되었습니다. zsh 기본 버전도 사용하는데 불편함이 없지만 예쁜 설정과 편리한 기능을 사용하기 위해 “Oh My Zsh”을 설치합니다.
터미널에서 아래 명령어를 실행합니다.
$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
“명령어 라인 개발자 도구” 설치가 필요하다는 팝업이 실행되면 설치 버튼을 눌러 설치합니다.

설치 시간이 4시간이라고 나오는 경우가 있는데 처음에만 그렇고 좀 기다리면 2분 내외로 줄어듭니다(하지만 실제로는 5분 이상 걸립니다).
앞서 입력했던 zsh 설치 명령어를 다시 입력해서 설치를 완료합니다.

이제 쉘이 예뻐졌습니다! 화살표가 이쁘지 않나요?
zsh 꾸미기
Oh my zsh 로 이뻐졌지만 조금 더 이쁘게 만들어 보겠습니다.
Pure prompt를 설치합니다.
$ mkdir -p "$HOME/.zsh"
$ git clone https://github.com/sindresorhus/pure.git "$HOME/.zsh/pure"
$ echo "\nfpath+=$HOME/.zsh/pure\nautoload -U promptinit; promptinit\nprompt pure" >> "$HOME/.zshrc"
$ exec $SHELL
조금 더 이뻐질 줄 알았는데 뭔가 이상하네요?

iTerm2 의 색상 팔레트를 바꾸겠습니다. iTerm2 snazzy 페이지에 들어가서 Install 항목에 있는 “Snazzy.itermcolors” 파일을 저장 후 클릭해서 실행합니다.

iTerm2 에서 Preferences > Profiles 클릭 후 Default 프로파일을 선택하고 Colors 탭을 클릭합니다.

오른쪽 아래 Color Presets 셀렉트 박스를 클릭하고 Snazzy를 선택합니다. 터미널 색상이 예뻐졌습니다.

개발자에게 shell 은 중요합니다. 마지막으로 zsh syntax highlighting을 설치하겠습니다. 이 플러그인을 설치하면 shell 에 명령어를 입력할 때 좀 더 이쁘게 보입니다.
아래 명령어를 실행합니다.
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "$HOME/.zsh/zsh-syntax-highlighting"
$ echo "\nsource $HOME/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> "$HOME/.zshrc"
기존에 사용하던 터미널을 종료하고 새로 시작합니다.
기존에 단순히 하얀색으로만 표시되던 쉘 명령어가 예뻐진 것을 확인할 수 있습니다. seapy라고 입력했을 때는 빨간색으로 표시되는데요. 알 수 없는 명령어를 실행했을 때 빨간색으로 표시돼서 오타나 설치 안 된 프로그램을 실행하는 경우 미리 알 수 있습니다.


homebrew 설치
macOS를 사용하는 개발자들의 필수 툴 homebrew를 빼놓을 수 없습니다.
먼저 인텔 빌드 앱을 Apple Silicon에서 실행 할 수 있도록 로제타를 설치합니다.
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
homebrew를 Apple Silicon 버전과 인텔 버전 두 개를 설치하는 방법도 있지만 저는 무조건 인텔 버전을 사용 하는 것을 가정하고 homebrew로 인텔 버전을 설치하겠습니다. 아직 Apple Silicon을 지원하지 않는 경우도 많아서 안정적인 개발을 위해 속도를 포기하고 안정성을 선택했습니다. 이렇게 하더라도 brew를 이용해서 설치할 때 Apple Silicon 버전이 사용되기도 합니다(이유는 정확히 모르겠습니다).
쉘에서 프로그램을 설치할 때 arch -x86_64
옵션을 앞에 붙이면 로제타를 이용해서 설치하게 됩니다.
$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew 로 새로운 툴을 설치할 때마다 로제타를 이용하도록 alias를 설정합니다.
$ echo "alias brew='arch -x86_64 /usr/local/bin/brew'" >> .zshrc
터미널을 종료 후 다시 시작하면 다음과 같은 에러가 발생합니다.

아래 명령어를 실행하고 터미널을 종료후 재시작합니다.
$ compaudit | xargs chmod g-w,o-w
homebrew 설치가 잘되었는지 확인하기 위해 간단한 프로그램을 한번 설치해보겠습니다.
go 언어 설치하기
$ brew install go
Go 언어 버전을 확인해보겠습니다.

실제 프로세스에 아키텍처가 어떻게 나오는지 확인하기 위해 간단한 무한 루프 프로그램을 짜서 실행해보겠습니다.
$ echo 'package main\nimport "fmt"\nfunc main() {\nfor {\nfmt.Println("ing...")\n}\n}\n' > main.go
$ go run main.go
활성 상태 보기에서 아키텍처가 Intel 로 잘 설치된 것을 확인할 수 있습니다.

도커 설치
도커 정식 버전은 아직 Apple Silicon 버전이 없지만 다행히 Preview 버전이 Apple Silicon을 지원합니다.
다운로드 링크에서 M1 Tech Preview 버전을 받아서 설치합니다.

도커 설치가 완료된 후 터미널에서 아래 명령어를 실행 후 브라우저에서 localhost
로 접속하면 잘 되는 것을 확인할 수 있습니다.
$ docker run -it --rm -p 80:80 docker/getting-started
활성 상태 보기에서 docker 관련 프로세스들의 아키텍처가 Intel 과 Apple 로 섞여 있는 것을 볼 수 있습니다.

간단한 기능은 잘 동작 하지만 안 되는 것들도 있습니다. Known issues를 확인해보시기 바랍니다.
회사 내 개발자가 겪은 문제로 Kafka가 도커에서 실행이 안 된다고 합니다.(2020년 1월 13일 기준) 관련 이슈 - ARM support for Kafka
마무리
현업 개발자이고 맥이 1대밖에 없다면 아직 Apple Silicon으로 넘어가기보다 다음 버전인 m1x을 기다리는 것이 좋지 않을까 생각합니다. 일부 개발 도구의 경우 Apple Silicon을 제대로 지원하지 못하는 경우가 많습니다. Redis brew 설치 버전이나 kafka 도커 버전 그 외에도 여러 개발 도구에서 크고 작은 이슈가 있는 것으로 알려져 있습니다. 얼마 전까지 pyenv를 이용해서 파이썬을 설치하지 못 하기도 했습니다. 다행히 pyenv 업데이트로 Python 3.9.1 버전은 설치 가능해졌습니다.
집이나 회사에 추가로 맥이 있어서 급할 때 기존 인텔 맥으로 개발할 수 있는 환경이라면 M1을 사용하는 것도 좋지만 개발 할 때 평소에 잘되던 것도 안돼서 시간 낭비를 많이 할 수 있다는 점은 고려해야 합니다. 개발자가 아니라면 m1 맥을 추천합니다.