GoLand의 새로운 기능

GoLand 2021.3은 WSL의 Go 프로젝트, Inline Function(함수 인라인화) 리팩터링 및 베타 모드의 원격 개발을 기본적으로 지원합니다.

이번 버전부터 저장 시 gofmt가 기본적으로 활성화되며, ARM64용 Delve, Show Types(타입 표시) 옵션 등과 같은 몇 가지 디버거 개선 사항이 도입되었습니다.

또한 문자열을 숫자로 변환하기 위한 두 개의 새로운 접미사 완성, testify 어설션이 있는 테이블 테스트용 새 템플릿, 구조체 태그의 값에 대한 향상된 완성 기능을 제공합니다.

이전과 마찬가지로 GoLand의 새 버전에서는 웹 개발 개선 사항과 데이터베이스 작업을 위한 다양한 새 기능을 제공합니다.

대화형으로 알아보고 싶으시다면 시작 화면에서 GoLand 2021.3의 새로운 기능 튜토리얼을 완료해보세요.

WSL 지원

WSL에서 프로젝트 만들기 및 WSL에서 SDK 선택

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가 숫자 분석을 위한 두 가지 옵션인 parseIntparseFloat를 제안합니다.

사용 위치 표시

'Show Usages'(사용 위치 표시) 옵션을 사용할 때 소스 파일 보기

소스 미리보기

Show Usages(사용 위치 표시) 기능이 개선되었습니다. 이제 사각형 아이콘을 클릭하여 찾은 사용 위치에 대한 소스 코드 미리보기를 켤 수 있습니다.

실행 대상

원격 대상에서 폴더 구성

소스 및 실행 파일의 폴더 구성

이제 프로젝트의 소스와 실행 파일이 저장된 원격 시스템의 폴더에 의미 있는 이름을 지정할 수 있습니다. 폴더를 구성하려면 Run(실행) | Manage targets(대상 관리) | Additional Settings(추가 설정)로 이동하세요.

프로젝트 전역의 디폴트 실행 대상 설정

프로젝트 전역의 디폴트 실행 대상

이제 프로젝트 전역의 디폴트 실행 대상을 설정할 수 있습니다. Run(실행) | Manage targets(대상 관리)로 이동하세요. Project default target(프로젝트 디폴트 대상) 옵션이 포함된 창이 열립니다. 프로젝트의 특정 대상을 선택하면 모든 새 구성이 이 대상에 대해 생성됩니다.

SSH 구성 창의 프록시 설정

SSH 연결에 대한 프록시 지원

프록시 서버를 지정할 수 있도록 SSH Configurations(SSH 구성)에 새로운 HTTP/SOCKS Proxy(HTTP/SOCKS 프록시) 섹션을 추가했습니다. 이 섹션은 Settings(설정) | Tools(도구) | SSH Configurations(SSH 구성)에서 찾을 수 있습니다. 또는 열린 프로젝트에서 Run(실행) | Manage Targets(대상 관리) | ...로 이동하세요.

디버거

디버거에서 nil 인터페이스의 새로운 표현

nil 인터페이스의 표현 개선

Go의 인터페이스에는 두 가지 구성 요소, 즉 타입과 해당 타입의 값이 있습니다. 인터페이스가 nil이 되려면 두 구성 요소가 모두 nil이어야 합니다.

인터페이스의 값에 int에 대한 nil 포인터가 포함된 경우, 해당 인터페이스는 내부 타입이 nil이 아니기 때문에(실제 *int) nil이 되지 않으므로 혼란스러울 수 있습니다.

이러한 경우를 탐지하기 위해 Debug(디버그) 도구 창의 Variables(변수) 탭에서 인터페이스가 표시되는 방식을 변경했습니다. 예를 들어, 내부 타입이 *int이고 값이 nil인 인터페이스가 있다면 다음과 같이 표시됩니다. {interface{} | *int} *int(nil)

2021.2와 2021.3에서 패키지 이름이 표시되는 방식의 차이점

변수 탭의 짧은 패키지 이름

GoLand에서 디버거의 Variables(변수) 탭에 더 이상 전체 패키지 이름이 표시되지 않고 전체 이름의 마지막 부분만 표시됩니다.

