GoLand의 새로운 기능

GoLand 2020.3에서는 고루틴 덤프를 탐색하고, 개별 테이블 테스트를 실행 및 탐색하고, Testify 테스트 프레임워크에 대한 확장된 지원을 통해 더 많은 이점을 누릴 수 있습니다. 또한 시간 패키지 지원, 패키지를 처리하는 개선된 방법, UI 개선, 웹 개발 및 데이터베이스 작업을 위한 다양한 새 기능, ​​공동 개발 및 페어 프로그래밍을 위한 새로운 서비스를 포함한 많은 새로운 코드 편집 기능이 추가되었습니다.

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

디버거 개선 사항

디버거에서 고루틴 스택 탐색

디버거에 새로운 고루틴 덤프 아이콘을 사용하면 디버그 세션 중에 스택에 지정된 문자열을 포함하는 고루틴을 쉽게 찾을 수 있습니다. 아이콘을 클릭하면 별도의 창에서 덤프가 열립니다.

중요한 정보에 집중할 수 있도록 개별 고루틴 또는 동일한 스택을 가진 고루틴을 숨기는 옵션이 있습니다. 고루틴을 마우스 오른쪽 버튼으로 클릭하고 원하는 작업을 선택하거나 간단히 삭제를 눌러 덤프 창의 특수 숨김 섹션으로 이동하면 방해를 받지 않고 주의력을 유지할 수 있습니다.

'Go Remote' 구성 중지

GoLand 2020.3은 재연결이 필요하지 않은 경우 Go Remote 구성으로 프로세스를 중지할 수 있는 기능을 제공합니다.

구성 설정에서 연결 해제시 디버거의 디폴트 동작을 지정하거나, Stop remote Delve processes(원격 Delve 프로세스 중지), Leave it running(계속 실행하기)를 선택하거나, GoLand에서 매번 어떻게 진행할지 묻도록 할 수 있습니다.

테스트 개선

개별 테이블 테스트 실행

테이블 테스트 지원

Run(실행) 도구 창에서 개별 테이블 테스트를 실행하고 탐색할 수 있습니다.

몇 가지 제한 사항은 다음과 같습니다.

  • 테스트 데이터 변수는 슬라이스, 배열 또는 맵이어야 합니다. 이러한 변수는 호출과 동일한 함수에서 정의해야 하며 초기화 후에는 건드리지 않아야 합니다(for 루프의 범위 절 제외).
  • 개별 테스트 데이터 항목은 구조체 리터럴이어야 합니다. 하위 테스트 이름 표현식에 사용된 루프 변수는 호출 전에 건드리지 않아야 합니다.
  • 하위 테스트 이름 표현식은 테스트 데이터의 문자열 필드, 연속된 테스트 데이터 문자열 필드, %s%d 동사를 사용한 fmt.Sprintf() 호출일 수 있습니다.
GoLand는 테스트 함수 내에서 인수를 제안합니다

Testify 지원 확대

IDE는 이제 테스트 모음을 시작하는 테스트 함수를 인식하고, 하위 테스트 이름이 문자열 상수이기만 하면 개별 suite.Runsuite.T().Run을 시작할 수 있는 방법을 제공합니다. 또한, 전체 최상위 테스트를 다시 실행하지 않도록 Run(실행) 도구 창에서 하위 테스트를 다시 실행할 수 있습니다.

또한 GoLand는 이제 동일한 메서드 이름을 가진 Testify 그룹을 단일 테스트 케이스 내에서 개별적으로 실행할 수 있습니다.

마지막으로, testing.T를 첫 번째 인수로 받아들이는 함수 또는 메서드를 완성할 때 GoLand는 가능한 경우 해당 인수를 자동으로 전달합니다. 이 동작은 testify/assert, testify/require, testify/mocktestify/suite 패키지의 메서드 및 함수에서 작동합니다.

코드 검사

GoLand는 에디터에 존재하는 잠재적 문제를 경고하고 'Add format string argument(서식 문자열 인수 추가)' 인텐션을 표시합니다.

Incorrect usage of Println/Printf-like functions(Println/Printf like 함수의 잘못된 사용) 코드 검사 기능이 github.com/pkg/errors, github.com/sirupsen/logrusgo.uber.org/zap 패키지의 잠재적인 문제를 경고합니다.

뿐만 아니라, 자리 표시자 강조 표시 및 접기와 Add format string argument(서식 문자열 인수 추가) 인텐션을 추가했습니다.

GoLand는 실행 경로가 cancel 함수를 호출하지 않을 때 경고를 제공합니다.

