개발자를 위한 OS X(>= Catalina) 설정


https://www.sangkon.com/osx-setting-for-developer/



새로운 마음으로 시작하고 싶은 개발자들을 위한 작은 가이드 입니다. 백업부터 투철하게 하세요. AWS 인증키, 1password 백업파일 등등 그리고 Dropbox 동기화가 최신으로 되어 있는지도 확인하세요. 포멧은 돌아오지 않아요. 마지막으로 emacs 설정 파일은 github에 올려두셨죠? 이제 시작해보죠!

Clean install을 위한 USB 만들기

  • Catalina(19A583)를 Mac App Store에서 다운로드 합니다.

  • App > Other > Disk Utility를 실행해서, External에 표기된 MyVolume를 깔끔하게 지워(Erase)주세요. 설치 USB의 경우 APFS 파일 포멧을 사용하시면 부팅이 안됩니다. 그러니 레거시한 Mac OS Extended (Journaled)로 USB를 초기화합니다(MyVolume은 사용하시는 USB의 레이블명 입니다).

  • Terminal(혹은 iTerm2 등)을 실행하고 sudo /Applications/Install\ macOS\ Catalina.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume를 실행합니다. createinstallmedia에 관한 내용은 링크를 참고하세요.

    • sudo는 관리자 권한이 필요하단 뜻으로 해당 명령어를 실행하면 시스템의 비밀번호를 입력해야 합니다.
    • --volume은 생성하고자 하는 USB의 경로(일반적으로 /Volumes/ 아래에 USB의 레이블명으로 존재합니다)를 적어줍니다.

시스템 설정

제가 개인적으로 사용하는 시스템 설정입니다. 간략하게 해당 설정을 적용/미적용 하는 이유를 적어두었으니 참고하시면 좋을 듯 합니다.

시스템 설정(System Preferences)

  • General > Appearance > Dark
    • 전 다양한 회색톤을 좋아하기 때문에 Dark를 선택하였습니다. 밝은색을 원하시면 Light를 선택하세요.
  • Dock > Show recent applications in Dock
    • 최근 사용한 애플리케이션을 Dock에 표시하는 옵션으로 전 사용하지 않습니다.
  • Mission Control > Automatically rearrange Spaces based on most recent use
    • Space를 변경할 때, 최근에 사용된 Space를 중심으로 배치되는데 개발할 때 좌우 Space를 고정해서 사용하는 것을 선호하기 때문에 사용하지 않습니다.
  • Siri > Enable Ask Siri
    • Siri가 아직 한국어에 능숙하지 않아서, 해당 옵션을 사용하지 않음으로 설정합니다.
  • Language & Region > Preferred languages > English한국어
    • English를 최상단으로 지정하고 한국어를 두 번째 순서로 지정합니다. 시스템에서 발생하는 에러 등을 영문으로 확인하기 위해서 시스템 언어는 English로 사용합니다.
  • Accessibility > Mouse & Trackpad > Trackpad options... > Enable dragging : three finger drag
    • 세 손가락을 사용해서 이동을 원하시면 해당 옵션을 선택하세요.
  • Security & Privacy > General > Show a message when the screen is locked
    • 분실을 대비하여 이름, 이메일 혹은 연락처 등을 적어줍니다.
  • Security & Privacy > FileVault
    • 속도와 별개로 사용하는 것을 추천합니다.
  • Security & Privacy > Privacy > Location Services
    • 위치 정보를 허용할 App을 선택하고, 상대 메뉴바에 위치정보 사용시 표시될 수 있도록 옵션을 사용합니다.
  • Bluetooth > Show Bluetooth in menu bar
    • 메뉴바에서 블루투스 디바이스를 선택할 수 있도록 선택합니다.
  • Sound > Show volume in menu bar
    • 메뉴바에서 볼륨을 조절할 수 있도록 선택합니다.
  • Keyboard > Modifier Keys.. > Caps Lock
    • Emacs를 사용하신다면 Control로 변경하는게 훨씬 편합니다.
  • Keyboard > Text > Replace 항목 모두 삭제하고 왼쪽에 있는 모든 선택 항목을 해제
    • 개발관련 업무를 진행중이시면 Use smart quotes and dashes를 해제하시면 사소한 실수를 줄일 수 있으며, 자동 변경과 관련된 모든 옵션은 사용하지 않습니다.
  • Trackpad > Point & Click > Tab to click
    • 클릭에 너무 많은 힘을 들이고 싶지 않으시면 해당 옵션을 선택하시고, 아래쪽에 위치한 Silent clicking를 선택하시면 소리도 정숙해집니다.
  • Sharing > Computer Name
    • 터미널에 표기되거나 공유할 때 해당 컴퓨터의 이름을 설정합니다.

