GoLand의 새로운 기능

GoLand 2020.2에 Go 모듈 신규 기능, 코드 내의 오류를 검토하고 수정하는 새로운 방식 및 새 코드 검사 모음이 도입되었습니다. 더불어 오랫동안 기다려온 Add Caret Per Selected Line(선택한 줄마다 캐럿 추가)과 같은 새로운 코드 편집 기능, 실험적인 제네릭에 대한 지원, 에디터에서 Go Playground로 코드를 공유하는 기능 및 Windows에서 Git을 위한 WSL 2 지원 등의 버전 관리 업데이트도 확인하실 수 있습니다.

글로 읽는 대신 대화식으로 학습하고 싶으신가요? 그렇다면 IDE의 시작 화면에서 GoLand 2020.2의 새로운 기능 튜토리얼을 확인해주세요.

Go 모듈 개선 사항

Environment Variables 대화상자에서 신규 GOMODCACHE 환경 변수 설정

Go 1.15 버전부터 새로운 GOMODCACHE 환경 변수를 활용하여 모듈 캐시의 기본 위치를 $GOPATH/pkg/mod에서 다른 폴더로 변경하는 기능이 제공되었습니다.

해당 기능을 사용하려면 Preferences/Settings(환경 설정/설정) | Go Modules(Go 모듈) | Environment(환경)에서 GOMODCACHE를 설정해주세요. IDE에서 사용자 지정 위치를 인식하고 종속성이 포함된 모든 하위 액션을 사용합니다.

go.mod 파일에서 모듈 종속성을 주석으로 추가

이제 Comment With Line Comment(줄 주석으로 주석 추가)(Windows/Linux: Ctrl+/, macOS:⌘/) 액션이 go.mod 파일에서 지원됩니다.

GoLand가 go.mod 파일에서 replace 구문에 대해 닫는 괄호 완성

replace, exclude, require 구문에 대한 여는 괄호를 입력하면 GoLand에서 즉시 닫는 괄호를 추가합니다.

주석에서 모두 처리

주석에서 소스 코드로 이동

IDE는 주석에서 관련 패키지 수준의 선언에 관한 참조를 표시합니다. 또한 Navigate to Declaration or Usages(선언 또는 사용 위치로 이동) (macOS: ⌘B, Windows/Linux: Ctrl+B/) 액션으로 이를 탐색할 수 있습니다.

코드 검사

Insepctions 위젯을 통해 파일의 경고 및 오류 탐색

Inspections (검사) 위젯은 현재 파일의 경고, 오류, 오타 개수를 코드 에디터 오른쪽 상단에 표시합니다. 화살표 아이콘 또는 Next Error(다음 오류) 액션(F2)을 통해 이 내용을 확인할 수 있습니다.

또한 위젯에서 강조 표시 수준(없음, 오류만, 모든 문제 등)을 구성하고, 검사 심각도 수준을 변경하거나 Compact View(컴팩트 뷰)로 설정할 수 있으므로 주의력이 분산되지 않습니다.

Problems 뷰에서 오류로 이동 및 Alt+Enter로 수정

Problems(문제) 도구 창에서는 현재 파일의 경고 및 오류 목록이 표시되며 해당 문제의 세부 내용을 제공합니다. Alt+Enter를 사용해 이러한 문제를 즉시 수정할 수 있습니다.

Problems(문제) 도구 창을 열려면 Inspections Widget(검사 위젯)을 클릭하거나 View(뷰) | Tool Window(도구 창) | Problems(문제)로 이동하세요. 마우스 오른쪽 버튼으로 문제를 클릭하면 오류가 발생한 코드 줄로 이동합니다.

GoLand가 변환에 대한 잠재적 문제를 경고하고 Alt+Enter로 수정 제안

새 코드 검사는 string(int) 변환과 관련한 잠재적 문제를 처리합니다. 해당 변환은 x의 예상된 10진수 문자열 표기 대신 유니코드 포인트 x의 UTF-8 표기를 반환합니다.

GoLand는 이러한 잠재적 오류를 알려주고 전용 빠른 수정 기능을 제공합니다.

GoLand가 잘못된 테스트 이름을 경고하고 Alt+Enter 키로 수정 제안

GoLand가 테스트 및 예제의 일반적인 사용 오류를 알려주므로 이제 명시적으로 go vet을 호출할 필요가 없습니다. 또한 IDE에서 에를 들어 Testme의 이름을 TestMe로 변경을 제안하는 것처럼 간단한 사례에도 빠른 수정을 제공합니다.

Malformed struct tag 코드 검사를 통해 사용자에게 잠재적 문제를 경고

Malformed struct tag 코드 검사는 구조체 태그가 Go 규칙에 부합하는지 확인하고 잠재적 오류를 알려줍니다.

GoLand가 불가능한 인터페이스 어설션을 사용자에게 경고

