나만의 개발 환경 설정

macOS 환경에서 개발할 때 높은 생산성과 이쁜 디자인을 갖춘 환경을 만들어보자.

icon System Preferences

Mission Control

  • Mission Control에서 Automatically rearrance Spaces based on most recent use를 체크 해제한다.
    • 미션 컨트롤 창 순서가 의도치 않게 바뀌는 경우를 막는다.

Language & Region

  • Language & Region에서 Preferred languages의 순서를 English 최상위로 설정한다. 드래그로 순서 조절 가능하다.
    • 간혹 locale 설정 때문에 오류가 발생하는 걸 방지해주고 영어 오류 메시지가 떠서 구글 검색에 용이하다.

Security & Privacy

  • Security & Privacy의 General 탭에 가면 Require password가 있다. 이를 5초로 설정했다.
    • 잠자기 모드나 화면 보호기가 켜지면 패스워드를 요구하기까지 걸리는 시간을 의미한다.
  • Show a message when the screen is locked에서 Set Lock Message에다가 연락처와 이름 등을 작성한다.
    • 혹여 분실했을 경우 연락받을 수 있게 하기 위함이다.

Keyboard

  • Keyboard에서 Text 탭에 가서 모든 자동변경 옵션을 체크 해제한다.
    • Correct spelling automatically
    • Capitalize words automatically
    • Add period with double-space
    • Use smart quotes and dashes
    • 코드 작성 및 붙여넣기 할 때 컴퓨터가 의도치 않게 변경하는걸 방지한다.
  • Keyboard에서 Shortcut 탭에 가서 Use Keyboard navigation to move focust between controls을 체크한다.
    • 링크나 버튼을 마우스 대신 키보드의 TabShift+Tab으로 이동할 수 있다.

Trackpad

  • Trackpad의 Point & Click 탭에서 Tab to click을 체크한다.
    • 트랙패드에서 힘줘서 누르지 않고 살짝 터치만해도 클릭된다.

Accessibility

  • Accessibility의 Pointer Control로 가면 Mouse & Trackpad 탭이 있는데 여기서 Trackpad Options…에 Enable dragging three finger drag 설정을 해준다.
    • 드래그 시 트랙패드를 계속 누를 필요 없고 세 손가락으로 할 수 있다.

icon Finder Preferences

Finder 앱을 열고 Cmd + ,를 누르면 Finder Preference 창이 열린다.

Finder 폴더 기본 설정

  • General 탭에서 New Finder windows show를 home directory로 설정한다.
    • Finder를 새로 킬 때마다 홈디렉토리가 열린다.

파일 확장자 표시

  • Advanced 탭에서 Show all filename extensions를 체크한다.

다운로드 폴더 설정

Downloads 폴더에서 Cmd + J를 누른다.

  • Group By는 Date Added, Sort By는 Name으로 설정
    • 파일목록을 저장한 날짜별로 그룹화하고 그룹 내에서는 파일 이름으로 정렬한다.

icon HomeBrew

HomeBrew는 프로그램 패키지를 관리해주는 프로그램이다. 각종 패키지를 다운로드받기 위해 먼저 HomeBrew를 다운로드 받는다.

Homebrew 홈페이지 / brew 명령어 / brew 패키지

아래의 명령어를 터미널에 입력해서 설치한다.

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

잘 설치됐는지 확인한다.

# brew test
$ brew doctor
Your system is ready to brew.

icon Xcode

Homebrew를 설치하면 자동으로 Xcode가 설치된다.

macOS는 gcc, make와 같은 컴파일 도구가 설치되어 있지 않아 명령어 도구(Command Line Tools)를 설치해야 한다. Xcode 전체를 설치할 필요 없고 명령어 도구만 따로 설치한다. Xcode 홈페이지

아래는 혹~시 Homebrew 설치 안해을 경우 따로 Xcode를 설치하는 방법이다.

$ xcode-select --install

잘 설치됐는지 확인한다.

# gcc test
$ gcc
clang: error: no input files

icon git

macOS에 기본으로 git이 설치되어 있지만, 최신버전으로 새롭게 설치해줘야 한다. 이때도 brew를 이용한다. 더불어 Git Large File Storage의 약자인 git-lfs도 같이 설치한다. 이거는 용량이 큰 바이너리 파일을 git으로 관리할 때 유용하다.

