태그 보관물: Mac

macOS 설치 후 개발환경을 위한 설정

1. Xcode 와 Xcode Command Line Tools 설치

Xcode Command Line Tools에는 컴파일러등의 도구가 들어 있어서 다른 설정들과 관계가 있어 가장 먼저 설치 해준다. Xcode는 App Store에서 설치하면 되고, Xcode Command Line Tools는 아래의 명령어를 터미널에서 실행한다.

xcode-select --install

2. 패키지 관리자 설치

개발등에 필요한 여러가지 도구들을 설치하려면 Macports 혹은 Homebrew와 같은 패키지 관리자를 설치해 주어야 한다. 2026년 현재 Homebrew는 Sonoma(14)이상에서만 동작 하므로 그보다 이전 버전을 사용하고 있다면 Macports가 선택가능한 대안이다.

3. zshell용 extension 설치

macOS terminal을 실행 할 때 기본적으로 zsh가 실행되는데, Oh my zsh 혹은 zim:fw 같은 extension을 사용하면 명령어 오타감지 등의 다양한 기능을 추가 하거나 보기 좋은 테마를 적용할 수 있다.

나는 기능은 적지만 단순한 zim:fw를 선호하는데, 만약 설치 후 사용할 때 “zsh: command not found: prompt-pwd” 라는 보기 싫은 경고 문구가 매번 출력된다면 ~/.zimrc 파일에 다음과 같이 prompt-pwd module을 추가해 서 해결할 수 있다.

4. 메타키 변경 (Emacs)

기본적인 터미널 설정의 메타(Meta) 키는 ESC이다. 이 키를 자주사용하는 Emacs 사용자라면 멀리 떨어져 있는 ESC 키를 누르는게 무척 귀찮을 것이다. Terminal을 열어서 “Use Option as Meta key”를 활성화 해 주면 ESC 대신 Option key로 대체할 수 있다.

한가지 주의할 점은 이 설정은 각 프로필 마다 따로 해주어야 한다는 점이다. 따라서 다른 종류의 프로필 여러개를 사용한다면 각각에 위의 설정을 적용해 주어야 한다.

5. Caps lock key를 Ctrl로 변경

Mac용 한글 키보드에서는 한영전환으로 사용되는 Caps lock key의 위치는 손목이 편안한 명당 이지만 자주 사용되지 않는 키를 배치하는 용도로 사용하면 효율이 나쁘다. HHKB 처럼 Caps lock을 Ctrl로 변경하면 손이 편하게 작업할 수 있다. 그리고 나서 Caps lock은 변방인 Ctrl 위치로 밀어 낸다.

Settings -> Keyboard -> Modifier Keys

6. 한글입력과 spotlight 단축키 변경

기본 한글 입력기 변환은 Ctrl + space인데 HHKB나 레오폴드 키보드 처럼 Ctrl 키의 위치가 Caps Lock을 대체하는 경우에는 한영 변환 입력이 조금 어렵다. 그래서 Settings -> Keyboard -> Shortcuts에서 Command + space로 변경해주고 이 때문에 충돌이 생기는 spotlight을 옛날 버전의 MacOS에서 쓰던 Command + p로 변경해 주었다.

Shift + Command + p는 VS code의 명령어 팔레트 단축키와 충돌 하므로 spotlight설정 할 때 함께 보이는 “Show Finder search window”는 단축키를 설정하지 않았다.

7. 기타 설정

  • SSH key를 복사하고 config를 설정
  • GitHub에 올려두는 Emacs 환경 파일을 clone
  • 터치바에서 siri을 없애고 Screenshot 기능으로 대체

OpenCore Legacy Patcher – 최신 macOS 최신버전으로 올리기

오래된 나의 2016년생 Intel MacBook Pro는 2025년 11월 현재 Monterey에서 더 이상 OS 업그레이드가 지원 되지 않는다. 우연히 OCLP(OpenCore Legacy Patcher) project를 알게 되었는데 2020년에 시작된 이 프로젝트는 부팅 단계에서 최신 OS가 지원되는 하드웨어인것 처럼 macOS를 속여서 최신 버전의 OS를 설치할 수 있도록 해준다. 2025년 11월 현재 Intel CPU를 지원해주는 최신 버전인 Sequoia를 설치해 보고자 OCLP를 설치해 보았다.

공식 지원이 되지 않는 최신 OS를 굳이 설치 하려고 시도한 이유는 여러 응용프로그램에서 macOS 버전에 따라 설치가 되지 않는 경우가 있기 때문이었다.

예를 들면 MS Teams나 Homebrew 처럼…

OCLP를 설치하는 것은 How to install 문서에 잘 명시된 과정을 따라 하는 것으로 어렵지 않게 진행 할 수 있었다.

설치파일은 GitHub의 release page에서 다운로드 받을 수 있는데, OpenCore-Patcher.pkg를 받으면 되고, AutoPkg-Assets.pkg는 필요에 따라 자동으로 다운로드 되는 것이서 따로 다운로드 받을 필요가 없다.