Impossible interface type assertion 코드 검사는 유형 어설션v.(T)v의 정적 유형 V가 대상 인터페이스T를 구현할 수 없는 인터페이스인 유형 전환 사례를 검사합니다.

이는 VT에 이름은 동일하지만 시그니처가 다른 메서드가 포함되었을 시 발생합니다.

코드 편집

Show Context Actions를 통해 적용 가능한 옵션 제안

인텐션 액션 또는 빠른 수정을 코드에 적용하기 전 그 결과를 미리 확인하려면 단축키 Alt+Enter를 눌러 Show Context Actions(컨텍스트 액션 표시)를 호출하고 필요한 인텐션 또는 빠른 수정을 선택하세요. 다음으로 ⌥+Space(macOS) 또는 Ctrl+Shift+I(Windows/Linux)를 누르세요.

Add Caret Per Selected Line 액션으로 선택한 각 줄의 끝에 캐럿 생성

새로운 Add Caret Per Selected Line(선택한 줄마다 캐럿 추가) 액션으로 선택한 줄의 끝부분에 캐럿을 생성하고 줄 선택을 취소할 수 있습니다. 단축키 Alt+Shift+G(Windows/Linux) 또는 ⌥⇧G(macOS)를 사용하여 이 액션을 호출하세요.

Put arguments on one line 인텐션 액션으로 표현식을 별도의 여러 줄로 분할

호출 인수, 함수 매개변수 및 복합 리터럴 요소의 줄 바꿈은 Preferences/Settings(환경 설정/설정) | Editor(에디터) | Code Style(코드 스타일) | Go | Wrapping and Braces(줄 바꿈 및 괄호)에서 구성할 수 있습니다.

또는 Alt+Enter를 눌러 Put arguments on separate linesPut arguments on one line 인텐션 액션을 사용하여 요소를 수동으로 분할하거나 병합할 수도 있습니다.

가변 인수 제어

Inline Variable 리팩터링이 코드 조각을 가변 인수로 압축 해제

Introduce Variable(변수 삽입) 리팩터링(Windows/Linux: Ctrl+Alt+V, macOS: ⌘⌥ V)을 통해 새 조각 변수에 가변 인수를 압축할 수 있습니다. 반대로 Inline Variable(변수 인라인)(macOS: ⌥⌘N, Linux/Windows: Ctrl+Alt+N) 리팩터링은 조각을 가변 인수로 압축 해제합니다.

Unpack slice 빠른 수정

또한 Unpack slice(조각 압축 해제) 빠른 수정을 통해 압축 해제된 가변 인수와 관련된 이슈를 처리할 수 있습니다.

프로젝트를 템플릿으로 저장

Save Project as Template 도구 창

이제 사용자 지정 프로젝트 템플릿으로 프로젝트나 파일을 저장하여 다시 사용할 수 있습니다.Tools(도구) | Save Project as Template(프로젝트를 템플릿으로 저장) 옵션을 선택하세요. 그러면 IDE에서 파일, 폴더 및 빌드 구성이 포함된 프로젝트 트리를 재생성합니다.

Go Playground

드롭다운 메뉴에서 Share in Playground 액션

에디터 내부에서 두 번 클릭하여 Go Playground에서 코드를 공유하고 실행할 수 있습니다. 드롭다운 메뉴에서 Go Tools(Go 도구) | Share in Playground(Playground에 공유)를 선택하거나 Tools(도구) | Go Tools(Go 도구) | Share in Playground(Playground에 공유)를 선택하세요. 또는 ⌥⇧⌘S(macOS), Ctrl+Alt+Shift+S(Windows/Linux) 단축키를 사용할 수도 있습니다.

또한 go2 파일에서 제네릭을 사용하면 GoLand는 새로운 https://go2goplay.golang.org/ 페이지로 이동합니다.

제네릭 (a.k.a. 유형 매개변수)

에디터에서 열린 go2 파일에 지원되는 구문 강조 표시 및 기본 참조 확인

Go 팀에서 최근 제네릭 디자인 초안을 공개했습니다. Golang 문서 페이지에 방문하여 개념의 모든 세부 사항을 확인해 보세요.

GoLand 2020.2 버전에서는 제네릭을 실험적으로 지원합니다. 이를 사용하려면,Settings/Preferences(설정/환경 설정) | Go 에서 Enable experimental support for generics a.k.a.type parameters (제네릭 a.k.a. 유형 매개변수에 대한 실험적 지원을 활성화)를 선택하면 됩니다.

초기 지원은 구문 강조 표시 및 기본 참조 확인을 제공하며 go2 파일에서만 작동합니다.

내부에 숨겨진 기능

Alt+Enter로 종속성 동기화

벤더링 모드를 활성화하면 프로젝트의 vendor(벤더) 폴더에 저장된 종속성 패키지만으로 애플리케이션을 빌드할 수 있습니다.

