VS Code 코드 탐색 사용법
정의·참조·심볼을 빠르게 찾기
탐색기에서 파일을 하나씩 열지 않고도 함수의 정의, 사용처, 구현체와 원하는 심볼을 빠르게 오가는 방법을 공식 문서 기준으로 정리했습니다.
규모가 큰 프로젝트에서 시간이 가장 많이 드는 일 중 하나는 “이 코드가 어디에서 정의됐고, 어디에서 사용되는가?”를 파악하는 것입니다. VS Code의 코드 탐색 기능을 익히면 파일 구조를 모두 외우지 않아도 코드의 흐름을 따라갈 수 있습니다.
1. 코드 탐색은 언제 유용할까?
- 낯선 프로젝트 분석 함수 호출부에서 정의로 이동하고 다시 돌아오며 실행 흐름을 파악합니다.
- 수정 영향도 확인 함수나 클래스의 모든 참조를 확인해 변경이 미치는 범위를 살펴봅니다.
- 인터페이스 구현 추적 추상 메서드나 인터페이스를 실제로 구현한 클래스를 찾습니다.
- 큰 파일 안에서 이동 함수·클래스·변수 이름으로 원하는 위치를 즉시 엽니다.
2. 정의와 참조를 빠르게 찾는 방법
1 정의로 이동 — F12
함수나 클래스, 변수 위에 커서를 두고 F12를 누르면 해당 심볼이 선언되거나 정의된 위치로 이동합니다. Windows에서는 Ctrl+클릭, macOS에서는 Command+클릭으로도 이동할 수 있습니다.
2 현재 위치에서 정의 미리보기 — Alt/Option+F12
정의로 완전히 이동하지 않고 잠깐 확인만 하고 싶다면 Peek Definition을 사용합니다.
| 운영체제 | 기본 단축키 | 결과 |
|---|---|---|
| Windows / Linux | Alt + F12 | 현재 코드 안에 정의 미리보기 창 표시 |
| macOS | Option + F12 | 현재 코드 안에 정의 미리보기 창 표시 |
Peek 창 안에서 코드를 읽거나 간단히 수정할 수 있고, Esc를 누르면 닫힙니다. 맥락을 잃지 않고 구현만 확인하고 싶을 때 유용합니다.
3 모든 사용처 찾기 — Shift+F12
심볼 위에서 Shift + F12를 누르면 해당 심볼을 참조하는 위치가 Peek 창에 표시됩니다. 결과 목록을 이동하며 각 사용처를 확인하고 필요한 부분을 바로 편집할 수 있습니다.
4 안전하게 이름 변경 — F2
여러 파일에서 사용되는 함수나 변수 이름은 텍스트 전체 바꾸기보다 F2의 Rename Symbol을 사용하는 편이 안전합니다. 새 이름을 입력하고 Enter를 누르면 언어 서비스가 인식한 사용처가 함께 변경됩니다.
3. 파일과 심볼을 이름으로 바로 열기
| 기능 | Windows / Linux | macOS | 용도 |
|---|---|---|---|
| 파일 빠르게 열기 | Ctrl + P | Command + P | 파일 이름 일부로 프로젝트 파일 열기 |
| 현재 파일의 심볼 | Ctrl + Shift + O | Command + Shift + O | 현재 파일의 함수·클래스·변수로 이동 |
| 워크스페이스 전체 심볼 | Ctrl + T | Command + T | 어느 파일인지 모르는 심볼 찾기 |
| 최근 열린 편집기 | Ctrl + Tab | Control + Tab | 최근 사용한 열린 파일 사이 이동 |
Quick Open을 더 빠르게 쓰는 입력 규칙
Ctrl + P 또는 Command + P를 연 뒤 아래 접두사를 활용하면 한 입력창에서 다양한 위치로 이동할 수 있습니다.
| 입력 예시 | 의미 | 예시 결과 |
|---|---|---|
user | 파일 이름 검색 | userService.ts, UserCard.jsx |
@validate | 현재 파일의 심볼 검색 | validateEmail() 함수 |
@: | 현재 파일 심볼을 종류별로 묶어 표시 | 클래스·함수·변수 그룹 |
#UserService | 워크스페이스 전체 심볼 검색 | 다른 파일에 있는 클래스 |
:120 | 현재 파일의 120번째 줄로 이동 | 오류 로그의 줄 확인 |
공식 문서는 현재 파일의 심볼을 Ctrl/Command+Shift+O, 워크스페이스 전체 심볼을 Ctrl/Command+T로 여는 방법을 안내합니다. 자세한 내용은 Go to Symbol에서 확인할 수 있습니다.
4. 이동한 뒤 원래 위치로 돌아오기
정의와 참조를 따라 여러 파일을 이동하다 보면 출발 위치를 잊기 쉽습니다. 이때 브라우저의 뒤로 가기처럼 편집 위치 기록을 사용할 수 있습니다.
| 기능 | Windows / Linux | macOS |
|---|---|---|
| 이전 편집 위치로 | Ctrl + - | Control + - |
| 다음 편집 위치로 | Ctrl + Shift + - | Control + Shift + - |
- 호출부 확인
- F12 정의 이동
- 내부 로직 확인
- Ctrl/Control+- 복귀
Breadcrumbs로 현재 위치 파악하기
편집기 위의 Breadcrumbs는 현재 파일의 폴더 경로와 심볼 경로를 보여줍니다. 예를 들어 src › services › UserService › updateUser처럼 현재 함수가 어느 파일과 클래스 안에 있는지 빠르게 파악할 수 있습니다.
- Breadcrumb 항목을 클릭하면 같은 단계의 파일이나 심볼 목록이 열립니다.
View → Show Breadcrumbs에서 표시 여부를 변경할 수 있습니다.breadcrumbs.filePath와breadcrumbs.symbolPath설정으로 경로 표시 범위를 조절할 수 있습니다.
5. 실전 예제 1 — 낯선 함수의 흐름 추적하기
다음 JavaScript 코드에서 calculateDiscount()가 어떤 규칙으로 할인액을 계산하는지 확인한다고 가정해 보겠습니다.
// checkout.js
const total = calculateDiscount(cart, customer);
renderPayment(total);
calculateDiscount위에서 Alt/Option+F12를 눌러 정의를 미리 봅니다.- 로직이 길어 전체 파일을 읽어야 한다면 F12로 정의 파일을 엽니다.
- 함수를 사용하는 다른 결제 흐름을 보려면 Shift+F12로 모든 참조를 확인합니다.
- 분석을 마치면 Ctrl/Control+-로 원래 호출부에 돌아옵니다.
// discount.js
export function calculateDiscount(cart, customer) {
const rate = customer.grade === 'VIP' ? 0.15 : 0.05;
return cart.total * (1 - rate);
}
6. 실전 예제 2 — 인터페이스 구현체 찾기
TypeScript 프로젝트에서 인터페이스만 보이고 실제 저장 방식이 어디에 구현되어 있는지 모를 때는 Go to Implementation을 사용합니다.
interface UserRepository {
findById(id: string): Promise<User>;
save(user: User): Promise<void>;
}
UserRepository또는 메서드 위에 커서를 둡니다.- 명령 팔레트에서 Go to Implementation을 실행합니다. 기본 키는 Windows/Linux에서 Ctrl+F12, macOS에서 Command+F12입니다.
DatabaseUserRepository,MemoryUserRepository처럼 여러 구현체가 있으면 목록에서 확인할 대상을 선택합니다.- Ctrl/Command+T에서 구현체 이름을 검색해 다른 파일의 심볼로 바로 이동해 봅니다.
class DatabaseUserRepository implements UserRepository {
async findById(id: string): Promise<User> {
return database.users.findOne({ id });
}
}
7. 자주 생기는 문제와 주의점
- F12를 눌러도 이동하지 않음 파일의 언어 모드와 관련 확장 설치 여부를 확인하고, 프로젝트를 폴더 단위로 열었는지 살펴봅니다.
- 참조 결과가 일부만 표시됨 동적 호출이나 문자열로 구성된 이름은 언어 서비스가 정적으로 추적하지 못할 수 있습니다. 전체 텍스트 검색도 함께 사용합니다.
- 같은 이름의 심볼이 너무 많음 워크스페이스 심볼 검색에서 더 긴 이름을 입력하고 심볼 종류와 파일 경로를 함께 확인합니다.
- 단축키가 다르게 동작함 키맵 확장과 사용자 설정에 따라 달라질 수 있습니다. 키보드 단축키 화면에서 명령 이름으로 현재 키를 확인합니다.
기본 단축키의 최신 목록과 명령 ID는 공식 Default Keyboard Shortcuts Reference에서 확인할 수 있습니다.
8. 5분 연습 과제
- 사용 중인 프로젝트에서 함수 호출 하나를 골라 F12로 정의로 이동하기
- Ctrl/Control+-로 정확히 원래 위치에 돌아오기
- 같은 함수에서 Alt/Option+F12로 Peek Definition 열고 Esc로 닫기
- Shift+F12로 참조 목록을 열어 서로 다른 파일의 사용처 두 곳 확인하기
- Ctrl/Command+Shift+O로 현재 파일의 가장 긴 함수 찾기
- Ctrl/Command+T로 프로젝트 전체에서 클래스 하나 찾기
F12로 정의 이동, Shift+F12로 참조 확인, Ctrl/Control+-로 원래 위치 복귀. 이 조합만 익혀도 낯선 코드를 읽는 속도가 크게 달라집니다.
· VS Code Code Navigation
· VS Code Default Keyboard Shortcuts Reference
· VS Code Keyboard Shortcuts
확인일: 2026년 7월 19일. 단축키는 VS Code 기본 키 바인딩 기준이며 운영체제, 키보드 배열, 키맵 확장 및 사용자 설정에 따라 달라질 수 있습니다.
'개발 > Visual Studio Code' 카테고리의 다른 글
| VS Code 리팩터링 실전 가이드: F2 이름 변경부터 Code Actions까지 (0) | 2026.07.22 |
|---|---|
| VS Code 디버깅 사용법|중단점·조건부 중단점·Logpoint 완전 정복 (0) | 2026.07.21 |
| VS Code Tasks 사용법|빌드·테스트·개발 명령 자동화하기 (0) | 2026.07.20 |
| VS Code 멀티 커서 사용법 총정리|반복되는 코드를 한 번에 수정하는 방법 (0) | 2026.07.17 |
| VS Code 기본 사용법 총 정리|초보자가 꼭 알아야 할 기능과 단축키 10가지 (0) | 2026.07.17 |