설치 순서는 다음과 같이 진행한다.

  1. macOS Installer 생성
  2. OpenCore 빌드 및 설치
  3. Reboot 할 때 Option key를 눌러서 OpenCore로 진입
  4. 설치 후 과정(post-installation) 수행

3번을 실행하기 위해서는 부팅하는 동안 Option key는 누르고 있다가 부팅 선택화면에서 OpenCore를 선택해 준다. 설치 과정동안 서너번 정도 스스로 재부팅 하고 나서는 모든 설치 과정이 완료 되었다.

디스크 포맷을 수행 하지 않아서인지 부팅 후에는 이전에 사용하던 설정이 모두 보존 되어 있었다.

설치 가이드 문서에는 USB thumb drive없이 부팅하기 위한 안내가 있었는데, 그동안 수정된것인지 내 경우에는 이 과정이 없이도 잘 동작했다.

설치가 완료된 후 부팅 할 때마다 거슬려 보이는 OS 선택창(Boot Picker)이 있는데, 이것은 post-installation 문서에 명시된 다음의 순서대로 변경하면 없앨 수 있다.

Boot Picker 없애기

먼저 가장 아래에 있는 Settings 버튼을 눌러서 설정으로 진입한다.

Build 탭의 오른쪽에 있는 “Show OpenCore Boot Picker”를 선택해제하고 Return 버튼을 눌러서 나간 다음 “Build and Install OpenCore” 메뉴를 선택해서 빌드를 수행한다.

그리고 나서는 처음 OCLP을 설치할 때 처럼 하드디스크에 Boot picker가 제거된 새로운 버전 인스톨 해주면 이전의 부팅화면 처럼 Boot picker없이 실행된다.

Post-Install Root Patch

이제, post-install root patch 버튼을 눌러서 필요한 하드웨어 드라이버를 설치하면 모든 업그레이드 과정이 완료된다.

업그레이드 때문에 post-install root patch가 실패 한다면

OS 업그레이드에 대한 정보를 수신한 경우 이 때문에 업그레이드를 수행 하지 않아서 post-install root patch를 진행할 수 없다는 메세지가 뜨면서 진행이 멈추는데 이 때는 다음의 명령어서 관련 정보를 삭제한 후 리붓을 수행하면 진행 할 수 있다.

# Remove software update files
sudo rm -rf /System/Library/AssetsV2/com_apple_MobileAsset_MacSoftwareUpdate/*

# Remove Update files
sudo rm -f /System/Volumes/Update/Update.plist
sudo rm -f /System/Volumes/Update/Preflight.plist

# NOTE: 리붓 필수!!

OCPL를 통해서 하는 것이 아닌 직접 OS 업그레이드는 위험할 수 있으니 막아 두자.

Settings -> General -> Software Update -> Automatic updates

이제 MS teams도 설치하고 MacPorts에서 Homebrew로 돌아가야지.

외부에서 private망에 물린 host로 접속하기 – SSH Jump Host

사무실에 있는 내 workstation에는 두개의 LAN이 연결되어 있고 각각 public network와 private network에 연결되어있다. 외부에서 private network에 연결되어 있는 target host에 SSH로 연결 할 때는 먼저 workstation에 ssh로 연결하고, 여기에서 private망에 물려있는 target host로 또 다시 ssh를 연결해야 한다.

하지만 ssh의 -J option을 이용하면 workstation을 jump host로 이용해서 이런 귀찮은 여러번 접속을 피할 수 있다. 다음은 ssh의 -J 옵션에 대한 설명을 man-page에서 발췌해서 의역한 것이다.

-J 목적지
    Jump host에 ssh 연결을 생성한 다음 최종 목적지 호스트로 TCP 포워딩을 설정하여
    연결을 생성합니다. 여러개의 jump host를 명시하려면 콤마를 사용해서 지정해 줄 수
    있습니다. 이 옵션은 ProxyJump 환경설정 예약어에 대한 단축설정 입니다. 
    주의: 일반적으로 명령줄에 작성하는 옵션들은 최종 목적지 호스트에 적용되며 jump host
    들에는 적용되지 않습니다. Jump host에 옵션을 설정하려면 ~/.ssh/config file을
    활용 하세요.

예를 들어 workstation의 public IP가 203.0.113.5, private network에 있는 target의 IP가 192.168.100.5라 할 때 다음과 같이 203.0.113.5를 jump host로 설정해서 한 번에 접속할 수 있다.

ssh -J user@203.0.113.5 user@192.168.100.5

이러한 설정을 .ssh/config에 jump host를 명시해서 설정해 두면 workstation을 jump host로해서 target에 접속할 수 있고 무엇보다도 visual studio code에서도 곧바로 접속할 수 있다는 점이 편하다. 아래의 설정에서 ProxyJump 설정하는 부분을 눈여겨 보자.

Host workstation
  HostName 203.0.113.5
  User user

Host target
  HostName 192.168.100.5
  User user
  ProxyJump workstation

설정 후에는 private IP인 target으로 곧바로 접속 할 수 있다.

ssh target