GoLand의 새로운 기능

GoLand 2020.1에서는 Go 모듈 지원을 위한 다양한 업그레이드는 물론 사용자의 입력이 거의 필요하지 않은 코드 편집 기능과 확장된 코드 완성 기능이 제공됩니다.

또한 새로운 코드 검사, 빠른 수정을 비롯해 프로젝트를 생성하거나 로드하지 않고 텍스트 에디터에서 파일을 열 수 있는 새로운 LightEdit 모드, 지능적인 철자 및 문법 검사, 웹 개발 및 데이터베이스 작업을 위한 새로운 기능 등의 기타 개선 사항이 추가되었습니다.

이에 관한 자료를 읽지 않고 대화식으로 확인하고 싶으신가요? IDE 내에서 Features of GoLand 2020.1(GoLand 2020.1의 기능) 튜토리얼을 완료하세요.

Go 모듈 개선 사항

새로운 'Environment Variables' 대화상자에서 'direct'와 'off' 값 중 GoLand가 자동으로 제안한 값으로 GOPROXY 구성

이제 Go 1.13의 환경 변수인 GOPROXY, GOPRIVATE, GOSUMDB, GONOPROXY, GONOSUMB가 지원됩니다.

Go Modules(Go 모듈) 프로젝트 템플릿을 사용해 이러한 변수의 기본값을 구성하세요. 새로운 Environment Variables(환경 변수) 대화상자를 열려면 Environment(환경) 필드에서 Browse(열기) 아이콘을 클릭하기만 하면 됩니다.

'replace' 키워드, 종속성 이름 및 교체 경로에 대한 코드 완성 구현

go.mod 파일에서 go, module, require, replace, exclude 키워드, 종속성의 이름, 로컬 경로 교체에 대한 코드 완성이 제공됩니다.

GoLand가 패키지 가져오기를 제안

Rename(이름 변경)Move(이동) 리팩터링도 이용할 수 있습니다. replace 문에서 참조되는 디렉터리의 이름이 변경 또는 이동되면 GoLand에서 go.mod 파일의 경로를 적절히 변경합니다.

Find Usages(사용 위치 검색)를 사용하여 go.mod 파일에서 디렉터리가 사용되는 위치를 찾고 해당 소스로 이동.

이제 Project(프로젝트) 뷰를 통해 Find Usages(사용 위치 검색)를 호출하여 go.mod 파일에서 사용되는 특정 디렉터리 경로가 사용되는 위치를 탐색할 수도 있습니다.

GoLand는 사용되지 않거나 누락된 종속성을 강조 표시하고 Alt-Enter를 눌러 빠른 수정을 사용해 해당 요소를 제거하거나 가져오도록 제안

GoLand 2020.1에서는 Alt-Enter를 눌러 누락된 종속성을 가져오거나 사용되지 않는 항목을 제거할 수 있습니다.

GoLand는 로컬 경로를 대체하는 go.mod 파일이 커밋에 포함되어 있음을 알림

마지막으로, 이 새 버전에서는 로컬 경로 대체가 있을 경우 커밋 전에 알림이 표시되므로 실수로 커밋할 위험이 없습니다.

사용 방법을 배울 필요가 없는 코드 완성 기능

함수 내에 'if'를 입력하여 오류 처리 패턴을 완성

GoLand 2020.1은 오류 처리 패턴을 완성하도록 if err != nil { ... }을 제안합니다. 간단히 표현식 내에 if를 입력하세요.

코드 완성을 사용하여 'struct' 및 'interface' 선언

type 키워드 또는 structinterface를 입력하기만 하면 구조체 및 인터페이스 유형을 더 빠르게 정의할 수 있습니다.

콜론 다음에 'Fill Fields'로 공백 추가

Fill Fields(필드 채우기) 액션은 서식 지정 규칙에서 요구되는 경우 콜론 뒤에 공백을 추가합니다. 또한 복합 리터럴 선언에서 구문 끝에 쉼표를 추가합니다.

GoLand는 닫는 괄호 뒤에 커서를 이동

이제 맵을 작업할 때 키 유형을 완료하면 코드 완성 기능에서 커서를 닫는 괄호 뒤로 이동합니다.

GoLand는 제안을 제공하여 함수 반환 유형의 지역 변수를 완성

함수의 반환 유형의 경우 코드 완성 기능은 해당 반환값 유형에 적합한 지역 변수 및 제로 값을 제안합니다.

스마트 코드 완성(Ctrl+Shift+Space)

GoLand는 구조체 이니셜라이저를 가리키는 포인터를 제안

