macOS

macOS Tahoe 개발환경 세팅 가이드

Mac을 새로 샀거나 macOS Tahoe로 업그레이드했다면? Homebrew, Ghostty, tmux, fnm, pyenv까지 개발자 필수 도구를 한 번에 세팅하는 방법을 정리했습니다.

· 3분 읽기 ·
macOS Tahoe 개발환경 세팅 가이드

macOS Tahoe, 새 Mac — 처음 할 일은 개발 도구 세팅이다. 이 글 하나로 끝낸다.

이 글에서 다루는 내용

  • Homebrew 설치 및 기본 사용법
  • Ghostty로 터미널 환경 교체하기
  • tmux 설치와 플러그인(TPM) 세팅
  • fnm으로 Node.js 버전 관리하기
  • pyenv로 Python 버전 관리하기

Homebrew — 모든 것의 시작

macOS에는 공식 패키지 매니저가 없다. 그 공백을 채워주는 게 Homebrew다. 개발 도구든 GUI 앱이든 brew 명령 하나로 설치·업데이트·삭제가 가능하고, 이후 소개할 도구들도 모두 Homebrew를 통해 설치한다.

터미널을 열고 아래 명령을 붙여넣는다.

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

설치가 끝나면 셸에 PATH를 추가해야 한다. Apple Silicon Mac이라면 Homebrew가 /opt/homebrew에 설치되는데, 기본 PATH에는 이 경로가 없다.

# ~/.zshrc 또는 ~/.zprofile에 추가
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
source ~/.zprofile

Intel Mac이라면 경로가 /usr/local이므로 별도 추가 없이 바로 사용 가능하다.

# 정상 설치 확인
brew --version

brew doctor

설치 직후 brew doctor를 실행해보자. 환경 문제를 미리 진단해줘서 나중에 생길 수 있는 이상한 오류를 예방할 수 있다.


Ghostty — 터미널을 갈아치울 시간

기본 Terminal.app도 나쁘지 않지만, Ghostty를 써본 뒤로는 돌아가기 어렵다. GPU 렌더링 기반이라 스크롤과 출력이 눈에 띄게 빠르고, 설정 파일 하나로 모든 옵션을 관리할 수 있다. macOS 네이티브 앱이라 Tahoe의 새로운 UI 스타일과도 잘 맞는다.

brew install --cask ghostty

설치 후 처음 실행하면 설정 파일 위치를 묻는 경우가 있다. Ghostty의 설정 파일은 ~/.config/ghostty/config다.

mkdir -p ~/.config/ghostty
touch ~/.config/ghostty/config

기본 설정 예시다. 취향에 맞게 수정하면 된다.

# ~/.config/ghostty/config

font-family = "JetBrains Mono"
font-size = 14

theme = "catppuccin-mocha"

# 창 여백 (읽기 편한 여백)
window-padding-x = 12
window-padding-y = 10

# 탭 바 숨김 (tmux를 쓴다면 불필요)
macos-titlebar-style = hidden

Ghostty 테마

Ghostty는 테마를 내장하고 있어서 별도 테마 파일 다운로드 없이 theme = "테마명" 한 줄로 바꿀 수 있다. ghostty +list-themes로 전체 목록 확인 가능.


tmux — 터미널 세션을 영구적으로

터미널 창을 닫아도 작업이 사라지지 않길 바란다면 tmux가 답이다. 세션·윈도우·패널을 자유롭게 나눠 쓸 수 있고, 플러그인 생태계도 탄탄하다.

설치

brew install tmux

TPM — 플러그인 매니저 설치

tmux 플러그인은 수동으로 관리하기 번거롭다. TPM(Tmux Plugin Manager)을 먼저 설치하자.

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

.tmux.conf 설정

~/.tmux.conf 파일을 만들고 아래 내용을 붙여넣는다.

# ~/.tmux.conf

# prefix 키 변경 (Ctrl+b → Ctrl+a)
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix

# 마우스 지원 활성화
set -g mouse on

# 창 번호 1부터 시작
set -g base-index 1
setw -g pane-base-index 1

# 색상 설정
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"

# 플러그인 목록
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'   # 세션 저장/복원
set -g @plugin 'tmux-plugins/tmux-continuum'   # 자동 저장

# tmux-continuum 설정
set -g @continuum-restore 'on'   # tmux 시작 시 세션 자동 복원
set -g @continuum-save-interval '15'  # 15분마다 자동 저장