$ brew install git git-lfs

설치가 완료되면 개인정보 설정과 한글 파일명 처리를 위한 추가설정을 해준다.

$ git config --global user.name "Your Name"
$ git config --global user.email "you@your-domain.com"
$ git config --global core.precomposeunicode true
$ git config --global core.quotepath false

icon zsh

macOS Catalina 부터는 기본 shell이 zsh이다. 이전 OS버전에서는 기본이 bash이었다. zshbash에 추가적인 명령어를 추가하고 편의성을 개선한 새로운 shell이다. 한가지 예로 git 폴더 상태를 관리해주고 터미널의 상태를 나타내주는 기능이 있다.

현재 shell이 뭔지는 아래 명령어를 치면 나온다.

$ echo $0

여기선 zsh를 사용할 것이다.

oh my zsh

oh my zshzsh를 좀더 편리하게 이용하게 도와주는 일종의 zsh용 plugin이다. oh my zsh를 설치하면 zsh도 같이 설치된다.

# curl을 먼저 설치한다.
$ brew install curl
# oh my zsh를 설치한다.
$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

설치가 끝나면 ~/.oh-my-zsh에서 기본 테마와 플러그인을 확인할 수 있다.

oh my zsh가 제공하는 기본 plugin은 여기 나와있다.

oh my zsh를 설치하고 난 후, 터미널에 $ open ~/.zshrc를 치면 아래와 같은 텍스트파일을 볼 수 있다. 이곳에서 zsh와 관련한 여러가지 설정을 해준다.

1

(참고) zshrc에서 rc는 run command의 약자란다.

추가 plugin 설치

기본 plugin 외에 추가적으로 plugin을 설치한다.

  • zsh-syntax-highlighting: 명령어 강조
  • zsh-autosuggestions: 자동완성
  • alias-tips: 정의한 alias를 알려주는 도구
  • fzf: 강력하고 빠른 fuzzy finder 도구이다. 원하는 파일이나 히스토리를 찾아준다.
    • ctrl+T: 하위 디렉토리 파일 검색
    • ctrl+R: 히스토리 검색
    • esc+C: 하위 디렉토리 검색 후 이동
  • fasd: 사용빈도가 높은 파일 또는 디렉토리 검색을 편하게 해준다.
    • 명령어를 사용하기 위해서 어느정도 디렉토리 이동하고 파일 열고 해야한다. 히스토리가 쌓이면 사용빈도에 따라 검색결과가 나온다.
    • z: 디렉토리 이동
    • s: 파일/디렉토리 검색
  • asdf vm: 각종 언어나 프로그램(nodejs, ruby, python 등..)의 버전을 통합적으로 관리해주는 도구
    • asdf plugin list: 설치된 plugin 목록
    • asdf plugin add <name> [<git-ref>]: plugin 설치
    • asdf list all <name>: 플러그인 설치 가능한 버전 확인
    • asdf install <name> <version>: 플러그인 버전 설치
    • asdf local <name> <version>: 현재 경로 기준 버전 사용 설정
    • asdf global <name> <version>: 전체 버전 사용 설정
  • tmux: Terminal MUltipleXer의 약자로 터미널에서 여러 개의 창을 쓸 때, 리눅스 원격 연결이 꺼져도 코드가 돌아가게 할 때 사용한다.
    • 별도의 포스트로 자세히 다룰 예정이다.
# 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 git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
# alias-tips
$ cd ${ZSH_CUSTOM1:-$ZSH/custom}/plugins # Go to your custom plugins folder
$ git clone https://github.com/djui/alias-tips.git
# fzf
$ brew install fzf
# fasd
$ brew install fasd
# asdf
$ brew install asdf
# tmux
$ brew install tmux

plugin을 설치한 후에는 반드시 ~/.zshrc파일에 설정값을 기입해줘야 한다. 파일을 열고 plugins 항목에 플러그인을 추가한다.

plugins=(
  ...
  zsh-syntax-highlighting
  zsh-autosuggestions
  alias-tips
  fzf
  fasd
  asdf
  tmux
  ...
)

설정파일을 수정한 후에는 터미널을 재시작하거나 source ~/.zshrc 명령어를 실행하여 설정을 다시 불러와야 한다. 이제 명령어를 입력할 때 존재하지 않는 명령어는 빨간색으로 뜨고 한번 입력했던 명령어는 회색으로 나타나는 걸 확인할 수 있다.

