GoLand의 새로운 기능

GoLand 2022.3에서는 성능 향상과 더불어 제네릭Go 작업 공간과 관련한 새로운 기능이 제공됩니다.

Go Playground 통합, Go 문서 주석 개선 사항, HTTP 클라이언트 및 Docker 신규 기능이 추가되었으며 새로운 UI를 사용할 수 있습니다.

또한 이번에도 Redis 지원과 같은 웹 개발 및 데이터베이스 신규 기능이 추가되었습니다.

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

마지막으로, 오늘 5주년을 맞이한 GoLand를 함께 축하해 주세요. GoLand 2022.3 또는 GoLand 2022.2.5에서 "Happy B-day, GoLand!"를 입력하고, 어떤 화면이 나타나는지 확인해 보세요.

성능 개선 사항

Background Tasks(백그라운드 작업) 창에 색인 생성 및 go list 실행 표시

색인 생성 개선을 위한 go list 변경 사항

GoLand에서 프로젝트를 열면 파일 색인이 생성되며 go list 명령어가 실행되어 프로젝트 구조 관련 정보가 표시됩니다. go list가 실행되면 색인 생성은 잠시 중지되고, 색인 생성이 완료될 때까지 코드 분석 기능을 사용할 수 없습니다.

이전에는 GoLand에서 go list가 두 번 실행되는 일부 경우도 있었으나 API를 변경하고 go list 실행 횟수를 줄였습니다. 이 변경을 통해 여러 모듈이 포함된 대규모 프로젝트에서 성능이 크게 개선되기를 바랍니다.

프로젝트를 열면 캐시의 프로젝트 구조 복원

이제 프로젝트를 열면 go list를 통해 보고된 정보가 캐시 메모리의 디스크에 저장됩니다. 해당 프로젝트를 다시 열면 프로젝트 구조 관련 데이터가 메모리에서 로드되며 색인 생성을 시작할 때 고려됩니다.

따라서 색인 생성 작업이 중단 없이 실행되어 더 빠르게 완료됩니다. 또한 프로젝트를 연 후 코드 분석 기능도 더 빠르게 사용 가능합니다.

더 빨라진 IDE 시작 및 프로젝트 열기

JetBrains IDE에서 애플리케이션을 시작하고 프로젝트를 여는 데 소요되는 시간을 단축하는 여러 성능 개선 사항이 GoLand에도 추가되었습니다.

결과적으로 에디터 복원을 비롯한 전반적 시작 성능이 약 30% 개선되었습니다.

제네릭

제네릭 함수를 위한 테스트 생성

제네릭 함수 테스트 생성

이제 제네릭 매개변수가 포함된 함수에 대한 테스트를 생성할 수 있습니다.

매개변수 목록이 비어 있는 타입 매개변수를 삭제하는 빠른 수정

타입 매개변수를 대문자로 표시하는 빠른 수정

이제 소문자 타입 매개변수를 발견하는 검사 및 해당 매개변수를 대문자로 바꾸는 빠른 수정이 지원됩니다.

Go 작업 공간

Go Workspace File(Go 작업 공간 파일) 액션 사용

Go Workspace File(Go 작업 공간 파일) 액션

New(새로 만들기) 컨텍스트 메뉴에 Go Workspace File(Go 작업 공간 파일) 액션이 추가되었습니다. 이 액션을 선택하면 루트 폴더에 go.work 파일이 표시되며 기존 Go 모듈이 go.work 파일에 자동으로 추가됩니다.

replace 지시문을 사용하여 go.work 생성

replace 지시문을 사용하여 go.work 생성

replace 지시문이 있는 경우 go.mod에서 go.work를 생성할 수 있습니다. replace 지시문에 캐럿을 두고 Alt+Enter를 누르면 사용 가능한 모든 인텐션 액션을 확인할 수 있습니다. 다음으로 Add … module to workspace(작업 공간에 … 모듈 추가) 빠른 수정을 선택하세요.

Go 문서 주석

Go 1.19에서 문서 주석의 링크, 목록 및 새로운 제목 관련 지원이 추가되었습니다. GoLand 2022.3에서는 다음과 같은 새로운 기능도 지원됩니다.

텍스트 및 문서 링크는 Quick Documentation(빠른 문서) 팝업 및 Documentation(문서) 도구 창에서 링크로 렌더링됩니다

링크 지원

GoLand에 문서 링크 참조 기능이 추가되었습니다. 해당 링크를 클릭하면 참조된 요소로 이동하며, 텍스트 링크를 클릭하여 텍스트 링크 정의로 이동할 수 있습니다.