이제 프로젝트에 벤더 폴더가 포함되고 Settings/Preferences(설정/환경 설정) | Go | Go Modules(Go 모듈)에서 Enable vendoring mode automatically(벤더링 모드 자동 활성화)를 설정한 경우, 해결 시 벤더/폴더만 사용되며 모듈 캐시는 참고하지 않습니다.

GoLand에서 go 목록 진행 상황을 진행률 표시줄에 표시

GoLand는 go list 명령어를 순차적으로 실행하고 대기열에 실제로 포함된 go list 명령어 개수에 대한 정보를 진행률 표시줄에 제공합니다.

버전 관리

Windows의 Git 전용 WSL 2 지원

Windows의 Git 전용 WSL 2 지원

GoLand 2020.2는 Windows 10의 5월 업데이트인 2004 버전부터 기본적으로 제공되는 WSL 2에서 Git을 사용할 수 있도록 지원합니다. Windows에 Git이 설치되어 있지 않은 경우 GoLand가 WSL에서 자동으로 Git을 검색하고 사용합니다. 또한 WSL에서 열린 프로젝트의 경우 WSL에서 Git으로 자동 전환합니다(\wsl$ path를 통해).

향상된 Git 액션 대화상자

향상된 Git 액션 대화상자

Git 대화상자를 새롭게 설계하여 Merge, Pull, Rebase와 같은 액션의 일관성 및 유용성을 높였습니다. 또한 실행할 Git 명령어가 무엇인지 보다 쉽게 이해할 수 있게 구성하고 Pull 대화상자에 –rebase 옵션을, Merge 대화상자에 –no-verify 옵션을 추가했습니다.

주석 액션으로 검토 시작

GitHub pull 요청에 대한 완벽한 지원

GitHub pull 요청이 완벽하게 지원됩니다! 이제 GoLand를 나가지 않고도 pull 요청을 탐색, 할당, 관리 및 병합하고, 타임라인 및 인라인 주석을 확인하고, 주석 및 검토를 제출하고, 변경 내용을 수락할 수 있습니다.

Compare branches 결과 표시 개선

브랜치 비교 결과 표시 개선

이제 GoLand에서 브랜치 2개를 비교할 경우, 하나의 뷰에서 비교 대상 브랜치의 커밋을 확인할 수 있습니다. 이제 IDE는 모든 정보를 표시 하기에는 공간이 부족했던 VCS 도구 창이 아닌 에디터에서 비교 대상인 두 브랜치의 로그를 엽니다.

데이터베이스 업데이트

셀 값을 별도의 에디터에서 작업

셀 값을 별도의 에디터에서 작업

이제 셀에 큰 값이 있으면 해당 값을 별도의 패널에서 보거나 편집할 수 있습니다. 오른쪽 툴바를 사용하여 소프트랩 모드를 전환할 수도 있습니다. JetBrains 코드 에디터의 모든 기능을 사용해 데이터를 작업해 보세요!

데이터 에디터 내 DML 미리보기

데이터 에디터 내 DML 미리보기

이 버전부터 데이터 에디터에서 변경 내용을 보여주는 쿼리를 검토할 수 있습니다. 보류 중인 변경 내용이 있는 경우 DML 버튼이 활성화됩니다.

그리고 DML 미리보기가 있는 대화상자가 표시됩니다. GoLand는 JDBC 드라이버를 사용하여 테이블을 업데이트하기 때문에 이 쿼리가 데이터를 수정하기 위해 실행되는 정확한 SQL은 아니지만 대부분 동일합니다.

부울 값용 새로운 UI

부울 값용 새로운 UI

이제 더 사용자 친화적으로 부울 값을 확인하고 편집할 수 있는 방법이 생겼습니다. true 값은 다른 모든 값과 구별되도록 글머리 기호로 표시됩니다.

Google BigQuery 파생 언어에 대한 코딩 지원

Google BigQuery 파생 언어

Google BigQuery라는 새로운 SQL 파생 언어가 추가되었습니다. BigQuery는 아직 여기에서 완벽하게 지원되는 것은 아니지만, 모든 것은 어딘가에서 시작이 되어야 합니다. Google BigQuery를 사용하는 경우 GoLand에서 쿼리를 올바르게 강조 표시하고 코딩 지원을 제공할 수 있습니다.

JavaScript 및 TypeScript

새로운 스마트 인텐션

새로운 스마트 인텐션(Alt+Enter)을 사용하면 일부 액션을 더 빠르게 수행할 수 있습니다. 예를 들어 이제 숫자 색인이 있는 for 루프를 forEach 배열 메서드로 빠르게 변환할 수 있습니다. 에디터에서 바로 렌더링할 수 있어 모든 방해 요소가 최소화되므로 JavaScript 및 TypeScript 파일에서 문서 주석을 살펴보기도 한결 수월합니다.