Smart Code Completion(스마트 코드 완성)은 구조체 이니셜라이저에 대한 포인터를 제안합니다.

GoLand 어설션에서 호환되는 유형을 제안

또한 어설션 및 유형 switch case에서 호환되는 유형을 제안합니다.

GoLand는 어설션에서 대입된 변수의 유형을 제안

유형 어설션에서는 대입된 변수의 유형을 제공합니다.

GoLand는 'Smart Code Completion'을 통해 표현식 내 가능한 포인터 목록을 제안

마지막으로, 표현식에서 가능한 포인터에 대한 제안 목록을 제공합니다.

기본 코드 완성(Ctrl+Space)

GoLand는 주석 블록 내 함수 이름을 완성

주석에 대한 새로운 Basic Code Completion(기본 코드 완성)이 추가되어 문서 작성이 훨씬 간편해졌습니다. 이 기능은 현재 패키지 선언의 이름과 함수 및 메서드의 매개변수 이름을 제안합니다.

GoLand 표현식 내 변환을 제안

그 외에도 Basic Code Completion은 리터럴과 변환도 제안합니다.

코드 편집

GoLand는 다음 반환 유형을 추가하기 위한 쉼표 입력 후 'int' 유형에 괄호를 추가

GoLand 2020.1은 값이 여러 개인 반환 함수의 시그너처를 작성할 때 쉼표 뒤에 오는 반환 유형의 주위에 괄호를 추가합니다.

GoLand는 문자열 리터럴 내 텍스트를 붙여넣기한 후 큰따옴표를 이스케이프

문자열 리터럴에 일부 텍스트를 붙여넣으면 ID는 큰따옴표를 이스케이프합니다.

사용자가 아무 것도 하지 않아도 작동하는 기능에 관해 자세히 알아보려면 GoLand Editing Features You Didn’t Know About(당신이 몰랐던 GoLand 편집 기능)이라는 글을 읽어보세요.

Go 1.14 지원

중첩 인터페이스 지원 면에서 GoLand 2019.3 및 2020.1의 차이점

중첩 인터페이스 지원

Go 1.14에서 중첩 인터페이스를 포함할 수 있도록 지원을 추가하였으므로 GoLand에도 이를 적용했습니다. 사용자가 중첩 인터페이스를 사용하는 유형의 여러 측면을 설명할 때 GoLand는 이에 대한 중복된 메서드를 오류로 보고하지 않습니다.

'Go Modules' 섹션의 새로운 설정

자동 벤더링 모드

Go 1.14에서 벤더링 모드는 모듈 루트에 벤더 디렉터리가 포함된 경우 자동으로 활성화됩니다. 이에 따라 GoLand 2020.1에서도 Go 1.13 및 이전 버전에 대해 유사한 동작을 구현하기로 했습니다. GoLand는 vendor/ 폴더가 모듈에 있는 경우 해당 벤더 / 폴더로 가져오기를 자동으로 처리합니다.

디버거 업데이트

'Debug' 창에서 프로파일러 라벨이 지정된 고루틴을 확인

프로파일러 라벨 지원

디버그 또는 코어 덤프 분석을 실행할 때 고루틴을 더 쉽게 구별할 수 있도록 프로파일러 라벨을 추가했습니다.

자세한 내용을 알아보려면 How to Find Goroutines During Debugging(디버그 중 고루틴을 찾는 방법)을 읽어보세요.

'Run/Debug Configurations'의 'Program arguments' 필드에서 새로운 'Macros' 대화상자를 이용해 사전 정의된 매크로 선택

매크로 지원

이제 매크로를 매개변수로 사용하여 애플리케이션을 실행하거나 디버그할 수 있습니다. Run/Debug Configurations(실행/디버그 구성) 대화상자에서 Go Tool(Go 도구) 또는 Program arguments(프로그램 인수) 필드의 +를 클릭하여 사용 가능한 매크로 목록이 표시된 새 Macros(매크로) 대화상자를 여세요.

또한 이제 프로젝트에 구성 파일을 저장할 수 있습니다. Run/Debug Configurations 대화상자의 상단에서 Store as project file(프로젝트 파일로 저장) 옵션을 선택하세요.

접미어 완성

'.else 접미어 템플릿 구현

.else 접미어 완성 템플릿은 if 문을 빠르게 추가하여 표현식이 false인지 확인합니다.

빠른 수정

Println을 Printf로 변환

Alt+Enter를 눌러 비서식 지정 호출을 서식 지정 호출로 빠르게 변경하세요.