텍스트 및 문서 링크는 Quick Documentation(빠른 문서) 팝업 및 Documentation(문서) 도구 창에서 링크로 렌더링됩니다.

Documentation(문서) 도구 창에 새로운 제목 표시

새로운 제목 지원

Go 1.19부터 제목은 숫자 기호(#)로 시작하고, 한 칸 띄어 쓴 후 제목 텍스트를 입력합니다.

새로운 제목은 GoLand의 Quick Documentation(빠른 문서) 팝업 및 Documentation(문서) 도구 창에서 HTML 제목으로 렌더링됩니다.

Documentation(문서) 도구 창에 목록 표시

목록 지원

목록은 GoLand의 Quick Documentation(빠른 문서) 팝업 및 Documentation(문서) 도구 창에서 HTML 목록으로 렌더링됩니다.

Go Playground 통합

GoLand에서 Go Playground 사용

GoLand에 Go Playground 기능이 통합되었습니다.

코드를 선택하고 Open In(다음에서 열기...) 옵션을 선택한 후 Playground를 클릭하면 스크래치 파일이 열립니다. 이 파일에는 Go Playground를 사용할 때와 동일한 옵션이 포함된 툴바가 표시됩니다.

코드 서식을 지정하고 공유하거나, Go 버전을 변경하거나, Go Playground 서버 혹은 로컬에서 코드를 실행할 수 있습니다.

새로운 빠른 수정 기능

빠른 수정을 사용하여 타입을 포인터로 변환

잘못된 재귀 타입 빠른 수정

타입이 자신를 포함한 경우 "Invalid recursive type"(잘못된 재귀 타입) 오류가 표시됩니다. To avoid this, you should include a pointer to a type, not a type itself. 이제 빠른 수정으로 이 오류를 해결할 수 있습니다.

에디터

에디터에서 코드 작성자 이름 표시

Code Vision

Code Vision 기능 구현이 시작되었습니다. 이제 버전 관리 통합이 활성화된 경우 코드 작성자가 표시됩니다. 코드 작성자 이름을 클릭하면 Annotate with Git Blame(Git Blame으로 어노테이션 추가) 사이드바가 열려 다양한 변경 사항의 코드 작성자를 확인할 수 있습니다.

함수 및 타입 옆에 사용 현황 표시

현재 프로젝트에서 사용된 함수 또는 타입의 참조 횟수가 모든 함수 및 타입 옆에 표시되도록 하는 기능을 도입했습니다.

에디터에 상수 정의 블록에 대한 인레이 힌트 표시

상수 정의 인레이 힌트

GoLand에 상수 정의 블록에 대한 인레이 힌트가 표시됩니다. 이 기능은 특히 iota 파생 상수 블록에 유용하며, 기능 사용 시 각 위치와 관련된 iota 값이 힌트에 표시됩니다.

Fill all fields(모든 필드 입력) 인텐션 액션 호출 후 자동 생성 protobuf 필드 무시

Fill all fields(모든 필드 입력) 사용 시 자동 생성 protobuf 필드 무시

이제 IDE에서 Fill all fields(모든 필드 입력) 인텐션 액션을 호출하면 XXX_로 시작하는 자동 생성 프로토콜 버퍼 필드가 무시됩니다. 해당 필드는 코드 완성 기능을 두 번째로 호출해야 표시됩니다.

Go 관련 기타 기능

설정에서 Go 환경 변수 표시

설정에서 Go 환경 변수 표시

이제 GoLand는 Go 모듈과 관련된 시스템 변수를 자동으로 선택하고 Environment variables(환경 변수) 대화상자 창에 표시합니다. 이 창을 열려면 Settings(설정) | Go | Go Modules(Go 모듈)에서 Edit environment variables(환경 변수 편집) 아이콘을 클릭하세요.

Quick documentation(빠른 문서)에 패키지 이름 표시

Quick documentation(빠른 문서)에 패키지 이름 항상 표시

IDE에서 최상위 선언에 대한 Quick documentation(빠른 문서) 팝업에 패키지 이름이 항상 표시됩니다. 이전에는 doc.go 또는 <pkg_name>.go 파일이 탐지된 경우에만 패키지 헤더가 표시되었습니다.

증가된 파일 크기 제한

파일 크기 제한이 2.5MB에서 10MB로 증가했습니다. 파일이 크기 제한을 초과할 경우 탐색 및 강조 표시와 같은 코드 분석 기능이 작동하지 않습니다.

대부분 파일에서 2.5MB 제한이 문제가 되지 않았으나, AWS SDK 또는 GCP와 같이 그보다 큰 파일이 포함된 프로젝트를 위해 파일 제한 크기를 증가했습니다.

생성된 코드를 무시하는 Receiver names are different(리시버 이름이 다름) 검사

Receiver names are different(리시버 이름이 다름) 검사는 생성된 코드와 관련이 없으므로 파일에 ^// Code generated .* DO NOT EDIT\.$ 정규 표현식과 일치하는 주석이 포함된 경우 해당 검사가 비활성화됩니다.

HTTP 클라이언트

HTTP 클라이언트에서 스크립트 블록 작성

사전 요청 스크립트 및 JavaScript 핸들러용 신규 API

이제 HTTP 클라이언트는 요청 전 스크립트 블록 실행을 지원합니다. 요청을 실행하기 전에 데이터를 생성하고 변수를 사용하여 최종 요청에 포함할 수 있습니다. 상용구 코드를 생성하는 빠른 수정을 사용하여 변수를 초기화할 수 있습니다.

HTTP 요청에 대한 md5 또는 sha1 해시 값 계산

이제 HTTP 클라이언트가 Crypto API를 지원하므로 HTTP 요청에 대한 md5 또는 sha1 해시 값을 계산할 수 있습니다.

HTTP 요청에 임의 값 사용

간단한 케이스의 경우 IDE에서 새로운 random 변수 세트가 제공됩니다.

Docker

Windows용 GoLand에서의 Docker 설정

Docker Desktop 없이 사용 가능한 WSL의 Docker 실행 파일

GoLand는 이제 Linux용 Windows 하위 시스템(WSL)에서 실행되는 Docker 연결을 지원합니다. Settings(설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Docker에서 이 연결을 설정할 수 있습니다.

빠른 수정을 사용하여 이미지 풀하기

새로운 인텐션 액션: Pull Docker image(Docker 이미지 풀하기)

이제 Dockerfile 또는 docker-compose.yml에서 필요한 이미지를 실행하지 않고도 쉽게 풀할 수 있습니다. 강조 표시된 이미지 이름을 눌러 컨텍스트 액션(Alt+Enter)을 호출하고 Pull Docker image(Docker 이미지 풀하기)를 선택합니다.

dockerignore 파일에서 코드 완성 사용

.dockerignore 파일 형식 지원

이제 .dockerignore 파일에도 코드 강조 표시 및 코드 완성 등 모든 지원이 제공됩니다. IDE에서 이미지를 빌드할 때 이 형식의 파일도 고려됩니다.

GoLand에서 Heredoc 구문 강조 표시

Dockerfile 파일의 heredoc 형식 지원

Here 문서를 사용하면 후속 Dockerfile 줄을 RUN 또는 COPY 명령어의 입력으로 리디렉션할 수 있습니다. GoLand에서 해당 구문이 지원되므로 이를 활용해 Dockerfile 파일에서 바로 구성 파일이나 여러 줄의 스크립트를 생성할 수 있습니다.

Docker 컨텍스트를 사용하여 추가 Docker 연결 설정

Docker 컨텍스트에서의 Docker 연결

Docker 구성에 이미 설정이 있는 경우 Docker 컨텍스트를 사용하여 추가 Docker 연결을 설정할 수 있습니다. Services(서비스) 뷰에서 Add Service(서비스 추가) 컨텍스트 메뉴를 호출하고 Docker Connections From Docker Contexts(Docker 컨텍스트로부터의 Docker 연결)를 선택하면 됩니다.

원격 개발(베타)

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

이제 WSL 2에서 IDE 백엔드를 바로 실행하고, GoLand에서 원격 개발 사용 시 원격 시스템에 연결하는 방식과 동일한 방식으로 연결할 수 있습니다.

사용자 인터페이스

설정의 새로운 UI 테스트 버전 섹션

새로운 UI 사용 가능

지난 5월, JetBrains IDE의 새로운 UI를 선보이는 비공개 테스트 버전 프로그램이 공개되었습니다.

Settings | Appearance & Behavior(모양 및 동작) | New UI Preview(새로운 UI 테스트 버전)에서 새로운 UI로 전환하여 직접 사용해 보시고, 새 UI에 대한 의견을 들려주세요.

인텐션 액션 미리보기 기능 사용

기본적으로 활성화된 인텐션 액션 미리보기

이제 인텐션 액션 미리보기 기능이 기본적으로 활성화되어 있으므로 IDE 제안 사항을 적용할 경우 코드의 변화를 즉시 확인할 수 있습니다.

인텐션 액션 목록이 열린 상태에서 Ctrl+Q를 눌러 미리보기 기능을 활성화하거나 비활성화할 수 있습니다.

메인 창에서 도구 창을 드래그하여 플로팅 에디터 탭에 도킹

플로팅 에디터 탭에 도구 창 도킹

작업 공간을 더 간편하게 정렬하고 모니터 여러 대에서 GoLand와 상호 작용할 수 있도록 도구 창을 메인 창 외부로 드래그하여 플로팅 에디터 탭에 도킹하는 옵션을 구현했습니다.

오늘의 팁 창

Tips of the Day(오늘의 팁) 개선

GoLand를 살펴보는 데 도움이 되는 학습 도구인 Tips of the Day(오늘의 팁) 기능이 개선되었습니다.

이제 각각의 팁에 제목이 있습니다. 또한 표시할 팁을 결정하는 알고리즘도 개선되어 IDE 사용 경험 및 작업 중인 프로젝트와 가장 관련성 높은 팁이 표시됩니다.

에디터 탭에서 파일 북마크

북마크 업데이트

에디터 탭의 파일 북마크 기능이 다시 추가되었습니다. 탭을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴를 호출하여 Bookmarks(북마크)를 선택하세요.

현재 열려 있는 탭의 모든 파일을 북마크에 추가

현재 열려 있는 모든 탭의 모든 파일을 Bookmarks(북마크)에 추가할 수 있습니다. 동일한 컨텍스트 메뉴를 호출하고 Bookmark Open Tabs(열린 탭을 북마크 지정)를 선택하거나, 에디터 탭 창 오른쪽의 점 3개 아이콘을 사용하여 이 액션을 호출할 수 있습니다.

GoLand 설정의 Settings Sync(설정 동기화) 섹션

새로운 Settings Sync(설정 동기화) 솔루션

사용자 지정 설정을 동기화하는 하나의 개선된 솔루션을 도입했습니다. 오랫동안 IDE Settings Sync(IDE 설정 동기화)Settings Repository(설정 저장소)라는 2개의 플러그인이 혼용되며 교차적 기능을 제공해 왔습니다. 이제 번들로 제공되는 2개의 유사한 플러그인을 사용할 때 발생 가능한 혼란을 방지하기 위해 해당 기능을 Settings Sync(설정 동기화) 플러그인이라는 하나의 새로운 솔루션으로 통합하여 선보입니다.

새로운 통합 솔루션에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

데이터베이스

참고: 2022.3 버전의 모든 데이터베이스 업데이트는 DataGrip의 새로운 기능 페이지에서 확인할 수 있습니다.

데이터베이스 도구 창에서 Redis 연결 선택

Redis 지원

오랫동안 기다려온 Redis 지원의 사전 반복 처리 기능이 구현되었습니다.

데이터베이스 도구 창에서 빠른 검색 사용 시 객체 필터링

빠른 필터

이제 빠른 검색을 사용 시 객체를 필터링할 수도 있습니다. 필터와 일치하지 않는 모든 객체는 표시되지 않습니다.

웹 개발

참고: 2022.3 버전의 모든 웹 개발 개선 사항은 WebStorm의 새로운 기능 페이지에서 확인할 수 있습니다.

에디터에 코드 작성자 이름 및 사용 현황 메트릭 표시

JavaScript 및 TypeScript용 Code Vision

이 버전에는 웹 개발을 위한 새로운 기능인 Code Vision 기능이 도입되었습니다. Code Vision은 JavaScript 및 TypeScript 코드에서 타입 및 타입 멤버에 대한 다양한 메트릭을 수집하여, 타입/타입 멤버의 선언 근처에 해당 정보를 표시합니다.

기타 업데이트

빠른 수정을 사용하여 YAML 파일에서 검사 억제

YAML에서 검사를 억제하는 빠른 수정

Kubernetes 파일, OpenAPI 사양 및 docker-compose.yml 파일 등 YAML 파일의 주석을 사용해 검사를 억제하는 새로운 빠른 수정이 있습니다.

또한 3줄 이상 블록을 구성하고 #으로 시작하는 여러 줄 주석을 접는 옵션도 추가되었습니다.

Windows ARM64용 설치 프로그램

Windows ARM64용 설치 프로그램의 배포가 시작되어, JetBrains 웹사이트 또는 Toolbox App에서 다운로드할 수 있습니다.