context.CancelFunc not called code 검사 기능이 잠재적으로 안전하지 않은 컨텍스트 취소 사용을 보고합니다. 이 기능은 context.WithCancel(및 유사한 함수)에서 반환한 'cancel' 함수가 일부 실행 경로에서 호출되지 않을 때 특히 유용합니다.

이 패키지에 대해 자세히 알아보려면 https://golang.org/pkg/context/를 방문하세요.

코드 편집

GoLand는 시간 레이아웃을 위한 코드 완성 기능을 제공합니다.

시간 패키지 지원

시간 및 기간 작업을 보다 쉽게 수행할 수 있도록 Time 패키지에 대한 지원을 추가했습니다. GoLand는 코드 완성(Ctrl+Space)을 통해 미리 정의된 레이아웃의 요소를 ISO-8601YYYY, MM, DD 자리 표시자로 제안합니다.

토큰에서 Ctrl+P를 누르면 IDE가 해당 의미를 표시합니다. 레이아웃 토큰에 대한 구문 강조 표시도 있습니다. 코드 완성 기능은 문자열 리터럴 외부의 표준 시간 레이아웃도 제안합니다.

Alt+Enter를 통해 가져오기 및 코드 완성에서 패키지 제외

더 편리해진 패키지 처리

IDE는 이제 자주 사용하고 프로젝트의 go.mod 파일에 명시적으로 선언된 패키지에 대한 코드 완성 항목에 우선순위를 둘 때 더 똑똑하게 작동합니다.

프로젝트 가져오기 경로 및 코드 완성 제안에서 패키지를 완전히 제외하는 옵션도 추가하였습니다. Alt+Enter를 누르거나 Settings(설정) | Go | Imports(가져오기)의 새로운 Exclude for import and completion(가져오기 및 코드 완성에 대해 제외) 창에서 이 작업을 수행할 수 있습니다.

GoLand는 기존 선언을 가리는 변수를 강조 표시하기 위해 다른 색상을 사용합니다.

변수 가리기에 대한 지원

GoLand에서는 변수 가리기를 더욱 쉽게 찾을 수 있습니다.

  • IDE는 이제 기존 선언을 가리는 변수를 다른 색상으로 표시합니다.
  • Navigate to shadowing declaration(가리기 선언으로 이동) 인텐션 액션을 사용하면 가려진 선언으로 바로 전환할 수 있습니다.
GoLand는 유형 매개변수에서 대괄호를 지원합니다.

유형 매개변수의 대괄호

Go 팀의 제네릭 디자인 업데이트를 따랐으며 이전 제안 버전에서 구현된 괄호 대신 제네릭 구문에 대한 대괄호 지원을 추가했습니다.

Settings(설정) | Go에서 Enable generics(제네릭 활성화-유형 매개변수에 대한 실험적 지원) 설정이 기본적으로 해제된다는 점에 유의하세요. 이 기능을 사용하려면 해당 체크박스를 명시적으로 선택해야 합니다.

유형 매개변수에 대해 자세히 알아보려면 이 블로그 게시물을 읽어보세요.

기타 개선 사항

GoLand는 코드 완성 제안 목록에 'Test' 및 'Benchmark' Live Template(라이브 템플릿)을 표시합니다.

테스트 파일에 func를 입력하면 GoLand가 기본적으로 코드 완성 옵션에서 benchtest Live Templates(라이브 템플릿)을 제안합니다.

GoLand는 벤치마크 내에서 b.N으로 for 루프를 완성할 것을 제안합니다.

벤치마크 내에 for를 입력하면 IDE는 b.N가 있는 for 루프로 이를 완성하도록 제안합니다.

GoLand의 오타 수정 제안

향상된 철자 및 문법 검사기

이제 Alt+Enter를 누르면 대화 상자에 제안이 즉시 나타납니다. 또한, 새로운 버전의 LanguageTool 문법 검사 엔진은 향상된 영어 검사 기능을 제공하고 다른 10개의 언어를 추가적으로 지원합니다.

Code With Me

사용 중인 'Code With Me'

GoLand 2020.3은 공동 개발 및 페어 프로그래밍을 위한 JetBrains의 새로운 서비스인 Code With Me(EAP)를 지원합니다. Code With Me를 사용하면 IDE에 현재 열어 놓은 프로젝트를 다른 사람과 공유하고 실시간으로 함께 작업할 수 있습니다.

Code With Me에 관한 자세한 내용은 이 게시물을 확인해 주세요.

UI 개선 사항

재설계된 시작 화면

재설계된 시작 화면

