macOS 개발 환경 설정 가이드 | 필수 도구와 최적화
새 맥을 샀거나 개발 환경을 처음 세팅한다면 어디서부터 시작해야 할까? 이 글에서는 macOS에서 개발 환경을 구축하는 전체 과정을 다룬다.
사전 지식
macOS는 Unix 기반 운영체제로, 터미널에서 Linux와 유사한 명령어를 사용할 수 있다. 개발자에게 macOS가 인기 있는 이유는 다음과 같다.
Unix 기반 시스템
macOS는 BSD Unix를 기반으로 하기 때문에 Linux 서버 환경과 명령어가 거의 동일하다. 로컬에서 개발한 스크립트를 서버에서 그대로 실행할 수 있다.
패키지 관리자
Linux의 apt, yum처럼 macOS에는 Homebrew라는 패키지 관리자가 있다. 명령어 하나로 개발 도구를 설치하고 업데이트할 수 있다.
터미널
macOS의 터미널은 기본적으로 Bash나 Zsh 셸을 제공한다. iTerm2 같은 대체 터미널 앱을 사용하면 더 강력한 기능을 쓸 수 있다.
1단계: 시스템 기본 설정
시스템 환경설정 조정
개발자 친화적으로 macOS 설정을 변경한다.
Finder 설정
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# 숨김 파일 표시
defaults write com.apple.finder AppleShowAllFiles -bool true
# 모든 파일 확장자 표시
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
# 경로 막대 표시
defaults write com.apple.finder ShowPathbar -bool true
# 상태 막대 표시
defaults write com.apple.finder ShowStatusBar -bool true
# Finder 재시작
killall Finder
스크린샷 저장 위치 변경
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 스크린샷을 Downloads 폴더에 저장
mkdir -p ~/Downloads/Screenshots
defaults write com.apple.screencapture location ~/Downloads/Screenshots
# 변경사항 적용
killall SystemUIServer
키 반복 속도 최적화
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 키 반복 지연 시간 최소화
defaults write NSGlobalDomain KeyRepeat -int 1
# 키 반복 시작 지연 최소화
defaults write NSGlobalDomain InitialKeyRepeat -int 10
Dock 설정
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# Dock 자동 숨김
defaults write com.apple.dock autohide -bool true
# Dock 애니메이션 속도 빠르게
defaults write com.apple.dock autohide-time-modifier -float 0.5
# Dock 재시작
killall Dock
개발자 도구 활성화
macOS에는 기본적으로 개발 도구가 숨겨져 있다.
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 우클릭 메뉴에 "경로 복사" 추가
defaults write com.apple.finder ShowPathbar -bool true
# 텍스트 선택 시 QuickTime Player에서 복사 가능
defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen -bool false
2단계: Xcode Command Line Tools 설치
모든 개발 도구의 기반이 되는 필수 패키지다.
설치
xcode-select --install
팝업 창이 뜨면 “설치” 버튼을 클릭한다. 약 5-10분 소요된다.
설치 확인
xcode-select -p
# 출력: /Library/Developer/CommandLineTools
gcc --version
# 출력: Apple clang version ...
포함된 도구:
- GCC, Clang 컴파일러
- Git
- Make
- Python (시스템 기본)
- 각종 Unix 유틸리티
3단계: Homebrew 설치
Homebrew는 macOS의 사실상 표준 패키지 관리자다.
설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Apple Silicon (M1/M2/M3) 추가 설정
Apple Silicon 맥에서는 Homebrew가 /opt/homebrew에 설치된다.
# ~/.zshrc 또는 ~/.bash_profile에 추가
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
설치 확인
brew --version
# 출력: Homebrew 4.x.x
기본 사용법
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# 패키지 검색
brew search 패키지명
# 패키지 설치
brew install 패키지명
# 패키지 업데이트
brew update # Homebrew 자체 업데이트
brew upgrade # 모든 패키지 업데이트
brew upgrade 패키지명 # 특정 패키지 업데이트
# 패키지 삭제
brew uninstall 패키지명
# 설치된 패키지 목록
brew list
# 패키지 정보 확인
brew info 패키지명
# 오래된 버전 정리
brew cleanup
Cask (GUI 앱 설치):
다음은 간단한 bash 코드 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# GUI 애플리케이션 설치
brew install --cask visual-studio-code
brew install --cask google-chrome
brew install --cask docker
4단계: iTerm2 설치
기본 터미널보다 훨씬 강력한 기능을 제공한다.
설치
brew install --cask iterm2
추천 설정
1. 색상 테마 설정
Preferences → Profiles → Colors → Color Presets에서 테마 선택.
추천 테마:
- Solarized Dark
- Dracula
- One Dark
- Nord
2. 폰트 설정
개발자용 폰트 설치:
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 실행 예제
brew tap homebrew/cask-fonts
brew install --cask font-fira-code
brew install --cask font-jetbrains-mono
brew install --cask font-hack-nerd-font
Preferences → Profiles → Text → Font에서 설치한 폰트 선택.
3. 단축키 설정
Preferences → Keys → Hotkey에서 전역 단축키 설정 (예: ⌥Space).
4. Split Panes (화면 분할)
- 수평 분할:
⌘D - 수직 분할:
⌘⇧D - 패널 이동:
⌘⌥ 방향키
5. Natural Text Editing
Preferences → Profiles → Keys → Key Mappings → Presets → Natural Text Editing 선택.
이제 ⌥←, ⌥→로 단어 단위 이동이 가능하다.
5단계: Zsh 및 Oh My Zsh 설정
macOS Catalina(10.15)부터 Zsh가 기본 셸이다.
Oh My Zsh 설치
Zsh를 더 편리하게 사용할 수 있는 프레임워크다.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
추천 플러그인
~/.zshrc 파일을 열어 플러그인을 추가한다.
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
docker
kubectl
npm
node
python
vscode
)
플러그인 설치:
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# zsh-autosuggestions (명령어 자동 완성)
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/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
Powerlevel10k 테마 (선택)
더 예쁘고 정보가 많은 프롬프트를 원한다면:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
~/.zshrc에서 테마 변경:
ZSH_THEME="powerlevel10k/powerlevel10k"
터미널 재시작 후 설정 마법사가 실행된다.
유용한 Alias 추가
~/.zshrc 파일에 추가:
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# 자주 쓰는 명령어 단축
alias ll='ls -lah'
alias la='ls -A'
alias l='ls -CF'
# Git 단축
alias gs='git status'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline --graph --all'
# 디렉토리 이동
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# 개발 서버
alias dev='npm run dev'
alias build='npm run build'
# Docker
alias dps='docker ps'
alias dimg='docker images'
alias dstop='docker stop $(docker ps -q)'
# 네트워크
alias myip='curl ifconfig.me'
alias ports='lsof -i -P -n | grep LISTEN'
# 파일 검색
alias f='find . -name'
# 프로세스
alias psg='ps aux | grep'
변경사항 적용:
source ~/.zshrc
6단계: 개발 언어 및 런타임 설치
Node.js (nvm 사용 권장)
여러 Node.js 버전을 관리할 수 있다.
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# nvm 설치
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# ~/.zshrc에 자동으로 추가됨
source ~/.zshrc
# 최신 LTS 버전 설치
nvm install --lts
# 설치 확인
node --version
npm --version
# 특정 버전 설치
nvm install 18
nvm install 20
# 버전 전환
nvm use 20
# 기본 버전 설정
nvm alias default 20
전역 패키지 설치:
npm install -g yarn pnpm typescript ts-node
npm install -g eslint prettier
npm install -g nodemon pm2
Python (pyenv 사용 권장)
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# pyenv 설치
brew install pyenv
# ~/.zshrc에 추가
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
# Python 설치
pyenv install 3.12.0
pyenv global 3.12.0
# 설치 확인
python --version
pip --version
필수 패키지:
다음은 간단한 bash 코드 예제입니다. 에러 처리를 통해 안정성을 확보합니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
pip install --upgrade pip
pip install virtualenv pipenv poetry
pip install black flake8 mypy
pip install requests numpy pandas
Ruby (rbenv 사용 권장)
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
brew install rbenv
# ~/.zshrc에 추가
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
source ~/.zshrc
# Ruby 설치
rbenv install 3.3.0
rbenv global 3.3.0
ruby --version
Go
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
brew install go
# ~/.zshrc에 추가
echo 'export GOPATH=$HOME/go' >> ~/.zshrc
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.zshrc
source ~/.zshrc
go version
Rust
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# ~/.zshrc에 자동으로 추가됨
source ~/.zshrc
rustc --version
cargo --version
Java (SDKMAN 사용 권장)
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# SDKMAN 설치
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
# Java 설치
sdk install java
# 특정 버전 설치
sdk install java 17.0.9-tem
sdk install java 21.0.1-tem
# 버전 전환
sdk use java 21.0.1-tem
java --version
7단계: Git 설정
Git 사용자 정보 설정
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
기본 브랜치명 변경
git config --global init.defaultBranch main
에디터 설정
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# VS Code를 기본 에디터로
git config --global core.editor "code --wait"
# Vim을 기본 에디터로
git config --global core.editor "vim"
유용한 Git 설정
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# 색상 활성화
git config --global color.ui auto
# 자동 줄바꿈 처리
git config --global core.autocrlf input
# 대소문자 구분
git config --global core.ignorecase false
# Pull 전략 (rebase)
git config --global pull.rebase true
# 기본 push 동작
git config --global push.default current
# Diff 도구
git config --global diff.tool vscode
git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE'
# Merge 도구
git config --global merge.tool vscode
git config --global mergetool.vscode.cmd 'code --wait $MERGED'
SSH 키 생성 (GitHub/GitLab용)
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# SSH 키 생성
ssh-keygen -t ed25519 -C "[email protected]"
# SSH 에이전트 시작
eval "$(ssh-agent -s)"
# SSH 키 추가
ssh-add ~/.ssh/id_ed25519
# 공개 키 복사 (GitHub에 등록)
pbcopy < ~/.ssh/id_ed25519.pub
GitHub → Settings → SSH and GPG keys → New SSH key에 붙여넣는다.
연결 테스트:
ssh -T [email protected]
# 출력: Hi username! You've successfully authenticated...
GPG 서명 설정 (선택)
커밋에 서명을 추가하면 “Verified” 배지가 표시된다.
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# GPG 설치
brew install gnupg
# GPG 키 생성
gpg --full-generate-key
# 키 ID 확인
gpg --list-secret-keys --keyid-format=long
# Git에 GPG 키 등록
git config --global user.signingkey YOUR_KEY_ID
# 모든 커밋에 서명
git config --global commit.gpgsign true
# GPG 공개 키 내보내기
gpg --armor --export YOUR_KEY_ID | pbcopy
GitHub → Settings → SSH and GPG keys → New GPG key에 붙여넣는다.
8단계: 필수 개발 도구 설치
에디터 & IDE
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# Visual Studio Code
brew install --cask visual-studio-code
# JetBrains Toolbox (IntelliJ, PyCharm 등)
brew install --cask jetbrains-toolbox
# Sublime Text
brew install --cask sublime-text
# Vim (최신 버전)
brew install vim
# Neovim
brew install neovim
VS Code 필수 확장:
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 터미널에서 VS Code 실행 가능하게
code --install-extension ms-vscode.vscode-typescript-next
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscode
code --install-extension eamodio.gitlens
데이터베이스 도구
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# PostgreSQL
brew install postgresql@16
brew services start postgresql@16
# MySQL
brew install mysql
brew services start mysql
# Redis
brew install redis
brew services start redis
# MongoDB
brew tap mongodb/brew
brew install mongodb-community
brew services start mongodb-community
# GUI 도구
brew install --cask tableplus
brew install --cask dbeaver-community
Docker
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 실행 예제
brew install --cask docker
# Docker 실행 후 터미널에서 확인
docker --version
docker-compose --version
Docker 자동 시작 설정:
Docker Desktop → Preferences → General → “Start Docker Desktop when you log in” 체크.
API 테스트 도구
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# Postman
brew install --cask postman
# Insomnia
brew install --cask insomnia
# HTTPie (CLI)
brew install httpie
버전 관리 GUI
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# GitKraken
brew install --cask gitkraken
# Sourcetree
brew install --cask sourcetree
# GitHub Desktop
brew install --cask github
9단계: 터미널 유틸리티
필수 CLI 도구
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# 현대적인 Unix 도구
brew install bat # cat 대체 (구문 강조)
brew install exa # ls 대체 (색상, 아이콘)
brew install ripgrep # grep 대체 (빠른 검색)
brew install fd # find 대체
brew install fzf # 퍼지 파인더
brew install tldr # man 대체 (간단한 예제)
brew install tree # 디렉토리 구조 표시
brew install htop # top 대체 (시스템 모니터)
brew install ncdu # du 대체 (디스크 사용량)
brew install jq # JSON 파싱
brew install yq # YAML 파싱
Alias 추가 (~/.zshrc):
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
alias cat='bat'
alias ls='exa --icons'
alias ll='exa -lah --icons'
alias grep='rg'
alias find='fd'
Git 관련 도구
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# Git 확장 도구
brew install git-delta # 더 예쁜 diff
brew install gh # GitHub CLI
brew install glab # GitLab CLI
brew install tig # Git TUI
# Git 설정에 delta 추가
git config --global core.pager delta
git config --global interactive.diffFilter 'delta --color-only'
git config --global delta.navigate true
git config --global delta.side-by-side true
GitHub CLI 사용:
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# GitHub 로그인
gh auth login
# PR 생성
gh pr create
# Issue 생성
gh issue create
# Repo 클론
gh repo clone username/repo
클라우드 CLI
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# AWS CLI
brew install awscli
# Google Cloud SDK
brew install --cask google-cloud-sdk
# Azure CLI
brew install azure-cli
# Terraform
brew install terraform
# kubectl (Kubernetes)
brew install kubectl
10단계: 생산성 도구
윈도우 관리
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# Rectangle (무료, 오픈소스)
brew install --cask rectangle
# Magnet (유료, App Store)
# 단축키로 창 크기/위치 조정
Rectangle 추천 단축키:
- 왼쪽 절반:
⌃⌥← - 오른쪽 절반:
⌃⌥→ - 최대화:
⌃⌥↵ - 중앙 정렬:
⌃⌥C
클립보드 관리
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# Maccy (무료, 오픈소스)
brew install --cask maccy
# Alfred (유료, 강력한 기능)
brew install --cask alfred
스크린샷 & 화면 녹화
# CleanShot X (유료, 추천)
# Kap (무료, GIF 녹화)
brew install --cask kap
메뉴바 정리
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# Hidden Bar (무료)
brew install --cask hiddenbar
# Bartender (유료)
brew install --cask bartender
시스템 모니터링
# iStat Menus (유료, 추천)
# Stats (무료, 오픈소스)
brew install --cask stats
11단계: 개발 환경별 추가 설정
웹 개발
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# 브라우저
brew install --cask google-chrome
brew install --cask firefox
brew install --cask brave-browser
# 로컬 개발 서버
brew install nginx
# 데이터베이스 GUI
brew install --cask sequel-ace # MySQL
모바일 개발
iOS:
# Xcode (App Store에서 설치)
# CocoaPods
sudo gem install cocoapods
Android:
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# Android Studio
brew install --cask android-studio
# Android SDK 도구
brew install --cask android-platform-tools
React Native:
npm install -g react-native-cli
brew install watchman
데이터 과학
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# Jupyter
pip install jupyter notebook jupyterlab
# Anaconda
brew install --cask anaconda
DevOps
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# Kubernetes 도구
brew install kubectl kubectx k9s helm
# Terraform
brew install terraform
# Ansible
pip install ansible
# Monitoring
brew install --cask datadog-agent
12단계: 성능 최적화
Spotlight 인덱싱 제외
개발 폴더를 Spotlight 검색에서 제외하면 CPU 사용량이 줄어든다.
System Preferences → Siri & Spotlight → Spotlight Privacy에서 추가:
~/node_modules~/venv~/.pyenv~/.nvm
불필요한 애니메이션 비활성화
아래 코드는 bash를 사용한 구현 예제입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# Dock 애니메이션 끄기
defaults write com.apple.dock launchanim -bool false
# 창 열기/닫기 애니메이션 끄기
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false
# Mission Control 애니메이션 빠르게
defaults write com.apple.dock expose-animation-duration -float 0.1
killall Dock
메모리 관리
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 메모리 정리 (주기적으로 실행)
sudo purge
# 스왑 사용량 확인
sysctl vm.swapusage
Rosetta 2 (Apple Silicon 전용)
일부 x86 앱을 실행하려면 Rosetta 2가 필요하다.
softwareupdate --install-rosetta --agree-to-license
13단계: 보안 설정
방화벽 활성화
System Preferences → Security & Privacy → Firewall → Turn On Firewall
FileVault 암호화
System Preferences → Security & Privacy → FileVault → Turn On FileVault
디스크 전체를 암호화하여 분실 시 데이터 보호.
SSH 보안
~/.ssh/config 파일 생성:
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 실행 예제
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
ServerAliveCountMax 3
권한 설정:
다음은 간단한 bash 코드 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
chmod 600 ~/.ssh/config
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
환경 변수 관리
민감한 정보는 환경 변수로 관리한다.
~/.zshrc에 추가:
아래 코드는 bash를 사용한 구현 예제입니다. 비동기 처리를 통해 효율적으로 작업을 수행합니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# API 키 (예시)
export OPENAI_API_KEY="your-key-here"
export AWS_ACCESS_KEY_ID="your-key-here"
export AWS_SECRET_ACCESS_KEY="your-secret-here"
# 또는 별도 파일로 분리
if [ -f ~/.env ]; then
source ~/.env
fi
.env 파일은 .gitignore에 추가한다.
14단계: 백업 설정
Time Machine
외장 하드나 NAS를 연결하여 자동 백업 설정.
System Preferences → Time Machine → Select Backup Disk
클라우드 백업
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# Mackup (설정 파일 백업)
brew install mackup
# ~/.mackup.cfg 생성
cat > ~/.mackup.cfg << 'EOF'
[storage]
engine = icloud
[applications_to_sync]
vscode
iterm2
git
ssh
EOF
# 백업
mackup backup
# 복원 (새 맥에서)
mackup restore
Dotfiles 관리
설정 파일을 Git으로 관리한다.
다음은 bash를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
mkdir ~/dotfiles
cd ~/dotfiles
# 설정 파일 이동
mv ~/.zshrc ~/dotfiles/zshrc
mv ~/.gitconfig ~/dotfiles/gitconfig
mv ~/.vimrc ~/dotfiles/vimrc
# 심볼릭 링크 생성
ln -s ~/dotfiles/zshrc ~/.zshrc
ln -s ~/dotfiles/gitconfig ~/.gitconfig
ln -s ~/dotfiles/vimrc ~/.vimrc
# Git 저장소 초기화
git init
git add .
git commit -m "Initial dotfiles"
git remote add origin [email protected]:username/dotfiles.git
git push -u origin main
새 맥에서 복원:
git clone [email protected]:username/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh # 심볼릭 링크 생성 스크립트
15단계: 추천 앱
개발 도구
| 앱 | 용도 | 가격 |
|---|---|---|
| VS Code | 코드 에디터 | 무료 |
| iTerm2 | 터미널 | 무료 |
| Docker Desktop | 컨테이너 | 무료 |
| Postman | API 테스트 | 무료 |
| TablePlus | 데이터베이스 GUI | 유료 |
| Fork | Git GUI | 유료 |
생산성
| 앱 | 용도 | 가격 |
|---|---|---|
| Rectangle | 윈도우 관리 | 무료 |
| Maccy | 클립보드 관리 | 무료 |
| Alfred | 런처 | 유료 |
| Notion | 노트 | 무료 |
| Obsidian | 마크다운 노트 | 무료 |
유틸리티
| 앱 | 용도 | 가격 |
|---|---|---|
| Stats | 시스템 모니터 | 무료 |
| Kap | 화면 녹화 | 무료 |
| The Unarchiver | 압축 해제 | 무료 |
| Transmission | 토렌트 | 무료 |
16단계: 자동화 스크립트
전체 설치 스크립트
setup.sh 파일 생성:
다음은 bash를 활용한 상세한 구현 코드입니다. 비동기 처리를 통해 효율적으로 작업을 수행합니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
#!/bin/bash
echo "🚀 macOS 개발 환경 설정 시작..."
# Xcode Command Line Tools
if ! xcode-select -p &> /dev/null; then
echo "📦 Xcode Command Line Tools 설치 중..."
xcode-select --install
read -p "설치 완료 후 Enter를 누르세요..."
fi
# Homebrew
if ! command -v brew &> /dev/null; then
echo "🍺 Homebrew 설치 중..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi
# 기본 도구
echo "🔧 기본 도구 설치 중..."
brew install git curl wget
brew install bat exa ripgrep fd fzf tree htop
brew install jq yq
# 개발 언어
echo "💻 개발 언어 설치 중..."
brew install nvm pyenv rbenv go rust
# 앱
echo "📱 애플리케이션 설치 중..."
brew install --cask visual-studio-code
brew install --cask iterm2
brew install --cask docker
brew install --cask rectangle
brew install --cask maccy
# Oh My Zsh
if [ ! -d "$HOME/.oh-my-zsh" ]; then
echo "🎨 Oh My Zsh 설치 중..."
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
fi
# 플러그인
echo "🔌 Zsh 플러그인 설치 중..."
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions 2>/dev/null
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting 2>/dev/null
echo "✅ 설치 완료!"
echo "📝 ~/.zshrc를 편집하여 플러그인을 활성화하세요."
echo "🔄 터미널을 재시작하세요."
실행:
chmod +x setup.sh
./setup.sh
Brewfile로 관리
설치된 패키지를 파일로 저장하여 다른 맥에서 재현할 수 있다.
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 현재 설치된 패키지 목록 저장
brew bundle dump --file=~/Brewfile
# 다른 맥에서 복원
brew bundle --file=~/Brewfile
Brewfile 예시:
다음은 ruby를 활용한 상세한 구현 코드입니다. 각 부분의 역할을 이해하면서 코드를 살펴보시기 바랍니다.
# Brewfile
tap "homebrew/cask-fonts"
# CLI 도구
brew "git"
brew "node"
brew "python"
brew "go"
brew "rust"
brew "bat"
brew "exa"
brew "ripgrep"
brew "fzf"
# GUI 앱
cask "visual-studio-code"
cask "iterm2"
cask "docker"
cask "rectangle"
cask "google-chrome"
# 폰트
cask "font-fira-code"
cask "font-jetbrains-mono"
17단계: 문제 해결
Homebrew 권한 오류
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# Homebrew 디렉토리 소유권 변경
sudo chown -R $(whoami) /usr/local/Cellar /usr/local/Homebrew
# Apple Silicon
sudo chown -R $(whoami) /opt/homebrew
Python 버전 충돌
# 시스템 Python 사용 안 함
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init -)"; fi' >> ~/.zshrc
Node.js 권한 오류
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# npm 전역 패키지 권한 문제 해결
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
포트 충돌
아래 코드는 bash를 사용한 구현 예제입니다. 코드를 직접 실행해보면서 동작을 확인해보세요.
# 특정 포트를 사용하는 프로세스 찾기
lsof -i :3000
# 프로세스 종료
kill -9 PID
Xcode Command Line Tools 재설치
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
체크리스트
기본 설정:
- Xcode Command Line Tools 설치
- Homebrew 설치
- iTerm2 설치 및 설정
- Oh My Zsh 설치
- Git 사용자 정보 설정
- SSH 키 생성 및 GitHub 등록
개발 도구:
- 주 언어 런타임 설치 (Node.js, Python 등)
- 에디터/IDE 설치 (VS Code, IntelliJ 등)
- Docker 설치
- 데이터베이스 설치
- API 테스트 도구 설치
생산성:
- 윈도우 관리 도구 (Rectangle)
- 클립보드 관리 도구 (Maccy)
- 시스템 모니터 (Stats)
- 유용한 CLI 도구 (bat, exa, ripgrep 등)
백업:
- Time Machine 설정
- Dotfiles Git 저장소 생성
- Brewfile 생성
자주 묻는 질문
Q. Homebrew 설치 위치가 다른 이유는?
Intel 맥은 /usr/local, Apple Silicon 맥은 /opt/homebrew에 설치된다. 아키텍처 차이 때문이다.
Q. Oh My Zsh 없이 Zsh만 써도 되나?
가능하다. 하지만 Oh My Zsh는 플러그인, 테마, 설정을 쉽게 관리할 수 있어서 초보자에게 추천한다.
Q. nvm, pyenv를 꼭 써야 하나?
프로젝트마다 다른 버전이 필요한 경우가 많다. 버전 관리자를 쓰면 쉽게 전환할 수 있다.
Q. Rosetta 2는 언제 필요한가?
Apple Silicon 맥에서 Intel 전용 앱을 실행할 때 필요하다. Docker, 일부 Node 네이티브 모듈 등.
Q. 맥북 성능이 느려졌다면?
Spotlight 인덱싱, Chrome 탭, Docker 컨테이너, Node 프로세스를 확인한다. Activity Monitor에서 CPU/메모리 사용량을 체크한다.
Q. 새 맥으로 환경을 옮기려면?
Brewfile, Dotfiles, Mackup을 사용하면 대부분 자동화할 수 있다. Time Machine으로 전체 복원도 가능하다.
다음 단계
참고 자료
macOS 개발 환경 설정은 한 번만 제대로 해두면 생산성이 크게 향상된다. 위 가이드를 따라하면 30분 안에 완성도 높은 개발 환경을 구축할 수 있다.