개발자를 위한 애플 실리콘 M1 맥 세팅
iTerm 2, oh-my-zsh, Homebrew, Docker

iTerm2 설치

macOS의 기본 터미널 대신 많이 사용하는 것이 iTerm2입니다. iTerm2 는 유니버설 빌드 버전을 지원하기 때문에 최신 버전의 iTerm2를 설치하면 Apple M1을 지원합니다.

iTerm2 Downloads 페이지에서 최신 릴리즈를 다운 받습니다.

iTerm2 실행 후 활성 상태 보기에서 iTerm2 프로세스의 아키텍처가 Apple 로 표시되는 것을 확인할 수 있습니다. 아키텍처가 Apple 로 표시되면 Apple M1을 지원하는 것입니다.

활성 상태 보기에서 iTerm2가 Apple 아키텍처로 실행된 것을 확인할 수 있습니다
44BITS 소식과 클라우드 뉴스를 전해드립니다. 지금 5,000명 이상의 구독자와 함께 하고 있습니다 📮

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 설치 명령어를 다시 입력해서 설치를 완료합니다.

oh-my-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

조금 더 이뻐질 줄 알았는데 뭔가 이상하네요?

Pure 설치 한 iTerm2의 화면

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

iTerm2 컬러 스킴 설치

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

iTerm 컬러 스킴을 변경합니다

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

Snazzy 컬러 스킴이 적용된 iTrem2 화면

개발자에게 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라고 입력했을 때는 빨간색으로 표시되는데요. 알 수 없는 명령어를 실행했을 때 빨간색으로 표시돼서 오타나 설치 안 된 프로그램을 실행하는 경우 미리 알 수 있습니다.

zsh syntax highlighting 적용되기 전의 화면
zsh syntax highlighting이 적용된 후의 화면

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 언어 버전을 확인해보겠습니다.

Go 1.15.6 버전이 설치된 것을 확인할 수 있습니다

실제 프로세스에 아키텍처가 어떻게 나오는지 확인하기 위해 간단한 무한 루프 프로그램을 짜서 실행해보겠습니다.

$ echo 'package main\nimport "fmt"\nfunc main() {\nfor {\nfmt.Println("ing...")\n}\n}\n' > main.go
$ go run main.go

활성 상태 보기에서 아키텍처가 Intel 로 잘 설치된 것을 확인할 수 있습니다.

활성 상태 보기에서 go 프로세스의 아키텍처가 Intel인 것을 확인할 수 있습니다

도커 설치

도커 정식 버전은 아직 Apple Silicon 버전이 없지만 다행히 Preview 버전이 Apple Silicon을 지원합니다.

다운로드 링크에서 M1 Tech Preview 버전을 받아서 설치합니다.

도커를 설치합니다

도커 설치가 완료된 후 터미널에서 아래 명령어를 실행 후 브라우저에서 localhost 로 접속하면 잘 되는 것을 확인할 수 있습니다.

$ docker run -it --rm -p 80:80 docker/getting-started

활성 상태 보기에서 docker 관련 프로세스들의 아키텍처가 Intel 과 Apple 로 섞여 있는 것을 볼 수 있습니다.

도커 관련 프로세스들은 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 맥을 추천합니다.

44BITS 로고

홈브류(Homebrew)란?

🏷️ 키워드, 2020-02-02 - 홈브류(Homebrew)는 맥스 호웰(Max Howell)이 주도해서 개발한 맥OS, 리눅스 용 패키지 관리 애플리케이션입니다. 홈브류는 루비(Ruby)로 개발되었으며, 2009년에 개발을 시작해 2019년에는 2.0 버전이 릴리스되었습니다. 현재는 맥OS에서 프로그래밍을 하는 개발자들에게 필수 도구로 자리 잡았습니다.
도움이 되셨나요?
RSS 리더 피들리에서 최신 글을 구독할 수 있습니다.
트위터, 페이스북으로 44BITS의 새소식을 전해드립니다.
✔ 44BITS의 다른 활동도 확인해보세요. 다양한 채널에서 만나볼 수 있습니다.
✔ 따뜻한 댓글 하나와 피드백은 큰 힘이 됩니다.

도커(Docker) 0.8 출시: 맥 OSX 공식 지원

🗞 새소식, 2014-02-11 - 도커(Docker)는 LXC를 사용할 수 있는 리눅스 환경에서만 사용이 가능합니다. 이번에 출시된 도커 0.8부터는 맥 OSX에서도 공식 지원을 발표했습니다. 여전히 맥 OSX에서 도커를 직접 사용할 수는 없습니다만 가능한 가볍게 도커를 사용하기 위해 도커 전용 리눅스 배포판인 boot2docker를 사용합니다.

아마존 웹 서비스, 패키지 저장소 서비스 코드 아티팩트(CodeArtifact) 출시

🗞 새소식, 2020-06-15 - 아마존 웹 서비스에서 소프트웨 패키지 저장소 서비스 AWS 코드아티팩트(AWS CodeArtifact) 서비스가 출시되었습니다. 코드아티팩트에서는 현재 자바의 메이븐과 그래들, 자바스크리브의 NPM과 Yarn, 파이썬의 pip를 지원합니다.

윈도우 10(Windows 10) 2020년 5월 업데이트 릴리스 및 적용하기

🗞 새소식, 2020-06-15 - 지난 5월 윈도우 10 2020 5월 업데이트가 릴리스되었습니다. 이번 업데이는 2019년 11월 이후 새로운 대규모 업데이트로 블루투스 기기 지원 강화, 에모지 키보드 지원, 다이렉트X 12(DirectX 12) 울티메이트 지원, 코타나 채팅 인터페이스 추가, WSL2 정식 릴리스 등이 포함되어있습니다. 이 글에서는 윈도우 10 2020년 5월 업데이트를 적용하는 방법을 소개합니다.