Visual Studio Code에서 Go 사용
Visual Studio Code의 Go 확장 프로그램을 사용하면 IntelliSense, 코드 탐색, 기호 검색, 테스트, 디버깅 등 다양한 기능을 사용하여 Go 개발에 도움을 받을 수 있습니다.

VS Code Marketplace에서 Go 확장을 설치할 수 있습니다.
VS Code Go를 사용하여 첫 번째 Go 애플리케이션을 빌드하는 방법에 대한 설명을 보려면 "Getting started with VS Code Go"를 시청하세요.
이 문서는 Go 확장 프로그램이 제공하는 기능의 일부만을 설명합니다. 지원되는 기능의 최신 전체 목록은 확장 프로그램의 문서를 참조하세요.
IntelliSense

IntelliSense 기능은 Go 팀에서 유지 관리하는 Go 언어 서버인 gopls에서 제공합니다. gopls 설정을 사용하여 gopls의 동작을 구성할 수 있습니다.
의미론적 구문 강조
기본 TextMate 기반 구문 강조 표시보다 더 나은 구문 강조 표시를 위해서는 Gopls의 ui.semanticTokens 설정을 켜서 의미론적 강조 표시를 활성화하는 것이 좋습니다.
"gopls": { "ui.semanticTokens": true }
자동 완성
Go 파일을 입력하는 동안 IntelliSense에서 제안된 완성을 볼 수 있습니다. 현재, 가져온, 아직 가져오지 않은 패키지의 멤버에 대해서도 작동합니다. 패키지 이름 뒤에 .을 입력하면 해당 패키지 멤버에 대한 제안이 표시됩니다.
팁: ⌃Space (Windows, Linux Ctrl+Space)를 사용하여 제안을 수동으로 트리거하세요.
호버 정보
변수, 함수 또는 구조체 위에 마우스를 올리면 해당 항목에 대한 문서, 서명 등 정보를 얻을 수 있습니다.
시그니처 도움말
함수를 호출할 때 (를 열면 함수에 대한 서명 도움말 팝업이 표시됩니다. 매개변수를 계속 입력하면 힌트(밑줄)가 다음 매개변수로 이동합니다.
팁: 함수 호출에서 커서가
()안에 있을 때 서명 도움말을 수동으로 트리거하려면 ⇧⌘Space (Windows, Linux Ctrl+Shift+Space)를 사용하세요.
코드 탐색
코드 탐색 기능은 편집기의 컨텍스트 메뉴에서 사용할 수 있습니다.
- 정의로 이동 F12 - 유형 정의의 소스 코드로 이동합니다.
- 유형 정의로 이동 - 기호를 정의하는 유형으로 이동합니다.
- 정의 미리 보기 ⌥F12 (Windows Alt+F12, Linux Ctrl+Shift+F10) - 유형 정의가 있는 미리 보기 창을 엽니다.
- 참조로 이동 ⇧F12 (Windows, Linux Shift+F12) - 유형에 대한 모든 참조를 표시합니다.
- 호출 계층 구조 보기 ⇧⌥H (Windows, Linux Shift+Alt+H) - 함수에서 호출하거나 함수로 호출된 모든 호출을 표시합니다.
- 구현으로 이동 ⌘F12 (Windows, Linux Ctrl+F12) - 인터페이스의 모든 구현 목록이 있는 미리 보기 창을 열거나(인터페이스 유형 기호를 사용하여 트리거된 경우) 또는 유형이 구현하는 인터페이스를 엽니다(구체적인 유형 기호를 사용하여 트리거된 경우).
- 모든 구현 찾기 - 인터페이스의 모든 구현을 표시합니다(인터페이스 유형 기호를 사용하여 트리거된 경우) 또는 유형이 구현하는 인터페이스를 표시합니다(구체적인 유형 기호를 사용하여 트리거된 경우).
명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 기호로 이동 명령을 사용하여 기호 검색을 통해 탐색할 수 있습니다.
- 파일 내 기호로 이동 - ⇧⌘O (Windows, Linux Ctrl+Shift+O)
- 작업 영역 내 기호로 이동 - ⌘T (Windows, Linux Ctrl+T)
Go: Toggle Test File 명령을 사용하여 Go 파일과 테스트 구현 간에 앞뒤로 탐색할 수도 있습니다.
빌드 및 진단
Go 언어 서버(gopls)는 작업 영역에서 발견된 빌드 및 vet 오류를 감지합니다. 위의 명령을 실행하여 발생하는 오류 및 경고는 편집기에서 빨간색/녹색 물결선으로 표시됩니다. 이러한 진단은 문제 패널(보기 > 문제)에도 표시됩니다.
go.lintOnSave 설정을 사용하여 추가 린트 검사를 추가하고 go.lintTool 설정을 사용하여 원하는 린팅 도구(staticcheck, golangci-lint 또는 revive)를 구성할 수 있습니다.
서식
⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I) 또는 명령 팔레트 또는 편집기의 컨텍스트 메뉴에서 문서 서식 명령을 실행하여 Go 파일을 서식 지정할 수 있습니다.
기본적으로 Go 파일을 저장할 때 서식 지정이 실행됩니다. [go] 언어 식별자에 대해 editor.formatOnSave를 false로 설정하여 이 동작을 비활성화할 수 있습니다. JSON 설정 파일을 사용하여 변경할 수 있습니다.
"[go]": {
"editor.formatOnSave": false
}
Go 파일에 대해 여러 서식 지정 도구가 활성화된 경우 Go 확장을 기본 서식 지정 도구로 선택할 수 있습니다.
"[go]": {
"editor.defaultFormatter": "golang.go"
}
서식 지정은 gopls에서 제공합니다. gofumpt 스타일 서식 지정을 원하는 경우 gopls가 gofumpt를 사용하도록 구성할 수 있습니다.
"gopls": {
"formatting.gofumpt": true
}
테스트
VS Code의 테스트 UI 및 편집기 CodeLens 요소는 사용자가 특정 함수, 파일, 패키지 또는 작업 영역에 대한 테스트, 벤치마크, 프로필을 쉽게 실행할 수 있도록 합니다.
또는 동일한 기능을 명령 집합을 통해 사용할 수 있습니다.
명령 팔레트에서 "Go: test"를 입력하여 탐색할 수 있는 많은 테스트 관련 명령이 있습니다.