다음의 항목에 바로 액세스 할 수 있도록 시작 화면을 재설계 했습니다.

  • 프로젝트 검색
  • IDE 사용자 지정을 위한 설정
  • IDE의 기능을 확장하는 플러그인
  • IDE의 기능에 대해 자세히 알아볼 수 있는 튜토리얼
설정에서 OS 테마 옵션과 동기화

IDE 테마를 OS 환경 설정과 동기화

Settings(설정) | Appearance & Behavior(모양 및 동작) | Appearance(모양) | Theme(테마)에서 Sync with OS(OS와 동기화) 옵션을 선택하여 OS 환경 설정에 따라 IDE 테마를 자동으로 전환합니다.

탭을 드래그하여 에디터 분할

탭을 어디로든 드래그 앤 드롭하여 에디터 분할

탭을 원하는 위치로 드래그 앤 드롭하여 메인 에디터 화면을 가로 또는 세로로 분할하세요. 탭을 드래그할 때 에디터가 드롭할 수 있는 위치를 강조 표시합니다.

에디터에서 두 번째 파일 열기

Project(프로젝트) 뷰 업데이트

프로젝트 뷰에서 파일 작업을 수행할 때 이용되는 UX를 개선했습니다. 이제 Project(프로젝트) 뷰에서 파일을 열면 포커스가 자동으로 에디터로 이동하여 즉시 코드 작업을 시작할 수 있습니다. 스페이스바를 누르면 IDE가 Project(프로젝트) 뷰에서 파일 미리보기를 표시합니다.

에디터에서 동시에 여러 파일을 열고 싶을 때 이제 간단히 단축키 하나로 열 수 있습니다. Project(프로젝트) 뷰에서 파일을 선택하고 Shift+Enter를 누르면 IDE가 Editor(에디터) 창을 분할하고 오른쪽에서 파일을 엽니다.

VCS 업데이트

새롭게 디자인된 VCS 메뉴

새롭게 디자인된 VCS 메뉴

이제 VCS 메뉴가 현재 사용 중인 버전 관리 시스템에 맞게 조정되어 VCS 기능이 더 이상 하위 메뉴에 숨겨지지 않으므로 주요 VCS 기능에 더 쉽게 액세스할 수 있습니다.

Git 스테이징 영역

Git 스테이징 영역 지원

멋진 새 Git 스테이징 영역을 사용할 수 있습니다! 이 기능은 Commit(커밋) 도구 창에서만 사용할 수 있습니다.

Settings(설정) | Version Control(버전 관리) | Git에서 Enable staging area(스테이징 영역 사용) 체크박스를 선택하여 이 기능을 설정할 수 있습니다. 이렇게 하면 변경 목록에 대한 지원이 비활성화됩니다.

커밋 UI에서 스테이징된 파일과 스테이징이 해제된 파일을 찾을 수 있습니다. 파일의 스테이징이 준비되면 옆에 있는 + 아이콘을 클릭하면 됩니다. 그러면 Staged(스테이징됨) 노드 아래에 파일이 나타납니다. 스테이징 영역에 변경 사항을 추가하려면 여백 아이콘 또는 Show Diff(Diff 표시)를 사용할 수도 있습니다.

GoLand는 잘못된 브랜치 이름을 수정합니다.

향상된 브랜치 작업

브랜치 작업이 개선되었습니다.

  • IDE가 이제 새 브랜치 이름에서 허용되지 않는 기호를 자동으로 수정하므로 허용된 서식에 따라 브랜치를 만드는 데 도움이 됩니다.
  • IDE는 이제 다른 브랜치에서와 마찬가지로 현재 선택한 브랜치에 사용할 수 있는 모든 작업을 표시합니다.
  • 원격 브랜치의 경우, Merge into Current(현재 브랜치로 병합)Rebase Current onto Selected(현재 브랜치를 선택 브랜치로 리베이스) 액션의 이름이 Pull into Current Using Merge(병합을 사용하여 현재 브랜치로 풀)Pull into Current Using Rebase(리베이스를 사용하여 현재 브랜치로 풀)로 변경되었습니다.

기타 기능

모든 프로젝트에 대한 플러그인 비활성화

프로젝트별로 활성화되는 플러그인

Enable for Current Project(현 프로젝트에서 활성화) 또는 Enable for All Projects(모든 프로젝트에서 활성화)을 선택하여 현재 프로젝트 또는 모든 프로젝트에 플러그인을 활성화하도록 설정하는 기능을 추가했습니다. Settings(설정) | Plugins(플러그인)에서 활성화 또는 비활성화하려는 플러그인의 톱니 바퀴 아이콘을 누르고 원하는 옵션을 선택하세요.

