이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

Java 소스 코드 탐색 및 편집

Visual Studio Code는 풍부한 편집 기능을 갖춘 소스 코드 편집기입니다. 이 문서에서는 Java 작업을 할 때 유용한 몇 가지 Java 전용 기능에 대해 알아보겠습니다.

아래 기능 사용 시 문제가 발생하면 이슈를 통해 문의해 주시기 바랍니다.

코드 탐색

개요 보기를 통해 현재 파일 내의 멤버를 편리하게 탐색할 수 있습니다. 프로젝트 보기도 프로젝트를 한눈에 파악하는 데 유용합니다. Java 편집기로서 호출 계층 구조, 타입 계층 구조, 정의 탐색, 워크스페이스에서 타입 검색 등도 지원합니다.

기호 검색

현재 파일 또는 워크스페이스에서 기호를 검색하여 코드를 더 빠르게 탐색할 수 있습니다.

워크스페이스에서 기호 검색

현재 워크스페이스에서 기호를 검색하려면 먼저 ⌘T (Windows, Linux Ctrl+T)를 누른 다음 기호 이름을 입력하세요. 그러면 이전과 같이 가능한 일치 항목 목록이 표시됩니다. 이미 열려 있지 않은 파일에서 발견된 일치 항목을 선택하면 해당 파일이 열린 후 일치 항목 위치로 이동합니다. 또는 빠른 열기(⌘P (Windows, Linux Ctrl+P))를 사용한 다음 '#' 명령을 입력하여 현재 워크스페이스를 검색할 수도 있습니다. ⌘T (Windows, Linux Ctrl+T)는 '#' 명령에 대한 바로 가기일 뿐이므로 모든 것이 동일하게 작동합니다.

현재 파일에서 기호 검색

현재 파일에서 기호를 검색하려면 빠른 열기(⌘P (Windows, Linux Ctrl+P))를 사용한 다음 '@' 명령을 입력하고 찾고 있는 기호 이름을 입력하세요. 입력할 때마다 가능한 일치 항목 목록이 표시되고 필터링됩니다. 일치 항목 목록에서 선택하여 해당 위치로 이동합니다.

정의 미리 보기

정의 미리 보기 기능을 사용하여 기호가 어떻게 정의되었는지 빠르게 살펴볼 수 있습니다. 이 기능은 현재 위치를 벗어나지 않고 살펴볼 수 있도록 미리 보기 창에 정의 근처의 몇 줄의 코드를 표시합니다.

기호의 정의를 미리 보려면 소스 코드에서 기호가 사용되는 곳에 커서를 놓고 ⌥F12 (Windows Alt+F12, Linux Ctrl+Shift+F10)를 누르세요. 또는 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭 후 정의 미리 보기 선택)에서 정의 미리 보기를 선택할 수도 있습니다.

정의로 이동

정의로 이동 기능을 사용하여 기호가 정의된 위치로 빠르게 이동할 수도 있습니다.

기호의 정의로 이동하려면 소스 코드에서 기호가 사용되는 곳에 커서를 놓고 F12를 누르세요. 또는 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭 후 정의로 이동 선택)에서 정의로 이동을 선택할 수도 있습니다. 기호에 대한 정의가 하나만 있는 경우 해당 위치로 직접 이동하고, 그렇지 않으면 이전 섹션에서 설명한 대로 경쟁하는 정의가 미리 보기 창에 표시되며 원하는 정의를 선택해야 합니다.

슈퍼 구현으로 이동

마우스 커서를 올리면 표시되는 슈퍼 구현으로 이동 링크를 클릭하여 클래스 구현 및 재정의 메서드를 추적할 수 있습니다.

Spring Navigation

호출 계층 구조

호출 계층 구조 보기는 함수에서 호출하거나 함수로 호출되는 모든 호출을 보여주며, 호출자의 호출자와 호출의 호출자로 드릴다운할 수 있습니다. 함수를 마우스 오른쪽 버튼으로 클릭하고 미리 보기 > 호출 계층 구조 미리 보기를 선택하세요.

Call Hierarchy Peek

함수 본문에서 마우스 오른쪽 버튼을 클릭하고 호출 계층 구조 표시를 선택할 수도 있습니다.

Call Hierarchy Menu

타입 계층 구조

타입 계층 구조 보기는 Java 객체 간의 상속 관계를 보여줍니다. 타입을 마우스 오른쪽 버튼으로 클릭하고 타입 계층 구조 표시를 선택하세요.

폴딩 영역

폴딩 영역을 사용하면 코드 조각을 접거나 펼쳐서 소스 코드를 더 잘 볼 수 있습니다.

스마트 선택

스마트 선택(의미론적 선택)을 사용하면 소스 코드에서 캐럿 위치의 의미론적 정보를 기반으로 선택 범위를 확장하거나 축소할 수 있습니다.

  • 선택 범위를 확장하려면 ⌃⇧⌘→ (Windows, Linux Shift+Alt+Right)를 사용하세요.
  • 선택 범위를 축소하려면 ⌃⇧⌘← (Windows, Linux Shift+Alt+Left)를 사용하세요.

의미론적 강조 표시

구문 강조 표시는 코드를 더 효율적으로 읽을 수 있도록 하는 중요한 기능입니다. 의미론적 강조 표시의 도움으로 VS Code는 Java 언어 서비스의 기호 정보를 기반으로 더 정확한 소스 코드 색상을 제공할 수 있습니다.

