Xcode 단축키는 많이 외우는 것보다 찾기 → 수정 → 빌드 → 실행 → 디버깅 흐름에서 반복하는 것부터 익히는 편이 낫다. 먼저 바로잡을 점은 code completion이 Command-Space가 아니라 기본 설정에서 Control-Space 또는 Escape라는 것이다. Command-Space는 macOS Spotlight 단축키다.
Xcode 단축키는 사용자가 Xcode > Settings > Shortcuts에서 바꿀 수 있고 version에 따라 command가 달라질 수 있다. 아래 표는 Apple의 현재 Xcode 문서와 최근 WWDC 자료에서 확인한 기본값을 중심으로 정리했다. 자신의 설치본에서는 menu 오른쪽에 표시되는 키와 Shortcuts 설정을 최종 기준으로 삼는다.
먼저 익힐 탐색 단축키
| 목적 | 기본 단축키 | 확인할 점 |
|---|---|---|
| Open Quickly | ⇧⌘O |
file과 symbol 이름으로 이동 |
| workspace 전체 찾기 | ⇧⌘F |
검색 범위와 filter 확인 |
| 현재 file을 Project navigator에 표시 | ⇧⌘J |
비슷한 이름의 file 위치 확인에 유용 |
| 이전·다음 탐색 위치 | ⌃⌘← / ⌃⌘→ |
browser의 back·forward처럼 사용 |
| code completion 열기 | ⌃Space 또는 Esc |
Settings에서 On Demand와 shortcut 확인 |
원래 메모에 있던 ⇧⌘Y는 symbol 검색 단축키로 쓰지 않는다. symbol이나 file로 바로 가려면 ⇧⌘O, 현재 workspace text를 찾으려면 ⇧⌘F로 질문을 분리한다.
Xcode의 predictive completion이 inline으로 제안할 때는 Tab으로 현재 제안을 받아들일 수 있다. Xcode 16의 Apple 설명에서는 Option으로 전체 prediction을 펼치고 Option-Tab으로 전체를 수락하는 동작도 소개했다. completion 기능과 key binding은 version·설정 영향을 받으므로 동작하지 않으면 Editing과 Shortcuts 설정을 먼저 확인한다.
편집할 때 자주 쓰는 키
| 목적 | 기본 단축키 |
|---|---|
| 선택 영역 주석 토글 | ⌘/ |
| 선택 영역 다시 들여쓰기 | ⌃I |
| 현재 scope에서 같은 symbol 함께 편집 | 선택 후 ⌃⌘E |
| 실행 취소·다시 실행 | ⌘Z / ⇧⌘Z |
짧은 축약키라도 선택 범위를 확인하지 않고 실행하면 원치 않는 여러 줄이 바뀔 수 있다. 특히 Edit All in Scope는 text가 같은 모든 위치를 무조건 바꾸는 단순 치환이 아니라 현재 scope의 symbol 편집에 맞춰 쓰고, 변경 diff를 확인한다.
문서 주석 추가, code folding, line 이동처럼 설치 version이나 custom key binding에서 차이가 나기 쉬운 command는 키를 고정해서 외우기보다 Editor menu에서 command를 찾은 뒤 표시된 shortcut을 확인하는 편이 안전하다.
빌드·실행·테스트
| 목적 | 기본 단축키 | 의미 |
|---|---|---|
| Build | ⌘B |
현재 scheme build |
| Run | ⌘R |
선택한 destination에서 실행 |
| Test | ⌘U |
scheme의 test action 실행 |
| Stop | ⌘. |
실행 중인 작업 중지 |
| Clean | ⇧⌘K |
현재 build product 정리 |
| Clean Build Folder | ⌥⇧⌘K |
build folder 정리 |
Clean을 모든 Xcode cache와 DerivedData를 지우는 명령으로 설명하면 안 된다. build 문제를 만날 때도 먼저 error log와 재현 조건을 확인한다. 습관적으로 cache를 삭제하면 원인을 가리고 다음 build만 오래 걸릴 수 있다.
breakpoint와 단계 실행
| 목적 | 기본 단축키 |
|---|---|
| 현재 줄 breakpoint 추가·제거 | ⌘\ |
| breakpoint 전체 활성화·비활성화 | ⌘Y |
| Step Over | F6 |
| Step Into | F7 |
| Step Out | F8 |
Mac keyboard 설정에 따라 function key를 쓰려면 fn을 함께 눌러야 할 수 있다. ⌘R은 debug session을 ‘토글해 종료’하는 키가 아니라 Run command다. 실행을 멈출 때는 Stop button 또는 ⌘.을 사용한다.
Step Over는 현재 line의 호출 내부로 들어가지 않고 다음 line으로, Step Into는 호출 내부로, Step Out은 현재 frame을 빠져나갈 때 사용한다. async code에서는 실행이 다른 thread나 task로 이어질 수 있으므로 line 순서만 보고 시간 순서를 단정하지 않는다.
내 workflow에 맞게 익히는 순서
⇧⌘O로 file·symbol을 연다.⇧⌘F로 사용처를 찾고⌃⌘←/→로 이동 이력을 오간다.⌃Space,⌘/,⌃I로 code를 수정한다.⌘B,⌘U,⌘R로 build·test·run을 구분한다.⌘\,F6~`F8`로 필요한 지점만 debug한다.
Swift 문법을 함께 복습하려면 Swift closure와 callback, value type의 변경 규칙은 Swift mutating에서 이어서 볼 수 있다.
참고 자료
'배움과 성장 > 소프트웨어 개발' 카테고리의 다른 글
| uv·uvx·npm·npx 차이: 프로젝트 실행과 일회성 도구 실행 구분 (0) | 2025.09.18 |
|---|---|
| Facade 패턴: Adapter·Mediator와 구분하는 기준 (4) | 2024.12.03 |
| SwiftUI View 구조: var body·struct·상태 객체의 역할 (0) | 2024.11.11 |
| Swift mutating: struct·enum에서 self를 바꾸는 규칙 (4) | 2024.11.11 |
| SwiftUI에서 struct와 class 고르기: @State·@Observable 기준 (1) | 2024.11.11 |
댓글