설정에서 macOS용 시스템 단축키 키맵 사용

macOS용 시스템 단축키 키맵

macOS 시스템 단축키 키맵(Settings(설정) | Keymap(키맵))은 시스템 단축키와의 확장된 호환성을 제공하고 필수 작업에 F 키 사용을 피할 수 있도록 하는 대체 macOS 키맵을 제공하는 데 목적을 두고 있습니다.

사용 중인 프로파일러의 플레임 그래프

프로파일러 - 플레임 그래프

메서드 측정 기준을 더 빠르게 찾을 수 있도록 프로파일러와 해당 시각화에서 플레임 그래프의 검색 메커니즘을 개선했습니다. 돋보기 아이콘을 클릭하거나 플레임 그래프 패널 내에 검색 요청을 입력할 수 있습니다.

또한 검색 필드, 검색 결과 사이의 빠른 탐색을 위한 위/아래 화살표, 전체 플레임 그래프 또는 특정 하위 트리에서만 검색할 수 있는 기능을 추가했습니다.

웹 개발 변경 사항

사용 위치에서 React 구성 요소 만들기

사용 위치에서 React 구성 요소 생성

WebStorm 팀의 노력 덕분에 GoLand는 이제 웹 개발에 대한 풍부한 지원을 제공합니다. 이 영역에서 예정된 변경 사항 중 하나는 해결되지 않은 참조에서 React 구성 요소를 만드는 기능입니다. 해결되지 않은 구성 요소에 캐럿을 놓고 Alt+Enter를 누른 다음 해당 검사를 선택하세요.

GoLand가 이전에 설치된 pnpm을 탐지

pnpm 완벽 지원

GoLand는 npm 및 yarn과 더불어 pnpm 패키지 관리자를 완벽하게 지원합니다. pnpm-lock 파일이 있는 프로젝트를 열고 컴퓨터에 pnpm이 설치되어 있으면 GoLand가 이 프로젝트의 패키지 관리자를 pnpm으로 자동으로 변경합니다. IDE에는 Settings(설정) | Languages and Frameworks(언어 및 프레임워크) | Node.js and NPM(Node.js 및 NPM) 아래의 패키지 관리자 목록에 전용 pnpm 옵션도 있습니다.

Webpack 설정

여러 webpack 구성에 대한 기본 지원

GoLand 2020.3을 사용하면 webpack 구성 파일의 수동 또는 자동 탐지 중 하나를 선택할 수 있습니다. 이 새로운 옵션은 Settings(설정) | Languages & Frameworks(언어 및 프레임워크) | JavaScript | Webpack에서 찾을 수 있습니다.

데이터베이스 작업

Couchbase 쿼리를 데이터 소스로 추가

Couchbase 지원

DataGrip 팀 동료들 덕분에 GoLand는 새로운 멤버인 Couchbase를 통해 지원되는 데이터베이스의 범위를 확장했습니다! IDE는 Couchbase Analytics 서비스가 아닌 Couchbase Query 서비스를 지원한다는 점에 유의하세요.

GoLand는 객체의 DDL에 권한 부여를 표시합니다.

권한 부여 지원

GoLand는 객체 권한 부여를 인지하고 객체의 DDL에 이를 표시합니다. 이 기능은 MySQL, PostgreSQL, Greenplum, Redshift 및 SQL Server에서 작동합니다.

GoLand는 별도의 에디터에 서식 지정된 값을 표시합니다.

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

셀 값에 대한 별도의 에디터를 개선했습니다.

  • 이제 값의 서식이 올바르게 지정되지 않은 경우에도 서식 지정된 값을 표시합니다.
  • 서식이 지정된 뷰에서 값을 편집하고 한 줄 XML 및 JSON의 원래 서식 지정으로 업데이트할 수 있습니다.
  • 화면 너비가 흐름에 중요한 경우, 셀 값 에디터를 데이터 에디터의 하단으로 이동할 수 있습니다.
  • 또한 이제 이 패널에 이미지도 표시됩니다!
사용 중인 'One-Row' 추출기

데이터베이스 가져오기/내보내기

데이터 작업을 보다 쉽게 ​​수행할 수 있도록 두 가지 새로운 추출기를 추가했습니다.

  • One-Row를 사용하면 쉼표로 구분된 문자열로 열을 복사할 수 있습니다.
  • SQL-Insert-Multirow는 삽입될 여러 개의 새 줄이 있는 단일 INSERT 문을 생성합니다.

또한, CSV 서식 구성에 never quote values(따옴표로 묶지 않음)라는 새로운 옵션이 추가되었습니다.