Visual Studio Code에서 Swift
Swift는 초심자에게 친숙하면서도 전문가에게는 강력한 범용 프로그래밍 언어입니다. 빠르고 현대적이며 안전하며 작성하기 즐겁습니다. 이 주제에서는 swiftlang.swift-vscode 확장 프로그램을 사용하여 Visual Studio Code 내에서 Swift를 설정하고 사용하는 방법에 대해 자세히 설명합니다.
Swift 확장 프로그램에는 다음 기능이 포함됩니다.
- 구문 강조 및 코드 완성
- 정의로 이동 및 모든 참조 찾기와 같은 코드 탐색 기능
- 코드 리팩토링 및 빠른 수정
- Swift 패키지 관리자를 지원하는 패키지 관리 및 작업
- 풍부한 디버깅 지원
- XCTest 또는 Swift Testing 프레임워크를 사용한 테스트
Swift 확장 프로그램은 다음 프로젝트를 지원하도록 설계되었습니다.
- Swift 패키지 관리자 프로젝트 (예:
Package.swift사용) compile_commands.json을 생성할 수 있는 프로젝트 (예: CMake 사용)
확장 설치
- 먼저 Swift를 설치하세요. 시스템에 Swift가 설치되어 있지 않다면 Swift.org의 시작 가이드를 참조하세요.
- Visual Studio Code를 다운로드하여 설치하세요.
- VS Code Marketplace 또는 VS Code 확장 프로그램 창에서 직접 Swift 확장 프로그램을 설치하세요.

새 Swift 프로젝트 만들기
새 Swift 프로젝트를 만들려면 Swift 확장 프로그램의 Swift: Create New Project... 명령을 사용하여 프로세스를 진행할 수 있습니다. 이 명령은 명령 팔레트를 열고 아래 지침을 따라 찾을 수 있습니다.
- macOS: CMD+Shift+P
- 기타 플랫폼: Ctrl+Shift+P

- 템플릿 목록에서 만들고 싶은 프로젝트 유형을 선택하세요.
- 프로젝트가 저장될 디렉토리를 선택하세요.
- 프로젝트 이름을 지정하세요.
- 새로 생성된 프로젝트를 엽니다. 프로젝트를 현재 창, 새 창에서 열거나 현재 작업 공간에 추가할지 묻는 메시지가 표시됩니다.
swift.openAfterCreateNewProject설정을 사용하여 기본 동작을 구성할 수 있습니다.
언어 기능
Swift 확장 프로그램은 언어 기능을 지원하기 위해 SourceKit LSP를 사용합니다. SourceKit LSP는 편집기에서 다음과 같은 기능을 제공합니다. 각 주제에 대한 VS Code 설명서를 보려면 해당 링크를 사용하세요.
SourceKit LSP는 일반적인 작업을 자동화하는 코드 작업도 제공합니다. VS Code의 코드 작업은 편집기 여백 근처에 전구 모양으로 표시됩니다(예는 아래 스크린샷 참조). 전구를 클릭하면 다음을 포함한 사용 가능한 작업이 표시됩니다.
Package.swift에 대상 추가- JSON을 프로토콜로 변환
- 함수에 문서화 추가

Swift 6.1 이전에는 언어 기능을 사용하기 전에 프로젝트에 대해 명령줄 또는 VS Code의 작업을 사용하여 swift build 명령을 실행해야 합니다. 이렇게 하면 SourceKit-LSP의 인덱스가 채워집니다.
Swift 작업
Visual Studio Code는 외부 도구를 실행하는 방법으로 작업을 제공합니다. 자세한 내용은 작업을 통한 외부 도구 통합 설명서를 참조하세요.
Swift 확장 프로그램은 Swift Package Manager를 통해 빌드할 수 있는 몇 가지 내장 작업을 제공합니다. 프로젝트의 루트 폴더에 tasks.json 파일을 만들어 사용자 지정 작업을 구성할 수도 있습니다. 예를 들어, 이 tasks.json은 릴리스 모드에서 Swift 대상의 빌드를 수행합니다.
{
"version": "2.0.0",
"tasks": [
{
"type": "swift",
"label": "Swift Build All - Release",
"detail": "swift build --build-tests",
"args": ["build", "--build-tests", "-c", "release"],
"env": {},
"cwd": "${workspaceFolder}",
"group": "build"
}
]
}
위 작업은 build 그룹으로 구성됩니다. 즉, macOS의 CMD+Shift+B 또는 다른 플랫폼의 Ctrl+Shift+B로 열 수 있는 run build tasks 메뉴에 표시됩니다.