'Create variable’는 기대 유형을 제공하여 표현식을 완성하도록 제안

이제 Create variable(변수 생성) 빠른 수정에 기대 유형 힌트가 표시되어 올바른 값을 입력하기가 수월해집니다.

코드 검사

GoLand는 비 포인터 리시버에 있는 포인터 메서드의 유효하지 않은 호출에 대해 경고하고 그에 대한 빠른 수정을 제공

이 새로운 코드 검사는 비 포인터 리시버에 있는 포인터 메서드의 유효하지 않은 호출에 대해 경고하고 빠른 수정을 제공합니다.

GoLand는 unsafe.Pointer의 잘못된 사용 가능성을 경고

Invalid conversions of uintptr to unsafe.Pointer(uintptr에서 unsafe.Pointer로의 잘못된 변환) 코드 검사는 정수를 포인터로 변환할 때 uintptrunsafe.Pointer가 잘못 사용된 경우 경고합니다.

GoLand는 'Unmarshal' 함수 내 인수가 포인터 유형을 가져야 함을 경고

Unmarshal is called with incorrect argument(Unmarshal을 잘못된 인수로 호출)라는 검사는 json.Unmarshal 호출 및 encoding/json, encoding/xml, encoding/gob 패키지의 유사 함수를 분석합니다.

GoLand는 인수가 포인터 유형을 가져야 함을 경고

Locks mistakenly passed by value(값에서 잘못 전달한 lock)라는 코드 검사는 lock이 포함된 값을 실수로 복사하지 않도록 도와줍니다.

라이브 템플릿

'var' 및 'consts' 선언

선언 그룹을 빠르게 생성할 수 있는 새로운 템플릿이 추가되었습니다. 템플릿에는 consts, vars, types, imports 등이 있습니다. 이러한 템플릿 중 하나를 사용하면 GoLand에서 선언 이름 주위에 괄호를 추가합니다.

'fori' 템플릿 구현

fori 템플릿은 클래식한 for-loop의 상용구를 삽입합니다.

리팩터링

'Extract Method'는 실행 후 원래 순서를 유지

Extract Method(메서드 추출) 리팩터링은 상위 함수 및 메서드 매개변수의 기존 순서를 유지합니다.

Alt+Enter를 누르면 'Rename'이 사용 위치의 이름 변경을 제안

이제 Rename(이름 변경) 리팩터링은 선언 이름변경을 자동으로 탐지합니다. 즉, 선언 이름을 사용자가 직접 변경하는 경우 IDE에서 여백 아이콘을 표시하여 해당 사용 위치의 이름을 모두 변경하도록 제안합니다.

탐색

'Find Usages'은 인터페이스 메서드의 사용 위치를 표시

Navigate to implementations(구현으로 이동)Ctrl+Alt+B) 및 Navigate to Declaration or Usages(선언 또는 사용 위치로 이동)(Ctrl+B)는 현재 프로젝트의 결과를 먼저 표시합니다.

또한 이제 Find Usages(사용 위치 검색)(Alt+F7) 액션에서 인터페이스 메서드의 사용 위치를 기본적으로 항상 검색합니다. 현재 메서드의 사용 위치를 예전처럼 검색하려면 Alt+Shift+Ctrl+F7을 사용하세요.

VCS 개선

에디터에서 Diff를 표시하는 새로운 'Commit' 도구 창

새로운 커밋 도구 창

이제 새로운 커밋 도구 창에 Local Changes(로컬 변경)Shelf(보관) 탭이 통합되었습니다. 이 도구 창에서는 Diff 확인, 커밋할 파일 및 청크 선택, 커밋 메시지 입력과 같은 모든 커밋 관련 작업을 실행할 수 있습니다. 커밋 도구 창은 화면 왼쪽에 세로로 배치되어 에디터 전체에 Diff를 표시할 수 있습니다.

'Branches' 팝업

브랜치 팝업 개선 사항

Branches(브랜치) 팝업이 몇가지 개편되었습니다.

  • 기존의 원격 브랜치와 로컬 브랜치를 찾을 수 있는 명시적 검색 필드가 추가되었습니다.
  • 이제 기존 원격 브랜치를 업데이트하는 Refresh(새로고침) 버튼을 사용할 수 있습니다.
  • 수신(파란색) 및 송신(녹색) 커밋 표시기가 상태 표시줄에 추가되었습니다.
'Rebasing Commits' 창

새로운 대화형 리베이스 대화상자

