Choose a default theme

You can change your theme from the menu

macOS

Earlier revision · 2View current content

macOS는 Apple의 Mac 컴퓨터용 운영체제이다. Finder와 Dock 같은 그래픽 환경, 응용 프로그램 프레임워크, Unix 계열의 명령줄 환경을 함께 제공한다. Mac은 컴퓨터 제품군의 이름이고 macOS는 운영체제의 이름이므로, 두 용어를 문서와 문제 보고에서 구별하는 것이 정확하다.

구성과 작동 원리

macOS의 기반에는 Darwin 계열 구성 요소가 있으며 커널은 Mach·BSD 계통의 기술과 Apple의 구성 요소를 결합한다. 응용 프로그램은 사용자 공간에서 실행되고 커널이 메모리와 실행 자원을 관리한다. Darwin의 공개 구성 요소가 존재한다는 사실이 macOS의 그래픽 환경과 모든 응용 프로그램까지 전부 오픈소스라는 뜻은 아니다.

Apple의 오래된 커널 문서는 구조의 배경을 이해하는 데 유용하지만, 과거의 주소 공간 크기나 폐기된 API를 현재 시스템의 사양으로 그대로 받아들이면 안 된다. 실제 개발에서는 사용하는 SDK와 macOS 배포 대상 버전의 API 문서를 기준으로 한다.

그래픽 환경과 명령줄

Finder는 파일과 폴더를 탐색하는 인터페이스이며 Terminal은 셸과 명령줄 프로그램을 사용하는 창이다. 같은 파일을 Finder와 셸 양쪽에서 다룰 수 있지만, 그래픽 화면의 표시 이름과 명령줄에서 사용하는 실제 경로는 구분해야 한다.

셸은 명령을 해석하고 도구를 실행한다. 명령을 입력했을 때 찾을 수 없다는 오류가 나면 철자, 설치 여부, 실행 파일의 위치와 PATH를 확인한다. 현재 디렉터리에 있는 프로그램을 실행할 때는 ./program처럼 경로를 명시하는 방식이 쓰인다. 터미널을 열었다는 사실만으로 모든 개발 도구가 설치되어 있는 것은 아니다.

운영체제와 개발 환경

운영체제

운영체제 · Linux · Windows · macOS

관련 환경

WSL · Mac

예시: 홈 폴더와 파일 확인

macOS의 Terminal에서 다음 명령을 한 줄씩 실행한다. cd는 홈 디렉터리로 이동하고 pwd는 현재 디렉터리의 절대 경로를 보여 준다. ls는 그 위치의 항목을 나열한다. open .은 현재 디렉터리를 Finder로 여는 macOS 명령이다. 파일을 생성하거나 삭제하지 않는 예제다.

pwd의 출력은 일반적으로 /Users/사용자명 형태지만 계정 설정에 따라 달라질 수 있다. ls에 나오는 목록 역시 사용자별로 다르다. open .의 점은 현재 디렉터리를 뜻한다. 이 예제는 명령줄의 위치 개념과 Finder의 폴더 표시를 연결해서 이해하는 데 도움이 된다.

cd ~
pwd
ls
open .

경로와 인자 전달

경로의 구성 요소는 슬래시로 구분한다. 공백이 있는 경로는 따옴표로 묶거나 적절하게 이스케이프해야 하나의 인자로 전달된다. 예를 들어 cd "$HOME/My Projects"는 홈 폴더 안의 My Projects 디렉터리로 이동하는 형식이다. 해당 디렉터리가 실제로 있을 때만 성공하며, 명령 자체가 폴더를 생성하지 않는다.

변수 확장과 인용 규칙도 구분한다. 큰따옴표 안의 $HOME은 홈 경로로 확장되지만 작은따옴표 안에서는 문자 그대로 취급된다. 명령을 작성할 때 경로의 공백을 삭제해서 맞추는 대신 올바르게 인용해야 원래 이름을 유지할 수 있다.

개발 도구와 플랫폼 차이

Apple은 Xcode와 명령줄 개발 도구를 제공한다. 명령줄 도구는 그래픽 IDE를 직접 열지 않고 빌드와 개발 작업을 수행하는 데 사용된다. 프로젝트에서 어느 도구 모음과 SDK를 사용하는지 관리하면 여러 개발 환경이 설치되어 있을 때 발생하는 혼동을 줄일 수 있다.

Unix 계열 셸이 있다고 Linux와 동일한 시스템인 것은 아니다. 기본 명령의 옵션, 시스템 API, 실행 파일 형식과 라이브러리가 다를 수 있다. Linux용 실행 파일을 macOS에서 그대로 실행할 수 있다고 가정하지 않는다. 여러 운영체제를 지원하는 프로젝트는 각 환경에서 빌드와 테스트를 수행해야 한다.

Apple silicon과 응용 프로그램 호환성

Mac에는 Intel 기반 모델과 Apple silicon 기반 모델이 있다. 응용 프로그램이 지원하는 CPU 구조와 운영체제 버전을 함께 확인해야 한다. Universal 앱은 양쪽 구조용 코드를 포함할 수 있고, Apple silicon용 앱은 해당 구조를 대상으로 한다.

Rosetta는 지원되는 환경에서 Intel용 앱을 Apple silicon에서 실행하도록 변환하는 기술이다. 모든 종류의 코드나 주변 구성 요소가 영구적으로 호환된다는 보장은 아니다. 플러그인과 확장 기능은 본체와 별도로 확인해야 하며, 장기적으로는 개발자가 제공하는 네이티브 또는 Universal 버전을 사용하는 것이 호환성 관리에 유리하다. 지원 범위는 Apple의 최신 문서를 따른다.

주의할 점

Mac이라는 하드웨어 이름만으로 실행 환경을 결정하지 않는다. 문제 보고에는 macOS 버전, CPU 구조, 실행한 셸과 도구 버전을 함께 적는다. 프로그램 설치 성공과 실제 실행·플러그인 호환은 서로 다른 확인 항목이다.

보호된 폴더 접근이 거부될 때에는 파일 권한과 앱에 허용된 접근 범위를 구별해 살펴본다. 원인을 확인하지 않고 보안 기능을 끄는 방식으로 해결하지 않는다. 이 문서의 예제는 위치와 파일 목록을 읽는 기본 작업이며 별도의 관리자 권한을 요구하지 않는다.

참고 자료