'Show Types'의 작동 방식 시연

객체 타입 숨기기/표시

객체 타입이 Variables(변수) 탭에서 너무 많은 공간을 차지하는 경우, 탭 영역을 마우스 오른쪽 버튼으로 클릭하고 표시되는 메뉴에서 Show Types(타입 표시) 옵션을 비활성화할 수 있습니다. 같은 메뉴에서 다시 선택하여 다시 활성화할 수 있습니다.

ARM64용으로 빌드된 Delve 실행 파일을 이제 GoLand에서 사용할 수 있습니다

Linux ARM64용 Delve

이 버전부터 GoLand에 ARM64 아키텍처용으로 빌드된 Delve가 번들로 포함되어 Linux ARM에서 즉시 디버그를 수행할 수 있습니다.

또한 GoLand가 특정 아키텍처에 대해 Delve를 번들로 제공하지 않는 경우 표시되는 오류 메시지를 개선했습니다. 이제 무엇이 잘못되었는지 IDE에서 명시적으로 알려줍니다.

테스트

testify 어설션으로 코드 생성

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가 해당 타입을 내보내는 빠른 수정을 제안합니다.

Go와 관련된 기타 변경 사항

팝업 창에 context.TODO()에 대한 정보가 표시됩니다

context.TODO() 검사

context.TODO()의 사용 위치를 강조 표시하는 검사를 추가했습니다. Settings(설정) | Editor(에디터) | Inspections(검사)에서 이 검사를 활성화할 수 있습니다. 이 검사는 작성 당시 어떤 Context를 사용해야 했는지 확실하지 않았던 경우에 context.TODO()를 변경하라는 알림의 역할을 합니다.

'메서드 구현' 액션을 사용할 때 TODO 주석이 추가됩니다

//TODO implement me 주석

메서드 구현 액션을 사용할 때 생성되는 템플릿에 대해 //TODO implement me 주석을 추가했습니다. 이 특별한 주석은 에디터에서 강조 표시되고 색인이 생성되며 TODO 도구 창에 나열되어 구현되지 않은 메서드에 대한 알림의 역할을 할 수 있습니다.

원격 개발

GoLand 시작 화면의 원격 개발 섹션

GoLand는 이제 원격 개발 워크플로의 베타 버전을 지원합니다.

GoLand의 시작 화면에서 바로 원격 개발 워크플로를 설정할 수 있습니다. 또는, 모든 원격 백엔드에 대한 진입점 역할을 하는 새로운 애플리케이션인 JetBrains Gateway를 사용할 수 있습니다.

이 페이지에서 원격 개발을 시작하는 방법에 대한 지침을 찾아보세요.

HTTP 클라이언트

http 파일에 grpc 요청 추가

gRPC 요청 지원

GoLand의 HTTP 클라이언트가 이제 gRPC 요청을 지원하며 완성 기능을 제공합니다. GRPC 키워드로 요청을 시작하면 HTTP 클라이언트가 이를 gRPC 요청으로 처리합니다.

proto 파일에서 여백 아이콘을 클릭하여 gRPC 요청 생성

.proto 파일에서 여백 아이콘을 클릭하여 HTTP 클라이언트에서 gRPC 요청을 자동으로 생성할 수 있습니다.

서버 스트리밍 원격 프로시저 호출 실행

현재, HTTP 클라이언트는 단항 및 서버 스트리밍 RPC를 실행할 수 있습니다. 일반 HTTP 요청과 마찬가지로 요청 본문과 응답은 일반 JSON 파일입니다.

여기에서 몇 가지 다른 HTTP 클라이언트 개선 사항에 대해 읽어볼 수 있습니다.

VCS 개선 사항

'체크아웃 후 현재 브랜치상에서 리베이스' 액션 실행

체크아웃 후 현재 브랜치상에서 리베이스를 원격 브랜치에 사용

Checkout and Rebase on Current(체크아웃 후 현재 브랜치상에서 리베이스) 액션을 사용하면 선택한 브랜치를 체크아웃하고 현재 체크아웃된 브랜치상에서 리베이스할 수 있습니다. 이 액션을 이제 원격 브랜치에서 사용할 수 있습니다.

'여기까지의 내용을 모두 푸시' 액션 실행

