Java 소스 코드 탐색 및 편집
Visual Studio Code는 풍부한 편집 기능을 갖춘 소스 코드 에디터입니다. 이 문서에서는 Java 작업 시 도움이 되는 몇 가지 Java 관련 기능들을 살펴보겠습니다.
아래 기능들을 사용하면서 문제가 발생하면 이슈를 등록하여 문의할 수 있습니다.
코드 탐색
개요 보기를 사용하면 현재 파일 내의 구성 요소를를 편리하게 탐색할 수 있습니다. 프로젝트 보기도 프로젝트의 전반적인 개요를 제공합니다. Java 에디터로서 호출 계층, 타입 계층, 정의 탐색, 작업 공간에서 타입 검색 등도 지원합니다.
심볼 검색
코드를 더 빠르게 탐색하기 위해 현재 파일이나 작업 공간에서 심볼을 검색할 수 있습니다.
작업 공간에서 심볼 검색
현재 작업 공간에서 심볼을 검색하려면 Ctrl+T
를 먼저 누른 다음 심볼 이름을 입력하세요. 이전과 같이 잠재적인 일치 항목 목록이 나타날 것입니다. 아직 열려있지 않은 파일에서 찾은 일치 항목을 선택하면 해당 파일이 열린 후 일치하는 위치로 이동합니다. 또는 Quick Open(Ctrl+P
)를 사용한 다음 '#' 명령을 입력하여 현재 작업 공간을 검색할 수도 있습니다. Ctrl+T
는 '#' 명령의 단축키일 뿐이므로 모든 것이 동일하게 작동합니다.
현재 파일에서 심볼 검색
현재 파일에서 심볼을 검색하려면 Quick Open(Ctrl+P
)를 사용한 다음 '@' 명령을 입력하고 찾고자 하는 심볼의 이름을 입력하세요. 잠재적인 일치 항목 목록이 나타나고 입력할 때마다 필터링됩니다. 일치 항목 목록에서 선택하여 해당 위치로 이동할 수 있습니다.
정의 미리보기
정의 미리보기 기능을 사용하여 심볼이 어떻게 정의되었는지 빠르게 살펴볼 수 있습니다. 이 기능은 미리보기 창 안에 정의 근처의 몇 줄의 코드를 표시하므로, 현재 위치에서 벗어나지 않고도 살펴볼 수 있습니다.
심볼의 정의를 미리보려면 소스 코드에서 해당 심볼이 사용된 곳 어디에나 커서를 놓고 Alt+F12
를 누르세요. 또는 컨텍스트 메뉴에서 Peek Definition를 선택할 수 있습니다(마우스 오른쪽 버튼을 클릭한 다음 Peek Definition 선택).
정의로 이동
또한 정의로 이동하는 기능을 사용하여 심볼이 정의된 곳으로 빠르게 이동할 수 있습니다.
심볼의 정의로 이동하려면 소스 코드에서 해당 심볼이 사용된 곳 어디에나 커서를 놓고 F12
를 누르세요. 또는 컨텍스트 메뉴에서 Go to Definition을 선택할 수 있습니다(마우스 오른쪽 버튼을 클릭한 다음 Go to Definition 선택). 심볼의 정의가 하나뿐인 경우 해당 위치로 직접 이동하지만, 경쟁하는 정의가 있는 경우 이전 섹션에서 설명한 대로 미리보기 창에 표시되며 이동하고자 하는 정의를 선택해야 합니다.
상위 구현으로 이동
마우스를 올렸을 때 나타나는 Go to Super Implementation 링크를 클릭하여 클래스 구현과 메서드 오버라이딩을 추적할 수 있습니다.
호출 계층
호출 계층 보기는 함수로부터의 모든 호출이나 함수에 대한 모든 호출을 보여주며 호출자의 호출자와 호출의 호출을 자세히 살펴볼 수 있게 해줍니다. 함수를 마우스 오른쪽 버튼으로 클릭하고 Peek > Peek Call Hierarchy를 선택하세요.
함수 본문에서 마우스 오른쪽 버튼을 클릭하고 Call Hierarchy를 선택할 수도 있습니다.
타입 계층
타입 계층 보기는 Java 객체 간의 상속 관계를 보여줍니다. 타입을 마우스 오른쪽 버튼으로 클릭하고 Show Type Hierarchy를 선택할 수 있습니다.
접기 영역
접기 영역을 사용하면 소스 코드를 더 잘 볼 수 있도록 코드 스니펫을 접거나 펼 수 있습니다.
스마트 선택
스마트 선택(의미론적 선택)을 사용하면 소스 코드에서 커서 위치의 의미론적 정보를 기반으로 선택 범위를 확장하거나 축소할 수 있습니다.
- 선택을 확장하려면
Shift+Alt+Right
를 사용하세요. - 선택을 축소하려면
Shift+Alt+Left
를 사용하세요.
의미론적 강조
구문 강조는 코드를 더 효율적으로 읽을 수 있게 해주는 중요한 기능입니다. 의미론적 강조의 도움으로 VS Code는 Java 언어 서비스의 심볼 정보를 기반으로 더 정확한 소스 코 드 색상을 제공할 수 있습니다.
아래는 단 하나의 예시입니다. 왼쪽은 의미론적 강조를 활성화한 후의 동작이고 오른쪽은 구문 강조만 있는 경우입니다.
Java 의미론적 강조에 대한 자세한 내용은 Java Language Support 확장 위키에서 확인할 수 있습니다.
Spring Boot로 코드 탐색
Spring Boot Tools 확장은 Spring Boot 프로젝트에 대한 향상된 탐색과 코드 완성 지원을 제공합니다.
@/
는 정의된 모든 요청 매핑을 보여줍니다 (매핑된 경로, 요청 메서드, 소스 위치)@+
는 정의된 모든 빈을 보여줍니다 (빈 이름, 빈 타입, 소스 위치)@>
는 모든 함수를 보여줍니다 (프로토타입 구현)@
는 코드의 모든 Spring 어노테이션을 보여줍니다
Visual Studio Code에서의 Spring Boot 지원에 대해 더 자세히 알아보려면 Visual Studio Code의 Spring Boot를 읽어보세요.
코드 편집
IntelliSense의 스마트 코드 완성 및 시그니처 상세 정보를 통해 코드 편집도 쉽습니다. 생산성을 더욱 향상시키기 위해 코드 스니펫뿐만 아니라 Getter/Setter 생성 및 가져오기 구성과 같은 다양한 코드 작업을 사용할 수 있습니다.
Visual Studio Code의 Java 지원은 코드 내의 문제를 자동으로 감지하고 빠른 수정 제안을 제공합니다.
리팩토링과 코드 작업에 대한 자세한 내용은 리팩토링 및 소스 작업을 참조하세요.
IntelliSense
Visual Studio Code의 Java용 코드 완성은 Red Hat의 Java™용 언어 지원에 의해 제공됩니다. 이 확장은 Eclipse의 Java 개발 도구(JDT)와 동일한 도구를 기반으로 하므로 동일한 수준의 지원을 기대할 수 있습니다.
또한 IntelliCode