# TPM 초기화 (항상 마지막 줄에)
run '~/.tmux/plugins/tpm/tpm'

설정을 적용하고 플러그인을 설치한다.

# 설정 적용
tmux source ~/.tmux.conf

# tmux 실행 후 플러그인 설치
tmux new -s main
# tmux 안에서: prefix + I (대문자 I)

tmux-resurrect 단축키

  • 저장: prefix + Ctrl+s
  • 복원: prefix + Ctrl+r

tmux-continuum이 자동 저장을 담당하지만, 중요한 작업 전에는 수동으로 저장해두는 습관을 들이자.


fnm — Node.js 버전 관리

Node.js를 직접 설치하면 버전 전환이 번거롭고, 프로젝트마다 요구하는 버전이 달라 충돌이 생기기 쉽다. fnm(Fast Node Manager)은 이름처럼 빠르고, .node-version 파일을 자동으로 읽어 버전을 전환해준다.

설치

brew install fnm

설치 후 셸 설정 파일에 초기화 코드를 추가한다.

# ~/.zshrc에 추가
eval "$(fnm env --use-on-cd --shell zsh)"

터미널을 재시작하거나 source ~/.zshrc를 실행한 뒤 Node.js를 설치한다.

# LTS 버전 설치 및 기본값 설정
fnm install --lts
fnm default lts-latest

# 특정 버전 설치
fnm install 20
fnm install 22

# 버전 전환
fnm use 20

# 설치된 버전 목록
fnm list

프로젝트 루트에 .node-version 파일을 두면 해당 디렉토리에 진입할 때 자동으로 버전이 전환된다.

# 현재 디렉토리에 .node-version 파일 생성
echo "20" > .node-version

pyenv — Python 버전 관리

macOS에는 시스템 Python이 내장되어 있지만, 이 Python을 직접 건드리는 건 좋지 않다. pyenv를 통해 Python 버전을 프로젝트별로 격리해 관리하자.

설치

brew install pyenv

셸 설정 파일에 초기화 코드를 추가한다.

# ~/.zshrc에 추가
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

source ~/.zshrc 후 Python을 설치한다.

# 설치 가능한 버전 목록 확인
pyenv install --list | grep "  3\."

# 최신 안정 버전 설치 (예: 3.13.x)
pyenv install 3.13.3

# 전역 기본값 설정
pyenv global 3.13.3

# 특정 프로젝트에서만 버전 지정
cd my-project
pyenv local 3.11.9   # .python-version 파일 생성

pyenv 주의사항

pyenv로 설치한 Python과 pip는 시스템 Python과 완전히 분리된다. python 명령이 pyenv 버전을 가리키는지 which python으로 확인하자. /Users/username/.pyenv/shims/python이 나와야 정상이다.


전체 설치 순서 요약

처음부터 따라 하는 경우라면 아래 순서를 참고하자.

flowchart TD
    A[Homebrew 설치] --> B[Ghostty 설치]
    A --> C[tmux + TPM 설치]
    A --> D[fnm 설치]
    A --> E[pyenv 설치]
    B --> F[Ghostty 설정 파일 작성]
    C --> G[.tmux.conf 작성 및 플러그인 설치]
    D --> H[.zshrc에 fnm init 추가 + Node.js 설치]
    E --> I[.zshrc에 pyenv init 추가 + Python 설치]

셸 설정 파일(~/.zshrc)에 추가되는 내용을 한 곳에 모아두면 나중에 관리하기 편하다.

# ~/.zshrc — 개발 도구 초기화 모음

# Homebrew (Apple Silicon)
eval "$(/opt/homebrew/bin/brew shellenv)"

# fnm
eval "$(fnm env --use-on-cd --shell zsh)"

# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

마치며

Homebrew 하나만 제대로 잡아두면 나머지는 생각보다 빠르게 끝난다. 각 도구를 설치한 뒤에는 꼭 새 터미널을 열거나 source ~/.zshrc로 설정을 적용하는 걸 잊지 말자. 설치는 됐는데 명령어가 안 먹힌다면 열에 아홉은 PATH 문제다.

다음에는 이 환경 위에서 Zsh 플러그인(zsh-autosuggestions, zsh-syntax-highlighting)과 Starship 프롬프트를 얹는 방법도 다뤄볼 예정이다.