새로운 여기까지의 내용을 모두 푸시 액션

일부 커밋은 내보낼 준비가 되었으나 다른 커밋은 아직 작업 중인 경우가 있습니다. 이러한 경우 확신할 수 있는 커밋만 푸시하는 게 좋습니다.

이제 Git 도구 창의 Log(로그) 탭에서 선택한 커밋까지 푸시할 수 있습니다. 사용하려면 멈출 지점의 커밋을 선택한 후 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 호출하고, Push All up to Here(여기까지의 내용을 모두 푸시) 액션을 선택하면 됩니다.

버전 관리 설정

VCS 설정 재구성

VCS 설정을 더 쉽게 찾고 구성할 수 있도록 변경했습니다. 이제 Settings(설정)Version Control(버전 관리) 노드에 사용 가능한 모든 설정이 나열됩니다.

UI 개선 사항

'변수' 탭의 '표현식 평가' 표시줄

변수 탭의 표현식 평가

이제 Debug(디버그) 도구 창의 Variables(변수) 탭에서 Evaluate expression(표현식 평가) 기능을 사용할 수 있습니다.

'실행' 도구 창에서 탭 분할

실행 도구 창에서 탭 분할

이제 탭을 강조 표시된 영역으로 드래그앤드롭하여 Run(실행) 도구 창을 분할할 수 있습니다. 도구 창의 분할을 해제하려면 상단 패널을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 Unsplit(분할 해제)을 선택합니다.

북마크 창 사용

새로운 북마크

Bookmarks(북마크) 도구 창이 새롭게 도입되었습니다. 이제부터 F11 단축키를 이용해 중요한 것으로 표시한 모든 파일과 폴더가 이 창에 표시됩니다.

프로파일러

두 개의 스냅샷을 비교하고 플레임 그래프에 차이점 시각화

스냅샷의 차이점 시각화

Flame 그래프에서 두 스냅샷의 차이를 시각화할 수 있습니다. Shift를 두 번 누르고 검색창에 "Open Profiler Snapshots"(프로파일러 스냅샷 열기)를 입력합니다. 목록에서 스냅샷을 열고 동일한 작업을 반복하여 다른 스냅샷을 엽니다.

그런 다음 스냅샷 중 하나의 탭에서 Compare With Baseline(기준선과 비교) 버튼을 클릭합니다. 메뉴에서 비교할 스냅샷을 선택합니다. 비교 결과를 포함한 별도의 Diff 탭이 열립니다.

터미널

Windows의 기본 제공 터미널에서 24비트 색상 지원 시연

ConPTY

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의 터미널에서 입력

선행 입력

이전에는 원격 시스템에서 작업하는 동안 GoLand 터미널에 문자를 입력할 때 대기 시간으로 인해 IDE가 로컬 시스템에서만큼 빠르게 문자를 표시할 수 없었습니다.

이제 선행 입력 지원이 도입되어 더 이상 이 문제가 발생하지 않습니다. 기본 제공 터미널이 텍스트 수정을 예측하고 즉시 밝은 회색으로 그 내용을 표시합니다.

웹 개발

ES6 파일의 가져오기 경로에서 빠른 수정을 사용하여 원격 ES6 모듈 다운로드

import 문에서 URL 지원

ES6 파일의 가져오기 경로에서 빠른 수정을 사용하여 원격 ES6 모듈을 다운로드할 수 있습니다. 이 모듈은 모든 종속성과 함께 다운로드됩니다. 기능을 사용해 보려면 가져오기 경로에 캐럿을 놓은 다음 Alt + Enter를 누르고 Download module(모듈 다운로드)를 선택하세요.

html 파일에 코드를 입력하고 완성 제안 수락

HTML에 대한 향상된 코드 완성 기능

HTML에서 코드 완성 기능이 작동하는 방식이 개선되었습니다. 에디터에서 태그 이름이나 약어를 입력하거나 코드 완성을 호출할 때마다 GoLand는 관련 제안을 즉시 표시합니다.

이전에는 여는 대괄호(<)를 먼저 입력한 경우에만 표시되었습니다. 문자 엔티티 참조에 대한 코드 완성도 개선되었습니다.