위의 처음 세 가지는 gotests를 사용하여 현재 패키지, 파일 또는 커서 위치의 함수에 대한 테스트 스켈레톤을 생성하는 데 사용할 수 있습니다. 마지막 몇 가지는 go test를 사용하여 현재 패키지, 파일 또는 커서 위치의 테스트를 실행하는 데 사용할 수 있습니다. 테스트 커버리지를 얻기 위한 명령도 있습니다.
확장이 테스트를 실행하고 테스트 커버리지를 계산하도록 구성할 수 있습니다.
go.testOnSavego.coverOnSavego.testFlags
패키지 가져오기
확장은 기본적으로 가져온 항목을 정리하고 사용되지 않는 가져온 항목을 제거합니다. 다른 동작을 위해서는 이 지침에 따라 언어별 기본 설정을 재정의할 수 있습니다.
Go: Add Import 명령을 실행하여 Go 파일에 가져올 수 있는 패키지 목록을 가져옵니다. 하나를 선택하면 Go 파일의 import 블록에 추가됩니다.
리팩터링
리팩토링할 영역(예: 변수, 함수 본문 등)을 선택합니다. 선택한 영역에 나타나는 코드 액션 전구 아이콘을 클릭하거나 VS Code 컨텍스트 메뉴에서 리팩토링... 또는 기호 이름 바꾸기 (F2)를 선택합니다.
디버깅
Go 확장은 Delve 디버거를 활용하여 Go 코드를 디버깅할 수 있게 해줍니다.
설정 단계, 지원되는 기능, 구성, 원격 디버깅에 대한 정보 및 문제 해결 가이드에 대해서는 VS Code에서 Go 프로그램 디버그하기를 참조하세요. 변수 검사, 중단점 설정 및 언어에 따라 다르지 않은 기타 활동과 같은 일반 디버깅 기능에 대해서는 VS Code 디버깅을 검토하세요.
Go에 고유한 일부 기능은 다음과 같습니다.
- 로컬 및 원격 디버깅
- Delve의 표현식 구문을 사용한 데이터 검사
- DEBUG CONSOLE의
dlv명령을 사용한 동적 구성 변경 및 검사 옵션 - 시스템 고루틴 숨기기/표시 기능(
hideSystemGoroutines구성 사용) - 분해 보기 지원(소스 코드를 마우스 오른쪽 버튼으로 클릭하고 분해 보기 열기 선택)
- 실험적인 함수 호출, 코어 검사, Mozilla
rr지원
다음 단계
VS Code 내 Go 확장 기능의 기능 개요를 간략하게 살펴보았습니다. 자세한 내용은 Go 확장 프로그램 README에 제공된 세부 정보를 참조하세요.
Go 확장의 최신 기능/버그 수정에 대한 정보를 얻으려면 CHANGELOG를 참조하세요.
문제가 있거나 기능 요청이 있는 경우 Go 확장 프로그램 vscode-go 리포지토리에 자유롭게 기록해 주세요.
VS Code에 대해 더 알고 싶으시면 다음 주제를 시도해 보세요.
- 기본 편집 - VS Code 편집기의 기본에 대한 빠른 소개.
- 확장 프로그램 설치 - Marketplace에서 사용할 수 있는 다른 확장 프로그램에 대해 알아봅니다.
- 코드 탐색 - 소스 코드를 빠르게 이동합니다.