빌드 중에 발생하는 모든 오류는 SourceKit-LSP에서 제공하는 진단과 함께 편집기에 진단으로 표시됩니다. 다른 빌드 작업을 실행하면 이전 빌드 작업의 진단이 지워집니다.
디버깅
Visual Studio Code는 풍부한 디버깅 환경을 제공합니다. 자세한 내용은 디버깅 설명서를 참조하세요.
Swift 확장 프로그램은 디버깅 지원을 활성화하기 위해 LLDB DAP 확장에 의존합니다.
기본적으로 확장 프로그램은 Swift 패키지의 각 실행 대상에 대한 런처 구성을 생성합니다. 프로젝트의 루트 폴더에 launch.json 파일을 추가하여 직접 구성할 수 있습니다. 예를 들어, 이 launch.json은 사용자 지정 인수를 사용하여 Swift 실행 파일을 시작합니다.
{
"configurations": [
{
"type": "swift",
"name": "Debug swift-executable",
"request": "launch",
"args": ["--hello", "world"],
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/.build/debug/swift-executable",
"preLaunchTask": "swift: Build Debug swift-executable"
}
]
}
VS Code의 디버그 뷰를 통해 디버깅 세션을 시작할 수 있습니다.
- 디버그하려는 런처 구성을 선택합니다.
- 녹색 재생 버튼을 클릭하여 디버깅 세션을 시작합니다.
실행 파일이 시작되고 코드 실행 중에 중단점에서 Swift 코드에 중단점을 설정할 수 있습니다.
아래 스크린샷은 Hello World 프로그램 디버깅의 예입니다. 중단점에서 일시 중지되었으며 디버그 뷰에 범위 내 변수의 값이 표시되는 것을 볼 수 있습니다. 편집기에서 식별자에 마우스를 가져가면 변수 값을 볼 수도 있습니다.

테스트 탐색기
Visual Studio Code는 왼쪽 사이드바에 Test Explorer 뷰를 제공하며, 이를 사용하여
- 테스트로 이동
- 테스트 실행
- 테스트 디버그
Swift 확장 프로그램은 XCTest와 Swift Testing을 지원합니다. 테스트를 작성하면 Test Explorer에 자동으로 추가됩니다.

테스트 디버그
- 중단점 설정
Debug Test프로필을 사용하여 테스트, 테스트 제품군 또는 전체 테스트 대상을 실행합니다.
Run Test with Coverage 프로필은 테스트 중인 코드를 계측하고 테스트 실행이 완료되면 코드 커버리지 보고서를 엽니다. 커버된 파일을 탐색할 때 테스트 중에 실행된 줄 번호는 녹색으로 표시되고, 누락된 줄 번호는 빨간색으로 표시됩니다. 줄 번호에 마우스를 가져가면 커버된 줄이 몇 번 실행되었는지 표시됩니다. 줄 실행 횟수는 Test: Show Inline Coverage 명령을 사용하여 표시하거나 숨길 수 있습니다.
tags로 주석이 달린 Swift Testing 테스트는 @TestTarget:tagName을 사용하여 Test Explorer에서 필터링할 수 있습니다. 그런 다음 필터링된 테스트 목록을 실행하거나 디버그할 수 있습니다.
Swift VS Code 확장 프로그램은 Swift 5.10 이하 버전에서 Swift Testing 테스트 실행을 지원하지 않습니다.
고급 툴체인 선택
Swift 확장 프로그램은 설치된 Swift 툴체인을 자동으로 감지합니다. 그러나 여러 툴체인이 설치된 경우 Swift: Select Toolchain... 명령을 사용하여 툴체인을 선택할 수도 있습니다.
이것은 기본 머신 툴체인 이외의 툴체인으로 VS Code를 구성하는 데 사용되는 고급 기능입니다. 일반적으로 macOS에서는 xcode-select를, Linux에서는 swiftly를 사용하여 전역적으로 툴체인 간에 전환하는 것이 좋습니다.
새 경로를 구성할 위치를 선택하라는 메시지가 표시될 수 있습니다. 옵션은 다음과 같습니다.
- 사용자 설정에 저장
- 작업 공간 설정에 저장
작업 공간 설정이 사용자 설정보다 우선한다는 점을 명심하세요.

그러면 Swift 확장 프로그램이 새 툴체인을 적용하기 위해 확장 프로그램을 다시 로드하라는 메시지를 표시합니다. 그렇지 않으면 확장 프로그램이 제대로 작동하지 않으므로 반드시 다시 로드해야 합니다.