"'패키지 이름'을 최신 버전으로 업데이트" 빠른 수정을 이용한 npm 패키지 업데이트

종속성 업데이트를 위한 새로운 검사

에디터에서 바로 npm 패키지를 최신 버전으로 업데이트할 수 있습니다. package.json 파일을 열고 업데이트하려는 패키지 버전에 캐럿을 놓은 후, Alt + Enter를 누른 다음 Update ... to the latest version(...을 최신 버전으로 업데이트)을 선택합니다.

JavaScript 파일의 요소를 별도의 줄에 배치하고 다시 한 줄에 배치

요소를 여러 줄에 배치

쉼표로 구분된 요소를 별도의 줄에 빠르게 배치하고 필요한 경우 한 줄로 되돌릴 수 있는 JavaScript 프로젝트용 인텐션 액션이 GoLand에 새롭게 도입되었습니다.

데이터베이스 개선 사항

데이터베이스의 셀 범위에 대한 집계 뷰

셀 범위에 대한 집계 뷰

일정 범위의 셀에 대해 Aggregate view(집계 뷰)를 표시하는 기능을 추가했습니다. 뷰를 보려는 셀 범위를 선택한 다음 마우스 오른쪽 버튼으로 클릭하고 Show Aggregate View(집계 뷰 표시)를 선택하면 됩니다. 그러면 하나의 집계 값이 상태 표시줄에 표시되며 원하는 값을 선택할 수 있습니다.

에디터 탭 분할

독립적 에디터 탭

에디터를 분할하고 동일한 테이블을 열면 데이터 에디터가 완전히 독립적으로 분리됩니다. 이 각각의 에디터에 서로 다른 필터링 및 순서 지정 옵션을 설정할 수 있습니다.

WHERE 및 HAVING 절에서 bool 표현식에 대한 새로운 검사 도입

bool 표현식 검사

WHEREHAVING 절에서 bool 표현식에 대한 새로운 검사가 제공됩니다.

표현식이 명시적으로 부울 값이 아닌 것 같으면 해당 표현식이 노란색으로 강조 표시되고 이러한 쿼리를 실행하기 전에 사용자에게 경고가 표시됩니다.

이 기능은 ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite 및 Vertica에서 작동합니다. 다른 모든 데이터베이스에서는 이 표현식이 오류로 강조 표시됩니다.

선택한 셀에서 관련 데이터로 이동

여러 값을 이용한 외래 키 탐색

데이터 에디터에서 여러 값을 선택하고 해당 데이터로 이동할 수 있습니다.

CSV 파일의 열 유형이 탐지되어 팝업 창에 표시됩니다

CSV 파일의 자동 열 유형

GoLand가 CSV 파일에서 열 유형을 탐지하므로 이제 숫자 값별로 데이터를 정렬할 수 있습니다. 이전에는 열의 데이터가 텍스트로 처리되어 정렬이 예상대로 작동하지 않았습니다.

MongoDB 필터 연산자에 대한 코드 완성 제안이 표시됩니다

MongoDB: filter {}sort {}에 코드 완성 지원

이제 MongoDB 컬렉션의 데이터를 필터링할 때 코드 완성이 작동합니다.

에디터와 IDE의 나머지 부분에 대해 다른 글꼴이 표시됩니다

데이터 에디터용 사용자 지정 글꼴

IDE의 나머지 부분과 별도로 데이터 에디터의 글꼴을 설정할 수 있습니다. 글꼴을 선택하려면 Settings(설정) | Tools(도구) | Database(데이터베이스) | Data views(데이터 뷰) | Use custom font(사용자 지정 글꼴 사용)로 이동하세요.

접근성 업데이트

스크린 리더를 더 편안하게 사용할 수 있도록 몇 가지 접근성 문제를 해결했습니다. 도구 창 위젯 팝업과 마우스를 올려 놓을 때 나타나는 빠른 문서 팝업을 비활성화했습니다.

macOS에서도 접근성 지원이 개선되었습니다. VoiceOver 포커스와 관련된 몇 가지 문제를 해결하고 스크린 리더를 사용하여 프로젝트를 생성할 수 있도록 했습니다. 코딩 중 방해되지 않도록 소리가 재생되는 도움말 툴팁 설명의 개수를 줄였습니다.