Interactively Rebase from Here(여기에서 상호작용으로 리베이스) 기능이 전면 개편되었습니다. 이 대화상자에서는 이전 커밋을 편집, 결합, 삭제하여 커밋 기록을 순차적으로 더 이해하기 쉽게 구성할 수 있습니다.

이 대화상자를 실행하려면 Git 도구 창의 Log(로그) 탭으로 이동하여 편집하려는 일련의 커밋에서 가장 오래된 커밋을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 Interactively Rebase from Here를 선택하세요.

데이터베이스 업데이트

코드 에디터에 결과 표시
  • Run configurations(실행 구성)를 사용하여 스크립트 파일 및 코드 조각을 실행하세요. 이 기능을 사용하면 여러 개의 파일을 한 번에 실행하고 재정렬하고 새 파일을 추가하며 시작 전에 다른 프로그램이나 구성을 실행할 수 있습니다.
  • 이제 코드 에디터에서 결과를 확인할 수 있습니다. 이 옵션은 기본적으로 해제되어 있습니다. Settings(설정)/Preferences(환경 설정) | Database(데이터베이스) | General(일반) | Show output results in the editor(에디터에 출력 결과 표시)에서 이를 활성화 할 수 있습니다.
  • 이제 SSH 터널용 구성을 생성하여 다양한 데이터 소스 및 프로젝트에서 사용할 수 있습니다.
  • 데이터를 Excel 파일로 내보낼 수 있는 기능이 추가되었습니다.
  • 또한 추출기의 드롭다운 목록에서 선호하는 데이터 형식을 선택할 수 있습니다.

웹 개발

Alt+Enter를 누르면 GoLand에서 기존 코드를 optional chaining 및/또는 nullish coalescing으로 변환하도록 제안

JavaScript 및 TypeScript를 위한 새로운 스마트 인텐션 및 검사

새로운 스마트 인텐션 및 검사 기능(Alt+Enter)을 통해 코딩 시간을 단축하세요! 예를 들어, 기존 코드를 JavaScript 및 TypeScript 최신 버전에 도입된 구문인 optional chaining/nullish coalescing으로 빠르게 변환할 수 있습니다.

Documentation 팝업에서 심볼 유형 및 심볼이 정의된 위치를 표시

더욱 유용한 빠른 문서 기능

이제 JavaScript 및 TypeScript에서 문서 팝업이 더욱 유용한 정보를 표시합니다. 심볼의 유형, 표시 설정 및 심볼이 정의된 위치와 같은 세부 정보가 이에 포함됩니다.

기타 변경 내용

새로운 'LightEdit Mode'를 사용하면 프로젝트를 생성하거나 로드하지 않고 텍스트 에디터에서 파일을 열 수 있음
  • JetBrains의 새로운 글꼴인 JetBrains Mono가 기본적으로 제공됩니다. 글꼴에 관한 자세한 내용은 이 페이지를 참조하세요.
  • IDE에서 작성된 텍스트에 대한 지능적인 절차 및 문법 검사를 제공하는 플러그인, Grazie가 기본적으로 번들로 제공됩니다.
  • 새로운 LightEdit 모드를 사용하면 프로젝트를 생성하거나 로드하지 않고도 텍스트 에디터에서 파일을 열 수 있습니다. 이 새로운 기능을 사용하려면 여기에 설명된 대로 먼저 Tools(도구) | Create Command-line Launcher(코드줄 실행기 생성)에서 코드줄 생성기를 만들어야 합니다(JetBrains Toolbox App을 사용하는 경우 단계가 약간 다름). 파일을 열고, 비교/병합하고, 코드 검사를 실행하는 방법에 관한 자세한 내용은 이 웹 도움말 섹션을 참조하세요.
  • 새로운 Zen 모드가 추가되었습니다. 이 모드는 잠재적인 집중력 분산 요소를 없애고 코드에 완전히 집중할 수 있도록 도와줍니다. 이 모드는 기본적으로 Distraction Free(집중력 분산 방지) 모드Full Screen(전체 화면) 모드가 결합되어 있습니다. 활성화하려면 View(보기) | Appearance(모양) | Enter Zen Mode(Zen 모드 시작)으로 이동하거나 Quick Switch Scheme(빠른 전환 구성) 팝업(Ctrl+' | View mode(모드 보기) | Enter Zen Mode)에서 선택하세요.
  • 외부 문서는 이제 https://godoc.org 대신 https://pkg.go.dev로 연결됩니다.
  • 기본 색 구성표를 Classic Light(클래식 라이트)라는 새로운 이름으로 복원했습니다.