인텔 맥에서 M시리즈(Apple Silicon)로 마이그레이션: 개발 세팅

Yunhye Park·2025년 7월 31일

Back To Basic

목록 보기
11/12
post-thumbnail

회사에서 기존 인텔 맥에서 M3로 바꾸게 되었다. 마이그레이션 방법은 크게 두가지다. 하나는 애플에서 제공하는 마이그레이션 어시스턴트를 사용하는 것. 다른 하나는 직접 세팅을 직접하기.

인텔과 애플 실리콘은 CPU 아키텍쳐가 다르다. (각각 x86과 ARM) 그래서 전자의 방법을 택하면 호환성 문제가 발생할 수 있다. 그래서 이번 마이그레이션은 세팅을 하나하나 다시 해보기로 했다.

마이그레이션 순서

확인하면서 진행할 거라서 모든 백업 사항을 기록할 필요는 없다. 하지만 간소한 가이드라인이 있으면 하나씩 쳐내가는 과정이 좀더 수월하다.

내가 정리한 순서는 아래와 같다:

  1. 터미널 관련 세팅 및 플러그인
  2. 설치한 application 목록
  3. 회사 내 프로젝트별 ignore 파일 정리
  4. 에어드롭할 로컬 폴더 정리
  5. DB 연결

1. 터미널 관련 세팅 및 플러그인

우선 터미널 관련 세팅부터 시작했다. 맥으로 개발 세팅할 땐 패키지 관리 툴인 Homebrew를 이용하면 좋다. brew install [설치할 것] 명령어로 간단히 설치 가능하고, 앱 전체를 한 번에 업데이트도 가능하다.

Brewfile을 생성하여 기존 brew 설치 내용을 새 맥북 세팅할 때 활용할 수도 있다. 이 방법을 뒤늦게 발견해서 이번엔 적용하지 못했다.

Home brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

명령어 한 줄로 브루 설치가 끝났다. 기본 터미널만 사용하는 데 문제는 없지만, 좀더 기능 많고 편리한 iterm2를 선호한다.

iterm2

brew install iterm2

기왕 하루 종일 보는 거, 좀더 깔끔하고 예쁘면 괜스레 좋다. 마치 듣기 좋은 축으로 키보드 바꾸면 코딩 칠 맛 나듯이. 터미널 테마나 커스텀마이징하기 좋은 oh my zsh도 설치해준다.

oh-my-zsh

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

이후 zshrc 설정 파일을 열어준다.

vim ~/.zshrc

해당 파일을 여는 편집기는 다양한데, 리눅스가 좀 낯설다면 VSCode 단축키인 code ~/.zshrc로 열어 한눈에 볼 수도 있다.

편집기별 저장/나가기

  • vim
    • 입력: i
    • 저장 후 나가기: ESC -> :wq
    • 저장하지 않고 나가기: ESC -> :q
    • 강제 나가기: :q!
  • nano
    • 저장: Ctrl + O
    • 나가기: Ctrl + X

아래 내용을 추가해 주고,

source $ZSH/oh-my-zsh.sh

source ~/.zshrc로 변경 사항을 적용한다. 이렇게 설정 파일을 수정할 경우 반드시 적용까지 해줘야 반영된다.

그리고 터미널 문법을 색깔로 체크해주는 플러그인과 이전에 실행한 명령어를 자동 제안해주는 플러그인을 함께 설치해본다.

zsh-syntax-highlighting

zsh-autosuggestions

# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

클론 후에는 앞선 방법과 마찬가지로 .zshrc 파일에서 설정을 추가해주어야 한다.

vim ~/.zshrc

이번엔 설정 파일에서 plugins 부분에 플러그인명을 추가해준다.

plugins=( [이전 플러그인...] zsh-syntax-highlighting zsh-autosuggestions)

마지막으로 변경 내용을 저장해준다.

source ~/.zshrc

테마까지는 건들지 않았고, 기본 터미널 세팅은 여기서 마쳤다.

git

brew install git

git은 github 사용자 정보를 설정 작업이 필요하다.

git config --global user.name "github account"
git config --global user.email "email"
git config --global user.password "github token"

참고로 이번에 마이그레이션 진행하다가 git 명령어를 단축어를 발견했다. 꽤 직관적이라 금방 익숙해졌다.

git과 관련된 몇 가지 단축어

  • git pull: gl
  • git push: gp
  • git add: ga
  • git status: gst

node