한/영 변환키를 Shift+Space로 변경하는 방법

  • @adhrinae님이 트윗으로 좋은 방법 알려주셔서 해당 항목을 수정합니다. 아래 방법을 사용해보세요!

plist 변경하지 않고 변경할 키 입력하는 창에서 Fn+Shift+Space를 누르면 Shift+Space로 인식됩니다. 작년즈음부터 이런 방식으로 Shift+Space 한영전환 설정중입니다

  • 아래는 설정 파일을 직접 수정하는 것으로 맥에서 사용하는 Fn키가 없는 키보드를 사용중인 iMac 사용자의 경우 아래 방법으로 Shift+Space 한영전환이 가능합니다.
    • plist를 수정하기 위해서 가장 좋은 방법은 Xcode를 설치하는 것 입니다(여타의 다른 소프트웨어를 사용하셔도 됩니다만 개인적으로 Xcode를 권장합니다).
    • Finder에서 Go > Go to Folder(Command + Shift + G)를 선택하여 ~/Library/Preferences/com.apple.symbolichotkeys.plist를 선택합니다.
    • 해당 파일의 내용 중에서 <key>61</key>을 찾아서 <integer>131072</integer>로 변경하고 파일을 저장합니다.
    • 저장 후에 맥을 재시동하거나 사용자 계정에 다시 로그인하면 변경사항이 적용됩니다.

Finder(파인더) 설정

  • 파인더(Finder)를 실행하고, Finder > Preferences를 실행합니다.
    • General > New Finder windows show
      • 자신의 홈 폴더를 선택합니다.
    • Sidebar 에서 필요하거나 불필요한 폴더를 선택해서 Finder 왼쪽의 즐겨찾기 목록을 수정하세요.
    • Advanced > Show all filename extensions
      • 확장자를 확인해야 될 일이 많으시면 해당 옵션을 선택합니다.
    • 특정 폴더의 정렬을 변경하고 싶다면 View > Show View Options을 선택하여, Arrange By와 Sort By를 설정하면 됩니다.

brew 및 터미널 설정

XCode 설치

  • App Sotre에서 Xcode를 설치하세요.

Command Line Tools 설치

  • 만약, Xcode를 설치하지 않으시고 brew를 설치하실 생각이라면 터미널에서 xcode-select --install로 필수 도구를 설치하세요.

brew 설치

  • 터미널에서 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"를 실행하여, brew를 설치합니다.

필수 프로그램 설치

  • 터미널에 brew cask를 실행하여, cask를 설치합니다.
  • 몇가지 필수적인 것들을 설치합니다.
    • brew cask install iterm2 google-chrome visual-studio-code
    • brew cask install homebrew/cask-fonts/font-cascadia
    • brew cask install homebrew/cask-fonts/font-d2coding

