본문 바로가기

일::개발

맥북 재설정

2017 맥북프로를 계속 High Sierra로 버티다가 Big Sur로 갈아타보기로 함.

OS 올리다가 구형 맥 벽돌 되었다는 소리도 들리고 안 그래도 저사양인데 최신 버전 올렸다가 참을 수 없이 버벅거리면 어쩌나 하고 걱정도 되었지만 에라 모르겠다 자세로 시도했다.

 

주말에 작업 하려고 했는데 회사에서 만들어놓은 설치USB를 안 가져온 바람에 네트웍으로 설치하느라 여러 차례 고비가 있었다.

결국 하드디스크 초기화 -> 네트웍으로 재설치 했더니 알 수 없는 이유로 Catalina가 설치되었고, Catalina에서 Big Sur 설치파일을 다운로드 해서 설치 USB 만들고, 처음부터 다시 하드디스크 초기화 -> USB로 재설치 했다.

이 과정에서 OS 다운로드를 여러번 했는데 5시간 이상 걸리다가 실패하는 경우도 있고... ㅠㅠ 힘들었다.

 

하여간 클린 설치 한 이후에 했던 설정 작업들은 다음과 같음

 

1. 기본 설정

  1) Dock: 자동으로 Dock 가리기와 보기 enable. 13인치 화면을 조금이라도 넓게 쓰려고

  2) Bluetooth: 메뉴 막대에서 보기 enable

  3) Siri: disable

  4) 키보드

    - 키보드: F1, F2 등의 키를 표준 기능 키로 사용 enable.

    - 키보드 - 보조키: 한영키를 Control로 변경. (한영 전환을 shift-space 로 하고 한영키는 Control로 쓰는 것이 편해서)

    - 키보드 - 단축키: shift-space로 한영 전환을 하려면 "이전 입력 소스 선택" 항목을 shift-space로 바꿔주면 되는데, 그냥은 입력이 되지 않는다. fn-shift-space 키를 눌러주면 shift-space로 설정 가능하다. 그런데, 이렇게 하면 한영 전환 시 딜레이가 발생하는 경우가 있다. 좀 더 빠릿빠릿하게 동작하게 하려면 "이전 입력 소스 선택" 은 ctrl-space(아무거나)로 설정하고, "입력 메뉴에서 다음 소스 선택"을 shift-space로 설정하면 딜레이 없이 동작한다.

    - 텍스트: 자동 수정 관련 옵션 모두 disable

  5) 트랙패드:

    - 포인트 및 클릭: "보조클릭"은 하단 오른쪽에서 클릭하기로.

    - 스크롤 및 확대/축소: 스크롤 방향 자연스럽게 disable (나는 예전 스타일이 더 익숙해서)

  5) 공유: "누구의 MacBook Pro" 이름 수정.

 

2. Synology 에 TimeMachine 백업용 폴더 설정하고 초기 상태에서 백업

 

3. 기본 프로그램들 설치

  1) Chrome

  2) 프린터 드라이버

  3) iTerm2

  4) HotKey: iTerm 을 단축키로 실행하고 싶은데, Automator에서 스크립트 만들어서 단축키 등록하는 것보다 HotKey 까는게 더 좋더라. shift-command-t 를 할당하고 싶은데, safari 처럼 이미 그 키가 할당되어 있는 프로그램 실행 중에는 단축키가 안 먹어서.

  5) 폰트: iTerm용 Consolas 다운로드 및 설정. D2가 좋다고 해서 깔아봤는데 눈에는 Consolas가 더 잘 들어온다. 좀 써보고 영 익숙해지지 않으면 다시 Consolas로

  6) Git: 터미널에서 git 실행하면 알아서 개발도구 설치해줌

  7) ForkLift: 구입해서 사용하는 몇 안 되는 소프트웨어.

  8) Office 2016 for macos: 베네수엘라 사태때 구입해놓은 오피스도 설치

  9) Textmate: 아직까지 발견한 가장 괜찮은 텍스트 에디터

  10) Typora: markdown 문서 작성용

  11) Visual Studio Code

  12) Sequel Ace: Sequel Pro가 Sequel Ace로 바뀐 줄도 모르고 있었다. ㅎ AppStore에서 다운로드 가능

  13) 기타: 카카오톡, Unarchiver

 

4. zsh 설정

High Sierra에서 넘어왔더니 기본 쉘이 bash에서 zsh로 바뀌었네? 뭔가 어색하지만 이번 기회에 한번 넘어가보자.

다들 설치한다고 해서 oh my zsh 를 깔아봤는데 아직 잘 모르겠다.

oh my zsh 설치하면 .zshrc가 새로 생기고, 기존의 .zshrc는 .zshrc.pre-oh-my-zsh 파일로 옮겨진다. 필요하면 백업 파일의 내용을 새 .zshrc에 덧붙여준다.

% cat .zshrc.pre-oh-my-zsh >> .zshrc

zsh theme는 powerlevel10k 를 설치해봤다. 

> git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

 

5. finder 설정

  1) 사이드바 - 태그 제거

  2) 고급 - 모든 파일 확장자 보기 enable

  3) 보기 - 경로막대 보기

 

6. python 환경 설정

  1) pyenv, pyenv-virtualenv 설치

# pyenv clone
> git clone https://github.com/pyenv/pyenv.git ~/.pyenv

# pyenv configuration
> echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshenv
> echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshenv

> echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc

# pyenv-virtualenv clone
> git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

# pyenv-virtualenv configuration
> echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc

pyenv, pyenv-virtualenv 문서에는 pyenv 설정은 ~/.zshrc에, pyenv-virtualenv 설정은 ~/.zshenv에 넣으라고 되어 있는데, 이렇게 하면 터미널 새로 실행할 때 command not found: pyenv 에러가 나온다.

.zshenv 가 .zshrc보다 먼저 실행되어서 pyenv virtualenv-init 할 때 pyenv 설정이 되어 있지 않으니 PYENV_ROOT, PATH 설정은 .zshenv 에, init 명령은 .zshrc에 넣으면 잘 된다.

 

oh my zsh 를 설치했다면 ~/.zshrc 의 plugins 에 pyenv를 추가해주면 위의 설정을 직접 하지 않아도 된다.

(github.com/ohmyzsh/ohmyzsh/blob/master/plugins/pyenv/pyenv.plugin.zsh)

 

  2) python3 설치

> pyenv install 3.8.6

Azure Functions가 3.8 까지 지원하니 3.8.6을 설치해준다.

 

7. git 설정

> git config --global user.name "John Doe"
> git config --global user.email johndoe@example.com

git config --global 로 설정해주면 ~/.gitconfig 파일에 설정내용이 들어가서 해당 사용자의 전역 설정으로 사용된다.

백업해둔 SSH key pair가 있다면 ~/.ssh에 복사해준다.

> cp ~/Downloads/id_rsa ~/.ssh/
> cp ~/Downloads/id_rsa.pub ~/.ssh/
> chmod 600 id_rsa*

> ssh -T git@github.com
Warning: Permanently added the RSA host key for IP address '15.164.81.167' to the list of known hosts.
Enter passphrase for key '/Users/********/.ssh/id_rsa':
Hi ********! You've successfully authenticated, but GitHub does not provide shell access.

 

8. docker 설정