oh my zsh 팁

  1. 명령어가 기억나지 않으면 tab키 누른다.
  2. cd ../.. 대신 ..., ...., ....., …
  3. 단축명령어 - git status => gst, git pull => gl 등등 여러가지 있다.

zsh theme

zsh의 터미널을 더욱 꾸며기 theme을 설정해줘야한다. oh my zsh에서 제공하는 zsh theme 목록은 여기에서 확인할 수 있다. 예전에는 Powerlevel9k를 쓰다가 최근엔 더욱 심플한 cloud_custom을 사용한다.

cloud_custom

cloud_customcloud theme을 변형한 것이다.

https://medium.com/dolomite-official/supercharge-your-productivity-with-iterm2-zsh-a1fbc7607cd6

Powerlevel9k

powerlevel9k를 설정하기 위해 설정값들을 ~/.zshrc 에 입력해준다.

.zshrc에서 기본 ZSH_THEME는 아마 robbyrussell일텐데, 이걸 powerlevel9k로 바꿔준다.

# (1) powerlevel9k가 방금 설치한 Nerd Font를 사용토록 셋팅한다.
$ echo "POWERLEVEL9K_MODE='nerdfont-complete'" >> ~/.zshrc

# (2) github를 통해 `powerlevel9k`를 설치해서 역시 `~/.zshrc`에 삽입한다.
$ git clone https://github.com/bhilburn/powerlevel9k.git ~/powerlevel9k	

$ echo 'source  ~/powerlevel9k/powerlevel9k.zsh-theme' >> ~/.zshrc

powerlevel9k가 시작되기 전에 font가 셋업되어 있어야 한다.

~/.zshrc는 위에서부터 아래로 line by line로 명령어를 실행시키기 때문에 순서가 중요하다.

POWERLEVEL9K_MODE='nerdfont-complete'
source ~/powerlevel9k/powerlevel9k.zsh-theme

반드시 이 순서어야 한다!

powerlevel9k의 configuration 변경하자.

~/.zshrc에서 powerlevel9k의 환경변수의 configuration을 변경할 수 있다. 자세한 내용은 이곳을 참고한다.

내가 추가했던 셋팅은 다음과 같다.

POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(ssh dir vcs newline status)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(ssh time)
POWERLEVEL9K_PROMPT_ADD_NEWLINE=true

# reversed time format
POWERLEVEL9K_TIME_FORMAT='%D  {  %H:%M:%S}'

다른 유저들이 뽐낸 configuration을 구경해볼 수도 있다.

zsh 삭제

이렇게 애써 설치한 zsh를 uninstall 해야될 때가 있다. 그때는 아래 링크를 참고하자.

Back to Bash: Remove Zsh and terminal themes on a Mac step-by-step

icon iterm

macOS의 기본적인 terminal은 편의기능이 많이 부족하기 때문에 여러 편의기능을 갖춘 iterm을 사용한다.

대표 기능을 뽑아보면 아래와 같다. 기능 더보기

  • 터미널 탭 기능 (+토글 단축키)
  • 터미널 Split View
  • 자동완성 기능
  • 터미널 내에서 단어 찾기
  • 마우스 없이 복사&붙여넣기
  • 256 이상의 색상 지원

iterm2 다운로드 페이지에 가서 stable releases의 최신 버전을 다운로드 받는다.

혹은 커맨드로 설치 가능하다. 이러면 iTerm 어플리케이션이 ~/Applications 폴더에 저장된다.

$ brew cask install iterm2

GUI 디자인 설정

Cmd + ,를 눌러 preference 창을 연다.

  • 타이틀바 스타일 변경
    • Appearnce에서 General 탭에 Theme 중에서 Minimal를 좋아한다.
  • margin 키우기
    • Appearnce에서 Panes 탭에 Side margins를 12로 설정
    • Appearnce에서 Panes 탭에 Top & bottom margins를 10로 설정
  • 탭 라인 제거
    • Advanced에서 Tabs의 In the Minimal theme, how prominent should the tab outline be?를 0으로 설정
  • 줄 간격
    • Profiles의 Text 탭에서 n/n 줄간격을 110으로 설정