실무에서는 프로젝트별로 노드 버전이 다른 때가 많을 거다. brew install node는 가장 최신 버전 하나만 전역으로 설치되므로, 노드 버전을 자유롭게 오가기 위해 패키지 관리자인 nvm를 먼저 설치해준다.

brew install nvm

앞서 터미널 세팅 때 했던 방식대로 zshrc 파일에 환경 변수 추가한다.

# nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

혹은 bash_profile 파일에 환경 변수 추가해도 된다. 위와 아래 중 편한 걸로 하면 되고, 난 설정 파일을 한번에 관리하는 게 좋아서 전자를 택했다.

export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

잊지 않고 source ~/.zshrc로 변경 사항 적용도 해준다.

이제 node 특정 버전을 설치해보자.

nvm install v20.17.0

이 버전을 사용하는 프로젝트 내부 루트 경로에 .nvmrc 파일을 추가해서 해당 버전을 명시해준다.

v20.17.0

이후 해당 프로젝트 경로에서 nvm use를 입력하면 노드 버전이 명시한 대로 바뀐다.

프로젝트별 노드 버전 차이가 다양하면 자동 전환 스크립트를 만드는 게 더 편리하겠다. 지금은 그정도의 자동화가 필요하진 않아서 주로 사용하는 노드 버전을 디폴트로 지정했고,

nvm alias default v20.17.0

필요할 때만 바꾸고 있다.

그리고 가장 안정적인 최신 버전도 필요할 때가 있어서 추가 설치했다.

nvm install --lts

여기까지의 내용을 추가한 설정 파일은 아래와 같다.

.zshrc

# Path to your Oh My Zsh installation.
export ZSH="$HOME/.oh-my-zsh"

# nvm
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

# Plugins
plugins=(
  git
  zsh-syntax-highlighting
  zsh-autosuggestions
)

# Load Oh My Zsh
source $ZSH/oh-my-zsh.sh

DB 연결

Docker

입사 초반엔 로컬에 PostgreSQL을 직접 설치하는 방식이었는데 이후 프로젝트가 고도화되면서 Docker에 띄웠다.

우리 회사는 Docker 설정 파일(docker-compose.yml)로 DB를 띄워서 사용한다. 로컬에서 직접 DB를 설치하지 않아도 되다보니 훨씬 간편한 느낌이 든다. 명령어로 스위치 전환도 간단하고.

최신 랩탑으로 바꾸니 이전에 비해 컨테이너 올라가는 속도가 압도적으로 빨라져서 좋았다.

brew install --cask docker

Docker뿐만 아니라 크롬, 슬랙, 노션 등 GUI 앱도 --cask 옵션으로 설치 가능하다.

PostgreSQL

회사 DB로 postgresql 14 버전을 사용 중이다. 지금은 도커를 주로 사용하다보니 로컬 DB로 연결할 일이 거의 없긴 하지만, 이전 개발 세팅과 동일하게 유지하고자 설치해줬다.

brew install postgresql@14

설치 후에는 psql로 접속해 유저 생성, 권한 부여, DB 생성 등을 진행한다.

# Postgres 접속
psql postgres

# 유저 생성
CREATE USER [유저명] WITH PASSWORD ['비밀번호'];

# DB 생성
CREATE DATABASE [DB명] OWNER [유저명];

# 권한 부여
GRANT ALL PRIVILEGES ON DATABASE [DB명] TO [유저명];

dbeaver

brew install --cask dbeaver-community

Docker로 띄운 DB와 로컬 DB 모두를 한눈에 보고 관리하기 좋다. 기존 설정을 그대로 적용해 연결해주었다.

maven

우선 Maven은 Java 기반이므로 javac(Java 컴파일러)가 필요하다. Java 8은 M시리즈에서 brew install openjdk@8로 설치가 불가능하다. 그래서 SDKMAN으로 설치해준다.

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install maven

끝으로 요즘 필수가 되어버린 AI 에이전트도 세팅의 일부다. Cusor + Claude Code 조합으로 사용 중이라 간단한 설정을 다시 해주었다.

Claude Code

npm install -g @anthropic-ai/claude-code

설치하고,

claude

실행.

Cursor에 extension에 있는 Claude Code를 설치하면, 에디터와 터미널을 연결한 채로 사용 가능하다. 변경 사항을 터미널에서가 아닌 편집기로 직접 보니까 훨씬 가독성이 좋다.


profile
Hello, Developers!

0개의 댓글