iterm2 설정

  • brew cask를 사용하여 iterm2를 설치(brew cask install iterm2)합니다.
  • iterm2의 컬러 테마는 이 곳에서 다운로드하여 설치합니다.
    • Preferences > Profiles > Colors > Color Presets > Import... 를 선택해서 다운로드 받은 컬러 테마의 압축 폴더 중에서 schemes에 있는 설정 파일을 선택하시면 됩니다.
  • iterm2 > Preferences에서 몇가지 환경설정을 합니다.
    • Appearance > Theme : Dark를 선택합니다.
    • Appearance > Windows > Hide scrollbars : 사용함으로 선택합니다.
    • Appearance > Windows > Show line under title bar when the tab bar is not visible : 사용하지 않습니다.
    • Profiles > Session > Status bar enabled: CPU나 RAM 등의 정보를 터미널에 표시하는 것으로 필요한 것을 추가해서 사용하세요.
    • Advanced > Height of top and bottom margins in terminal panes은 15로 설정합니다.
    • Advanced > Width of left and right margins in terminal panes은 15로 설정합니다.

Zsh 설정

  • iterm2에서 brew install zsh-completions fasd를 설치합니다.
  • oh-my-zsh을 설치(sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)") 합니다.
  • zsh 플러그인을 설치합니다.
    • git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
    • git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
    • ~/.zshrc 파일에 plugins 항목에 gitzsh-syntax-highlightingzsh-autosuggestionsfasd 를 설치합니다.
    • theme는 이 곳을 참고하세요.
      • 저는 개인적으로 agnoster를 사용합니다. Spaceship ZSH등과 같은 테마도 있으니 검색해서 자신만의 테마를 선택해보세요.

필요한 개발 환경 설정

Ruby

  • rbenv를 설치해서 Ruby 버전을 관리하도록 하겠습니다.
brew install rbenv
  • rbenv를 쉽게 사용할 수 있도록 .zshrc에 플러그인을 등록합니다. 앞서 oh-my-zsh을 설치하셨으면 해당 플러그인은 별도 설치 없이 사용 가능합니다. oh-my-zsh이 설치 되어 있지 않다면, rbenv 메뉴얼을 참조하세요.
$ code .zshrc

// rbenv를 추가하세요.
plugins=(
    git
    zsh-syntax-highlighting
    zsh-autosuggestions
    fasd
    rbenv 
)
  • rbenv를 사용해서 Ruby를 설치하도록 하겠습니다.
rbenv install 2.6.5
rbenv rehash
rbenv global 2.6.5

Python

  • pyenv를 설치해서 Python 버전을 관리하도록 하겠습니다.
brew install pyenv
  • pyenv를 쉽게 사용할 수 있도록 .zshrc에 플러그인을 등록합니다. 앞서 oh-my-zsh을 설치하셨으면 해당 플러그인은 별도 설치 없이 사용 가능합니다. oh-my-zsh이 설치 되어 있지 않다면, pyenv 메뉴얼을 참조하세요.
$ code .zshrc

// pyenv를 추가하세요.
plugins=(
    git
    zsh-syntax-highlighting
    zsh-autosuggestions
    fasd
    rbenv 
    pyenv
)
  • pyenv 사용해서 Python을 설치하도록 하겠습니다.
pyenv install 3.7.4
pyenv rehash
pyenv global 3.7.4
  • python2를 독립적으로 설치하고 싶으시면 아래 명령어로 python2를 설치할 수 있습니다.
$ brew install python@2
$ pip2 list
$ python2

Node.js

  • nvm를 설치해서 Node.js 버전을 관리하도록 하겠습니다.
$ cd
$ git clone https://github.com/nvm-sh/nvm.git .nvm
  • nvm를 쉽게 사용할 수 있도록 .zshrc에 플러그인을 등록합니다. 앞서 oh-my-zsh을 설치하셨으면 해당 플러그인은 별도 설치 없이 사용 가능합니다. oh-my-zsh이 설치 되어 있지 않다면, nvm 메뉴얼을 참조하세요.
$ code .zshrc

// nvm를 추가하세요.
plugins=(
    git
    zsh-syntax-highlighting
    zsh-autosuggestions
    fasd
    rbenv 
    pyenv
    nvm
)
  • nvm을 사용해서 Node.js LTS 버전을 설치합니다.
$ nvm install --lts
$ nvm list

Java(>= 13) 설치

# OpenJDK 13
brew cask install java

Haskell

brew install stack
stack ghci