GoLand 2021.3은 WSL의 Go 프로젝트, Inline Function(함수 인라인화) 리팩터링 및 베타 모드의 원격 개발을 기본적으로 지원합니다.
이번 버전부터 저장 시 gofmt
가 기본적으로 활성화되며, ARM64용 Delve, Show Types(타입 표시) 옵션 등과 같은 몇 가지 디버거 개선 사항이 도입되었습니다.
또한 문자열을 숫자로 변환하기 위한 두 개의 새로운 접미사 완성, testify
어설션이 있는 테이블 테스트용 새 템플릿, 구조체 태그의 값에 대한 향상된 완성 기능을 제공합니다.
이전과 마찬가지로 GoLand의 새 버전에서는 웹 개발 개선 사항과 데이터베이스 작업을 위한 다양한 새 기능을 제공합니다.
대화형으로 알아보고 싶으시다면 시작 화면에서 GoLand 2021.3의 새로운 기능 튜토리얼을 완료해보세요.
WSL에서 프로젝트를 열고 여기에 있는 SDK를 지정하는 기능을 추가했습니다.
WSL에서 새 프로젝트를 만들거나 기존 프로젝트를 여는 경우, 이 프로젝트로 작업하려면 WSL에서 Go SDK를 사용해야 한다고 GoLand가 알려줍니다. Go SDK를 다운로드하거나 \\wsl$
하위 디렉터리에서 기존 SDK를 선택할 수 있습니다.
gofmt
저장 시 gofmt
및 GoLand의 자체 서식 지정 도구를 실행할 수 있는 Reformat code(코드 서식 다시 지정) 옵션이 이제 기본적으로 활성화됩니다.
이 변경 사항은 일부 사용자에게 낯설 수 있으므로 모든 프로젝트에서 알림이 한 번 표시되도록 했습니다. Don’t show again(다시 표시 안 함)을 클릭하여 알림을 해제할 수 있습니다.
Edit actions on save(저장 시 액션 편집)를 클릭하고 IDE에서 Settings(설정) | Tools(도구) | Actions on save(저장 시 액션)가 열리면 여기서 설정을 관리할 수 있습니다.
이제 함수 및 메서드에 Inline(인라인화) 리팩터링을 사용할 수 있습니다. 사용해 보려면 함수, 메서드 또는 호출에 캐럿을 놓은 다음 Ctrl + Alt + N을 누르세요.
Inline 리팩터링을 호출하면 여러 옵션이 있는 팝업 창이 열립니다. 이 팝업에서 또한 Refactoring Preview(리팩터링 미리보기)를 열어 메서드 또는 함수의 모든 호출을 찾을 수 있습니다.
구조체 필드에 태그를 추가할 때 camelCase, snake_case 등 다양한 유형의 복합어가 처리되는 방식을 개선했습니다.
태그를 작성하면 GoLand에서 여러 옵션 목록을 제안합니다. 한 가지 옵션을 선택하면 IDE가 사용자의 선택을 기억했다가 이후 이 구조체의 다른 필드에 대한 목록에서 동일한 스타일을 먼저 제안합니다.
문자열을 숫자로 변환하기 위한 몇 가지 새로운 접미사를 도입했습니다. 큰따옴표 안에 숫자와 점을 차례로 입력하기만 하면 GoLand가 숫자 분석을 위한 두 가지 옵션인 parseInt
및 parseFloat
를 제안합니다.
Show Usages(사용 위치 표시) 기능이 개선되었습니다. 이제 사각형 아이콘을 클릭하여 찾은 사용 위치에 대한 소스 코드 미리보기를 켤 수 있습니다.
이제 프로젝트의 소스와 실행 파일이 저장된 원격 시스템의 폴더에 의미 있는 이름을 지정할 수 있습니다. 폴더를 구성하려면 Run(실행) | Manage targets(대상 관리) | Additional Settings(추가 설정)로 이동하세요.
이제 프로젝트 전역의 디폴트 실행 대상을 설정할 수 있습니다. Run(실행) | Manage targets(대상 관리)로 이동하세요. Project default target(프로젝트 디폴트 대상) 옵션이 포함된 창이 열립니다. 프로젝트의 특정 대상을 선택하면 모든 새 구성이 이 대상에 대해 생성됩니다.
프록시 서버를 지정할 수 있도록 SSH Configurations(SSH 구성)에 새로운 HTTP/SOCKS Proxy(HTTP/SOCKS 프록시) 섹션을 추가했습니다. 이 섹션은 Settings(설정) | Tools(도구) | SSH Configurations(SSH 구성)에서 찾을 수 있습니다. 또는 열린 프로젝트에서 Run(실행) | Manage Targets(대상 관리) | ...로 이동하세요.
nil
인터페이스의 표현 개선Go의 인터페이스에는 두 가지 구성 요소, 즉 타입과 해당 타입의 값이 있습니다. 인터페이스가 nil
이 되려면 두 구성 요소가 모두 nil
이어야 합니다.
인터페이스의 값에 int
에 대한 nil
포인터가 포함된 경우, 해당 인터페이스는 내부 타입이 nil
이 아니기 때문에(실제 *int
) nil
이 되지 않으므로 혼란스러울 수 있습니다.
이러한 경우를 탐지하기 위해 Debug(디버그) 도구 창의 Variables(변수) 탭에서 인터페이스가 표시되는 방식을 변경했습니다. 예를 들어, 내부 타입이 *int
이고 값이 nil
인 인터페이스가 있다면 다음과 같이 표시됩니다. {interface{} | *int} *int(nil)
GoLand에서 디버거의 Variables(변수) 탭에 더 이상 전체 패키지 이름이 표시되지 않고 전체 이름의 마지막 부분만 표시됩니다.
객체 타입이 Variables(변수) 탭에서 너무 많은 공간을 차지하는 경우, 탭 영역을 마우스 오른쪽 버튼으로 클릭하고 표시되는 메뉴에서 Show Types(타입 표시) 옵션을 비활성화할 수 있습니다. 같은 메뉴에서 다시 선택하여 다시 활성화할 수 있습니다.
이 버전부터 GoLand에 ARM64 아키텍처용으로 빌드된 Delve가 번들로 포함되어 Linux ARM에서 즉시 디버그를 수행할 수 있습니다.
또한 GoLand가 특정 아키텍처에 대해 Delve를 번들로 제공하지 않는 경우 표시되는 오류 메시지를 개선했습니다. 이제 무엇이 잘못되었는지 IDE에서 명시적으로 알려줍니다.
testify
어설션을 위한 템플릿testify
어설션이 있는 테이블 테스트용 새 템플릿을 추가했습니다. 패키지에서 이미 assert
를 사용한 경우, Alt + Ins를 누르고 필요한 옵션을 선택하면 GoLand가 어설션을 포함한 일부 코드를 생성합니다.
GoLand now has a quick-fix for an inspection that warns you about incorrect formatting of error strings: “Error strings should not be capitalized or end with punctuation”. Alt + Enter를 누르면 GoLand가 문자열 서식 수정을 제안합니다.
내보내지 않은 타입을 반환하는 내보낸 함수를 작성하면 GoLand가 해당 타입을 내보내는 빠른 수정을 제안합니다.
context.TODO()
검사 context.TODO()
의 사용 위치를 강조 표시하는 검사를 추가했습니다. Settings(설정) | Editor(에디터) | Inspections(검사)에서 이 검사를 활성화할 수 있습니다. 이 검사는 작성 당시 어떤 Context
를 사용해야 했는지 확실하지 않았던 경우에 context.TODO()
를 변경하라는 알림의 역할을 합니다.
//TODO implement me
주석 메서드 구현 액션을 사용할 때 생성되는 템플릿에 대해 //TODO implement me
주석을 추가했습니다. 이 특별한 주석은 에디터에서 강조 표시되고 색인이 생성되며 TODO 도구 창에 나열되어 구현되지 않은 메서드에 대한 알림의 역할을 할 수 있습니다.
GoLand는 이제 원격 개발 워크플로의 베타 버전을 지원합니다.
GoLand의 시작 화면에서 바로 원격 개발 워크플로를 설정할 수 있습니다. 또는, 모든 원격 백엔드에 대한 진입점 역할을 하는 새로운 애플리케이션인 JetBrains Gateway를 사용할 수 있습니다.
이 페이지에서 원격 개발을 시작하는 방법에 대한 지침을 찾아보세요.
GoLand의 HTTP 클라이언트가 이제 gRPC 요청을 지원하며 완성 기능을 제공합니다. GRPC
키워드로 요청을 시작하면 HTTP 클라이언트가 이를 gRPC 요청으로 처리합니다.
.proto
파일에서 여백 아이콘을 클릭하여 HTTP 클라이언트에서 gRPC 요청을 자동으로 생성할 수 있습니다.
현재, HTTP 클라이언트는 단항 및 서버 스트리밍 RPC를 실행할 수 있습니다. 일반 HTTP 요청과 마찬가지로 요청 본문과 응답은 일반 JSON 파일입니다.
여기에서 몇 가지 다른 HTTP 클라이언트 개선 사항에 대해 읽어볼 수 있습니다.
Checkout and Rebase on Current(체크아웃 후 현재 브랜치상에서 리베이스) 액션을 사용하면 선택한 브랜치를 체크아웃하고 현재 체크아웃된 브랜치상에서 리베이스할 수 있습니다. 이 액션을 이제 원격 브랜치에서 사용할 수 있습니다.
일부 커밋은 내보낼 준비가 되었으나 다른 커밋은 아직 작업 중인 경우가 있습니다. 이러한 경우 확신할 수 있는 커밋만 푸시하는 게 좋습니다.
이제 Git 도구 창의 Log(로그) 탭에서 선택한 커밋까지 푸시할 수 있습니다. 사용하려면 멈출 지점의 커밋을 선택한 후 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 호출하고, Push All up to Here(여기까지의 내용을 모두 푸시) 액션을 선택하면 됩니다.
VCS 설정을 더 쉽게 찾고 구성할 수 있도록 변경했습니다. 이제 Settings(설정)의 Version Control(버전 관리) 노드에 사용 가능한 모든 설정이 나열됩니다.
이제 Debug(디버그) 도구 창의 Variables(변수) 탭에서 Evaluate expression(표현식 평가) 기능을 사용할 수 있습니다.
이제 탭을 강조 표시된 영역으로 드래그앤드롭하여 Run(실행) 도구 창을 분할할 수 있습니다. 도구 창의 분할을 해제하려면 상단 패널을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 Unsplit(분할 해제)을 선택합니다.
Bookmarks(북마크) 도구 창이 새롭게 도입되었습니다. 이제부터 F11 단축키를 이용해 중요한 것으로 표시한 모든 파일과 폴더가 이 창에 표시됩니다.
Flame 그래프에서 두 스냅샷의 차이를 시각화할 수 있습니다. Shift를 두 번 누르고 검색창에 "Open Profiler Snapshots"(프로파일러 스냅샷 열기)를 입력합니다. 목록에서 스냅샷을 열고 동일한 작업을 반복하여 다른 스냅샷을 엽니다.
그런 다음 스냅샷 중 하나의 탭에서 Compare With Baseline(기준선과 비교) 버튼을 클릭합니다. 메뉴에서 비교할 스냅샷을 선택합니다. 비교 결과를 포함한 별도의 Diff 탭이 열립니다.
GoLand’s terminal supports the new ConPTY API on Windows. We addressed several problems users were having with the old implementation, which was based on winpty, and enabled PTY on Windows by default.
ConPTY를 사용하면 기본 제공 터미널에서 24비트 색상이 지원됩니다.
이전에는 원격 시스템에서 작업하는 동안 GoLand 터미널에 문자를 입력할 때 대기 시간으로 인해 IDE가 로컬 시스템에서만큼 빠르게 문자를 표시할 수 없었습니다.
이제 선행 입력 지원이 도입되어 더 이상 이 문제가 발생하지 않습니다. 기본 제공 터미널이 텍스트 수정을 예측하고 즉시 밝은 회색으로 그 내용을 표시합니다.
import
문에서 URL 지원ES6 파일의 가져오기 경로에서 빠른 수정을 사용하여 원격 ES6 모듈을 다운로드할 수 있습니다. 이 모듈은 모든 종속성과 함께 다운로드됩니다. 기능을 사용해 보려면 가져오기 경로에 캐럿을 놓은 다음 Alt + Enter를 누르고 Download module(모듈 다운로드)를 선택하세요.
HTML에서 코드 완성 기능이 작동하는 방식이 개선되었습니다. 에디터에서 태그 이름이나 약어를 입력하거나 코드 완성을 호출할 때마다 GoLand는 관련 제안을 즉시 표시합니다.
이전에는 여는 대괄호(<
)를 먼저 입력한 경우에만 표시되었습니다. 문자 엔티티 참조에 대한 코드 완성도 개선되었습니다.
에디터에서 바로 npm 패키지를 최신 버전으로 업데이트할 수 있습니다. package.json
파일을 열고 업데이트하려는 패키지 버전에 캐럿을 놓은 후, Alt + Enter를 누른 다음 Update ... to the latest version(...을 최신 버전으로 업데이트)을 선택합니다.
쉼표로 구분된 요소를 별도의 줄에 빠르게 배치하고 필요한 경우 한 줄로 되돌릴 수 있는 JavaScript 프로젝트용 인텐션 액션이 GoLand에 새롭게 도입되었습니다.
일정 범위의 셀에 대해 Aggregate view(집계 뷰)를 표시하는 기능을 추가했습니다. 뷰를 보려는 셀 범위를 선택한 다음 마우스 오른쪽 버튼으로 클릭하고 Show Aggregate View(집계 뷰 표시)를 선택하면 됩니다. 그러면 하나의 집계 값이 상태 표시줄에 표시되며 원하는 값을 선택할 수 있습니다.
에디터를 분할하고 동일한 테이블을 열면 데이터 에디터가 완전히 독립적으로 분리됩니다. 이 각각의 에디터에 서로 다른 필터링 및 순서 지정 옵션을 설정할 수 있습니다.
WHERE
및 HAVING
절에서 bool 표현식에 대한 새로운 검사가 제공됩니다.
표현식이 명시적으로 부울 값이 아닌 것 같으면 해당 표현식이 노란색으로 강조 표시되고 이러한 쿼리를 실행하기 전에 사용자에게 경고가 표시됩니다.
It works for ClickHouse, Couchbase, Db2, H2, Apache Hive/Spark, MySQL/MariaDB, Redshift, SQLite, and Vertica. 다른 모든 데이터베이스에서는 이 표현식이 오류로 강조 표시됩니다.
데이터 에디터에서 여러 값을 선택하고 해당 데이터로 이동할 수 있습니다.
GoLand가 CSV 파일에서 열 유형을 탐지하므로 이제 숫자 값별로 데이터를 정렬할 수 있습니다. 이전에는 열의 데이터가 텍스트로 처리되어 정렬이 예상대로 작동하지 않았습니다.
filter {}
및 sort {}
에 코드 완성 지원이제 MongoDB 컬렉션의 데이터를 필터링할 때 코드 완성이 작동합니다.
IDE의 나머지 부분과 별도로 데이터 에디터의 글꼴을 설정할 수 있습니다. 글꼴을 선택하려면 Settings(설정) | Tools(도구) | Database(데이터베이스) | Data views(데이터 뷰) | Use custom font(사용자 지정 글꼴 사용)로 이동하세요.
스크린 리더를 더 편안하게 사용할 수 있도록 몇 가지 접근성 문제를 해결했습니다. 도구 창 위젯 팝업과 마우스를 올려 놓을 때 나타나는 빠른 문서 팝업을 비활성화했습니다.
macOS에서도 접근성 지원이 개선되었습니다. VoiceOver 포커스와 관련된 몇 가지 문제를 해결하고 스크린 리더를 사용하여 프로젝트를 생성할 수 있도록 했습니다. 코딩 중 방해되지 않도록 소리가 재생되는 도움말 툴팁 설명의 개수를 줄였습니다.