한글파일 깨짐방지

  • Preference의 Profiles에서 Text 탭을 보면 Unicode normalization form이 있다. 이걸 UFC로 설정한다.
    • 파일명 또는 디렉토리명의 자/모가 분리되는 현상을 방지한다.

단축키 설정

  • Preference의 Profiles에서 Keys 탭에 Presets을 눌러서 Natural Text Editing을 선택한다.
    • Option + <-/->를 이용하여 단어 단위로 커서를 이동할 수 있다.

colour scheme 고르기

iterm에는 많은 colour scheme이 있다. 이곳에서 기존에 설정된 scheme들 중 취향에 맞는 걸 다운로드 받는다. 나는 Matrix가 맘에 든다.

preferences > profile > colors로 간다.

2

import누르고 다운로드 받은 matrix.itermcolors를 고른다.

fonts 설치

예전엔 Hack Nerd Font를 썼는데, 이제는 둥근모꼴을 쓴다.

Hack Nerd Font

(powerlevel9k의 경우) 만약 zsh shell에서 특별한 icons를 띄우고 싶으면 특별한 fonts를 설치해줘야 한다. 여러가지가 있지만 개인적으로 nerd fonts가 괜찮다.

아래의 두 명령어를 입력한다.

$ brew tap caskroom/fonts
$ brew cask install font-hack-nerd-font

그리고 나서, item > preferences > profiles > text > font > Change Font 에서 Hack Nerd Font를 고른다.

개인적으로 선호하는 셋팅은 글씨크기 18px, Vertical space 120%

3

둥근모꼴

최근엔 깔끔하게 icons를 안띄우고 사용한다. 그래서 둥근모꼴을 사용한다. 레트로 감성이다.

둥근모꼴 다운로드

icon Vim

macOS에는 vi 커맨드가 기본적으로 내장되어 있다. vi 커맨드를 이용하여 에디터를 띄울 수 있는데, vi커멘드는 vim(Vi IMproved) 커멘드와 동일하게 동작한다.

vim 관련해서는 개발자의 맛님의 vim 추천동영상, vim plugin 동영상이 많은 도움 되었다.

4 ▲ 완성된 vim 화면

vimrc

The Ultimate Vim configuration을 사용해서 기본적인 vim 환경을 세팅할 수 있다.

basic version과 awesome version이 있는데 basic version을 설치하자.

$ git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
$ sh ~/.vim_runtime/install_basic_vimrc.sh

이로써 기본적인 vim 화면 구성은 마쳤으나, 몇 가지 기능을 더 추가했다.

여기에서 나의 vimrc 파일 셋팅을 볼 수 있다.

vim plugins

vim의 plugin에 대한 부분은 따로 자세한 포스팅을 작성하겠다.

icon docker

docker에 대한 자세한 설명은 subicura님의 도커 설명 글이나 엘리님의 도커 설명 영상를 참고하면 좋다.

Docker 홈페이지

$ brew cask install docker

tig

tig란 Text-mode Interface for Git의 약자이다. 말 그대로 텍스트만으로 git을 관리할 수 있게 해주는 프로그램이다. git 자체로도 충분하지만 tig를 사용하여 여러 로그를 편하게 볼 수 있다.

tig 홈페이지

$ brew install tig

jq

JSON 결과를 보기 좋게 시각화해주고 원하는 대로 편집할 수 있는 프로그램이다. 간단한 필터와 결과 변환이 가능하다.

jq 홈페이지

$ brew install jq

bat

cat 명령어에 syntax highlighting과 여러 가지 기능이 추가된 명령어이다.

bat 홈페이지

$ brew install bat

~/.zshrc에서 cat대신 bat을 쓰도록 alias를 설정하자.

alias cat="bat"

OpenInTerminal

Finder에서 바로 terminal 열 수 있는 도구이다. 설치 후 cmd누르고 드래그해서 버튼을 추가할 수 있다.

OpenInTerminal github

sample

$ brew cask install openinterminal-lite

ngrok

로컬 서버를 터널링을 통해 외부로 오픈해주는 도구이다.

ngrok 홈페이지

$ brew cask install ngrok

thefuck

오타나거나 잘못된 명령어를 실행했을 때, fuck을 외치면 제대로된 명령어를 실행시켜준다.

thefuck github

$ brew install thefuck

참고자료

태그:

카테고리:

업데이트:

댓글남기기