아래는 한 가지 예이며, 왼쪽은 의미론적 강조 표시를 사용한 결과이고 오른쪽은 구문 강조 표시만 사용한 결과입니다.

Semantic Highlighting

Java 의미론적 강조 표시의 자세한 내용은 Java 언어 지원 확장 위키에서 확인할 수 있습니다.

Spring Boot로 코드 탐색

Spring Boot Tools 확장은 Spring Boot 프로젝트에 대한 향상된 탐색 및 코드 완성 지원을 제공합니다.

  • @/: 정의된 모든 요청 매핑(매핑된 경로, 요청 메서드, 소스 위치) 표시
  • @+: 정의된 모든 빈(빈 이름, 빈 유형, 소스 위치) 표시
  • @>: 정의된 모든 함수(프로토타입 구현) 표시
  • @: 코드의 모든 Spring 주석 표시

Spring Navigation

Visual Studio Code의 Spring Boot 지원에 대해 자세히 알아보려면 Visual Studio Code의 Spring Boot를 읽어보세요.

코드 편집

IntelliSense를 통한 스마트 코드 완성 및 서명 세부 정보 덕분에 코드를 편집하는 것도 쉽습니다. 생산성을 더욱 높이기 위해 코드 조각과 Getters/Setters 생성, import 정리와 같은 다양한 코드 액션을 사용할 수 있습니다.

Visual Studio Code의 Java 지원은 코드 내의 문제를 자동으로 감지하고 빠른 수정 제안을 제공합니다.

리팩터링 및 코드 액션에 대한 자세한 내용은 리팩터링 및 소스 액션을 참조하세요.

IntelliSense

Visual Studio Code의 Java 코드 완성은 Language Support for Java™ by Red Hat에서 제공합니다. 이 확장은 Eclipse 뒤의 Java 개발 도구(JDT)와 동일한 도구로 구동되므로 동일한 수준의 지원을 기대할 수 있습니다.

또한 AI 기반 IntelliSense인 IntelliCode도 있습니다. 자주 사용할 가능성이 높은 항목을 완성 목록 상단에 배치하여 시간을 절약해 줍니다. IntelliCode 권장 사항은 100개 이상의 별을 가진 수천 개의 오픈 소스 프로젝트를 기반으로 하므로 고품질 프로젝트의 가장 일반적인 사용 사례를 기반으로 학습되었습니다. 코드의 컨텍스트와 결합하면 완성 목록이 이러한 관행을 홍보하도록 맞춤 설정됩니다. 다음은 IntelliCode for Java의 작동 예시입니다.

IntelliCode는 Java SE 및 Spring과 같은 인기 있는 Java 라이브러리 및 프레임워크와 잘 작동합니다. 모놀리식 웹 앱을 개발하든 최신 마이크로 서비스를 개발하든 관계없이 도움이 될 것입니다.

새 파일 만들기

VS Code는 Java 소스 파일을 만들 때 템플릿을 적용하는 것을 지원합니다. 파일 탐색기에서 .java 파일을 만들면 언어 서버가 자동으로 클래스 본문을 생성하고 패키지 정보를 채워줍니다.

코드 조각

Visual Studio Code는 생산성을 높이기 위해 클래스/인터페이스, syserr, sysout, if/else, try/catch, static main 메서드와 같이 널리 사용되는 다양한 Java 코드 조각을 지원합니다. Java 언어 서버의 정보를 사용하여 코드 조각 선택 중에 미리 보기도 제공합니다.

예를 들어, "sout" 또는 "sysout"을 입력하면 System.out.println()에 대한 코드 조각이 생성됩니다.
마찬가지로, "main" 또는 "psvm"을 입력하면 public static void main(String[] args) {}에 대한 코드 조각이 생성됩니다.

Code Snippet

바로 가기 목록은 다음과 같습니다.

코드 조각 바로 가기

바로 가기 키 설명
ctor 공용 생성자
dowhile Do-while 문
foreach, iter 배열 또는 Iterable 반복
fori 배열 반복
if If 문
ifelse If-else 문
ifnull null 검사 If 문
ifnotnull null이 아닌 검사 If 문
main, psvm 공용 static main 메서드
new 새 객체 생성
private_method private 메서드
private_static_method private static 메서드
prf private 필드
protected_method protected 메서드
public_method public 메서드
public_static_method public static 메서드
switch Switch 문
syserr, serr 표준 오류로 출력
sysout, sout 표준 출력으로 출력
systrace, soutm 현재 메서드를 표준 출력으로 출력
try_catch Try/catch 블록
try_resources Try-with-resources 문
while While 문

후위 조각 바로 가기

바로 가기 키 템플릿 내용 설명
cast ((SomeType) expr) 표현식을 새 유형으로 캐스팅
else if (!expr) 부정된 if 문 생성
for for (T item : expr) for 문 생성
fori for (int i = 0; i < expr.length; i++) 배열을 반복하는 for 문 생성
forr for (int i = expr.length-1; i >= 0; i--) 배열을 역순으로 반복하는 for 문 생성
if if (expr) if 문 생성
nnull if (expr != null) if 문을 생성하고 표현식이 null이 아닌지 확인
null if (expr == null) 표현식이 null인지 확인하는 if 문 생성
sysout System.out.println(expr) 영향을 받은 문자열을 System.out.println(..) 호출로 보냄
throw throw expr 주어진 예외를 던짐
var T name = expr 새 변수 생성
while while (expr) {} while 루프 생성
© . This site is unofficial and not affiliated with Microsoft.