# GitHub 코드 탐색

GitHub에서 직접 코드를 탐색하여 리포지토리의 내부와 리포지토리 간의 관계를 이해할 수 있습니다.

<!-- If you make changes to this feature, check whether any of the changes affect languages listed in /get-started/learning-about-github/github-language-support. If so, please update the article accordingly. -->

## GitHub의 코드 탐색 방법

코드 탐색을 사용하면 해당 엔터티에 대한 참조에 해당하는 명명된 엔터티의 정의와 엔터티 정의에 해당하는 참조를 표시하고 연결하여 코드를 읽고 탐색하고 이해할 수 있습니다.

![함수가 강조 표시된 파일을 보여 주는 스크린샷 팝업에는 “정의” 및 “참조” 두 탭의 함수에 대한 정보가 있습니다.](/assets/images/help/repository/code-navigation-popover.png)

코드 탐색은 open source [`tree-sitter`](https://github.com/tree-sitter/tree-sitter) 라이브러리를 사용합니다. 다음 언어는 코드 탐색을 지원합니다.

* Bash
* C
* C#
* C++
* CodeQL
* Elixir
* Go
* JSX
* Java
* JavaScript
* Lua
* PHP
* 프로토콜 버퍼
* Python
* R
* Ruby
* Rust
* Scala
* Starlark
* Swift
* TypeScript

코드 탐색을 사용하도록 리포지토리에서 아무것도 구성할 필요가 없습니다. 모든 리포지토리에서 지원되는 이러한 언어에 대한 코드 탐색 정보를 자동으로 추출합니다.

GitHub는 오픈 소스 [`tree-sitter`](https://github.com/tree-sitter/tree-sitter) 라이브러리에 기반하여 코드 탐색 방법을 개발했습니다. 이 방법은 리포지토리의 모든 정의와 참조를 검색하여 지정된 이름의 엔터티를 찾습니다.

바로 가기 키를 사용하여 코드 파일 내에서 탐색할 수 있습니다. 자세한 내용은 [단축키](/ko/get-started/accessibility/keyboard-shortcuts#navigating-within-code-files)을(를) 참조하세요.

## 기호 창 사용

이제 기호 창을 사용하여 코드의 함수 또는 클래스와 같은 기호를 빠르게 보고 탐색할 수 있습니다. 단일 파일, 리포지토리의 모든 파일 또는 GitHub의 모든 공용 리포지토리에서 기호를 검색할 수 있습니다.

기호 검색은 코드 검색의 기능입니다. 자세한 내용은 [GitHub Code Search 구문 이해](/ko/search-github/github-code-search/understanding-github-code-search-syntax#symbol-qualifier)을(를) 참조하세요.

1. 리포지토리를 선택한 다음, 기호가 포함된 파일로 이동합니다.

2. 기호 창을 표시하려면 파일 콘텐츠 위에서 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code-square" aria-label="The code square icon" role="img"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>을(를) 클릭합니다.

   또는 파일에서 적합한 기호를 클릭하여 기호 창을 열 수 있습니다. 클릭 가능한 기호는 커서를 올릴때 노란색으로 강조 표시됩니다.

3. 기호 창 또는 파일 자체 내에서 찾으려는 기호를 클릭합니다.

   * 리포지토리 전체에서 기호를 검색하려면 기호 창에서 **이 리포지토리에서 이 기호 검색**을 클릭합니다. GitHub의 모든 리포지토리에서 기호를 검색하려면 **모든 리포지토리**를 클릭합니다.

4. 기호에 대한 참조 사이를 이동하려면 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="The downwards-facing chevron icon" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg> 또는 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-up" aria-label="The upwards-facing chevron icon" role="img"><path d="M3.22 10.53a.749.749 0 0 1 0-1.06l4.25-4.25a.749.749 0 0 1 1.06 0l4.25 4.25a.749.749 0 1 1-1.06 1.06L8 6.811 4.28 10.53a.749.749 0 0 1-1.06 0Z"></path></svg>을 클릭합니다.

5. 특정 기호에 대한 참조로 이동하려면 이 파일의 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="chevron-down" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg> 기호 검색 결과**를 클릭하십시오.

6. 특정 기호 검색을 종료하려면 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-arrow-left" aria-label="arrow-left" role="img"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg> All Symbols**를 클릭합니다.

## 함수 또는 메서드의 정의로 이동

파일에서 함수 또는 메서드 호출을 클릭하여 동일한 리포지토리 내에서 함수 또는 메서드 정의로 이동할 수 있습니다.

![함수 창의 스크린샷. "정의"라는 섹션은 진한 주황색으로 윤곽이 그려져 있습니다.](/assets/images/help/repository/jump-to-definition-tab.png)

## 함수 또는 메서드의 모든 참조 찾기

파일에서 함수 또는 메서드 호출을 클릭하여 동일한 리포지토리 내에서 함수 또는 메서드에 대한 모든 참조를 찾을 수 있습니다.

![함수 창의 스크린샷. "3 참조"라는 섹션은 진한 주황색으로 윤곽이 그려져 있습니다.](/assets/images/help/repository/find-all-references-tab.png)

## 코드 탐색 문제 해결

코드 탐색을 사용하도록 설정했지만 함수 및 메서드 정의에 대한 링크가 표시되지 않는 경우:

* 코드 탐색은 활성 분기에 대해서만 작동합니다. 브랜치에 푸시하고 다시 시도하세요.
* 코드 탐색은 파일이 100,000개 미만인 리포지토리에서만 작동합니다.

## 추가 참고 자료

* [GitHub 코드 검색 정보](/ko/search-github/github-code-search/about-github-code-search)