GoLand 2023.3의 새로운 기능

GoLand 2023.3에는 몇 가지 중요한 추가 사항이 포함되었습니다.

  • JetBrains의 AI Assistant가 이제 JetBrains IDE에서 생산성을 높이기 위한 여러 가지 새롭고 향상된 기능으로 정식 출시되었습니다.
  • 이제 Dev Container가 공식적으로 지원됩니다. 여러 기능에 대한 작업을 진행 중이며 Dev Container 지원을 활발히 개발하고 있으므로 '베타' 버전으로 제공됩니다.
  • 오류 처리, 한 줄 returnpanic, 및 기타 코드에 대한 코드 접기 스타일이 크게 업데이트되었습니다.
  • slice 표현식에 대한 힌트, 사용자 지정 printf 유사 함수에 대한 코드 분석 기능, 디버거 개선 등 생산성을 향상시키는 여러 힌트, 리팩터링 및 빠른 수정을 제공합니다.

GoLand 2023.3에서는 Docker 및 Kubernetes 통합 업데이트, VCS, 및 웹 개발을 위한 일부 기능 개선도 제공합니다. 지금부터 자세히 알아보겠습니다!

AI Assistant 정식 출시

AI Assistant를 사용하면 에디터 내에서 바로 향상된 코드를 생성하는 기능, 코드를 복사하지 않고도 상황을 인식하고 프로젝트 관련 쿼리에 응답하는 AI 채팅, 확장된 컨텍스트를 사용하여 프로젝트를 인식하고 보다 포괄적인 결과를 제공하는 AI 액션 등의 이점을 얻을 수 있습니다. 새로운 diff 뷰어를 사용하면 AI 액션으로 인해 코드에 적용된 변경 사항을 더 쉽게 식별할 수 있습니다.

JetBrains AI Service를 구독하면 GoLand의 AI Assistant를 추가 기능으로 사용할 수 있습니다.

GoLand용 AI Assistant: Rename(이름 변경)

이름을 정하는 일은 어렵습니다! 이것이 GoLand의 AI Assistant가 가독성을 높이기 위해 함수에 대한 몇 가지 가능한 이름을 제안하는 이유입니다.

GoLand용 AI Assistant: Write documentation(문서 작성)

코드 문서화는 지루한 일상 작업이지만 꼭 필요합니다. Write documentation(문서 작성) 액션을 사용하면 몇 번의 클릭만으로 주석이 잘 정리된 코드를 쉽게 작성할 수 있습니다.

GoLand용 AI Assistant: Generate Unit Test(유닛 테스트 생성)

AI Assistant는 특정 함수나 메서드에 대한 테스트 생성에 도움을 줄 수 있으며, 초기 테스트 클래스가 생성된 후 더 많은 테스트 사례를 추가하도록 제안합니다.

리팩터링

다른 패키지에서 Create function(함수 생성) 빠른 수정

빠른 수정을 사용하면 존재하지 않는 함수 이름을 입력한 다음 선택한 패키지에서 구현을 생성할 수 있습니다.

Extract Parameter(매개변수 추출) 리팩터링

2023.3 릴리스에는 많은 기대를 모으고 있는 Extract Parameter(매개변수 추출) 리팩터링의 첫 버전이 포함되어 있습니다. 확인되지 않은 참조에 대한 Create Parameter(매개변수 생성) 빠른 수정을 사용하면 확인되지 않은 참조를 선택하고 빠른 수정 옵션을 사용하여 매개변수를 생성할 수 있습니다. 또한 충분히 정확하지 않은 경우 타입을 변경하고, 디폴트 값을 제공하고, 이 값으로 호출을 변경할 수 있습니다.

Dev Container 베타

Dev Container 지원

이제 GoLand는 Dev Container를 지원하므로 컨테이너를 모든 기능을 갖춘 개발 환경으로 사용하여 프로젝트를 편집, 빌드 및 실행할 수 있습니다. Dev Container는 SSH 연결을 통해 원격으로 실행하거나 Docker를 사용하여 로컬로 실행할 수 있습니다.

Dev Container Features 지원

GoLand 2023.3은 Dev Container Features를 지원하여 개발에 필수적인 추가 도구, 런타임 및 라이브러리를 통합할 수 있는 편리하고 빠른 방법을 제공합니다.

Dev Container 내 Docker Compose 지원

또한 Dev Container 내에서 Docker Compose에 대한 지원을 도입하여 IDE가 있는 메인 컨테이너, 그리고 예를 들어 개발 과정에서 유용하게 사용되는 데이터베이스 또는 메시지 대기열이 있는 종속 컨테이너를 모두 원활하게 시작할 수 있습니다.

코드 접기 개선

한 줄 returnspanics

한 줄 returnspanics의 경우, 이제 원래 코드에 훨씬 더 가깝게 보이는 새로운 간결한 코드 접기 스타일을 사용할 수 있는 옵션이 제공됩니다.

새로운 접기 구문은 기본적으로 활성화됩니다.

case 절에도 비슷한 접근 방식이 사용되어 위쪽 화살표가 제거되고 이중 콜론만 접힙니다.

단일 return이 있는 함수

한 줄 returnpanic의 경우와 마찬가지로 단일 return 문이 사용된 함수에 대해 접기를 적용했습니다.

오류 처리

오류 처리 코드의 가독성을 높이기 위해 GoLand는 오류 처리 if 블록을 자동으로 접습니다.
오류 처리 코드가 있는 if 블록의 경우 GoLand는 예를 들어 로깅 호출이 포함된 모든 단일 구문도 접습니다.

string 서식 지정에 대한 코드 접기 비활성화

관련 구문이 더 잘 보이도록 string 서식 지정에 대한 코드 접기를 비활성화했습니다. 또한, 코드 접기에 대한 새로운 접근 방식을 사용하면 코드 블록을 확장하지 않고도 편집할 수 있습니다.

코드 완성

열거형에 대한 switch 생성

이제 GoLand는 열거형에 대한 switch 문 작성을 지원할 수 있습니다. 코드 완성에서 모든 값에 대한 case 생성을 제안합니다.

case에 iota를 사용하여 선언된 상수가 포함된 경우 브랜치 누락에 대한 경고

이 검사는 iota 상수에 대한 switch 식을 추적하는 데 도움을 줍니다. 검사에서 switch로 처리되지 않는 case에 대해 경고하고 누락된 절을 추가하거나 디폴트 절을 추가하는 두 가지 해결 방법을 제공합니다.

실행 및 빌드

프로그램에 대한 코드 커버리지 프로파일

이 기능을 사용하면 단일 또는 다중 실행에서 정확히 어떤 코드에 도달했는지 확인할 수 있습니다. 이는 불필요한 코드를 발견하는 데도 도움이 됩니다.
이 기능은 이전에 테스트 실행에만 작동했지만 이제 Coverage(커버리지)를 사용하여 main 함수도 실행할 수 있습니다.

Go 관련 기타 기능

slice 표현식에 대한 매개변수 힌트

Slice 식은 혼란스러울 수 있으며, 특히 색인이 3개 있는 표현식에서는 더욱 그렇습니다. 이제 슬라이스를 만드는 동안 GoLand가 힌트를 표시합니다.

사용자 지정 printf 유사 함수에 대한 코드 분석 기능

GoLand는 자리 표시자 강조 표시, 오류 감지, 코드 접기 등 표준 printf 유사 함수에 유용한 많은 기능을 제공합니다. 이제 이러한 모든 기능을 사용자 정의 printf 유사 함수에 사용할 수 있습니다.

데이터 흐름 분석

GoLand 2023.3에는 CLion에서 사용되는 엔진을 기반으로 개선된 데이터 흐름 분석기가 도입되었습니다. 이 기능은 잠재적인 nil 역참조, 부정확하거나 누락된 오류 처리, 항상 true/false 조건과 같은 코드 문제를 보다 광범위하게 감지합니다.

이 기능은 현재 얼리 액세스 단계에 있으며 기본적으로 비활성화되어 있습니다. Settings(설정) | Editor(에디터) | Inspections(검사) | Go | Data Flow Analysis (experimental)(데이터 흐름 분석, 실험적)에서 활성화할 수 있으며, 피드백도 제공할 수 있습니다!

asdf를 사용하여 로컬 Go 설치 지원

asdf는 여러 언어 런타임 버전을 관리할 수 있는 CLI 도구입니다. 커뮤니티의 피드백에 따라 최신 버전에 asdf 지원을 포함하기로 결정했습니다. 2023.3 릴리스에서는 GoLand가 .tool-versions 파일에서 Go 버전을 확인하고 선택한 프로젝트에 적합한 Go 버전을 사용하게 됩니다.

Go 1.21에 대한 상위 호환성 및 툴체인 관리

Go 1.21 이상에서는 더 최신 버전의 Go가 필요한 코드를 잘못 컴파일하지 않도록 더 많은 주의를 기울입니다. 특히, go.modgo 줄은 이제 필요한 최소한의 Go 툴체인 버전을 지정하지만, 이전 릴리스에서는 대부분 강제되지 않는 제안이었습니다.

이제 GoLand는 이 흐름을 완벽하게 지원하며 go 또는 toolchain 줄을 사용하여 go.mod 파일에 지정된 SDK 버전을 자동으로 다운로드합니다. 지정 버전은 Go project(Go 프로젝트) 설정에서도 자동으로 설정됩니다.

벤더링 지원 성능 개선

GoLand 2023.3은 최신 IntelliJ 플랫폼 API로 마이그레이션되었으므로, 프로젝트에 vendor 디렉터리가 포함된 경우 go list -m을 두 번 실행하지 않습니다. 캐시를 보다 효과적으로 활용하면 많은 Go 모듈이 포함된 프로젝트의 성능이 향상됩니다.

디버거

Run to Cursor(커서 위치까지 실행) 인레이 옵션

디버그하는 동안 특정 코드 줄로 빠르게 이동할 수 있는 새로운 Run to Cursor(커서 위치까지 실행) 인레이 옵션입니다. 프로그램이 일시 중지되면 실행을 계속하려는 코드 줄 위로 마우스를 가져가면 됩니다. 그런 다음 Run to Cursor(커서 위치까지 실행) 팝업을 사용하여 커서가 위치한 줄에 도달할 때까지 코드를 실행할 수 있습니다.

VCS

GitLab 스니펫 지원

GitLab 통합을 확장하여 GitLab 스니펫에 대한 지원을 추가했습니다. 이제 IDE 내에서 공개 또는 비공개 스니펫을 직접 생성할 수 있습니다.

Kubernetes

파일에서 클러스터 컨텍스트를 추가하는 옵션

이제 필요한 시스템 외부 디렉터리에 있는 클러스터에서 kubeconfig 컨텍스트를 쉽게 추가할 수 있습니다. 프로젝트에는 kubeconfig 파일에 대한 링크가 포함되어 프로젝트 작업 중에 이러한 클러스터를 사용할 수 있습니다. 이런 방식으로 추가된 kubeconfig 콘텐츠는 시스템(~/.kube/config)에서 복사되거나 수정되지 않습니다. 이 기능은 클라우드 또는 온프레미스 환경에서 Kubernetes 클러스터를 자주 추가하고 제거하는 경우에 특히 유용합니다. 자세히 알아보기

Kubernetes 도구 자동 설치

Kubernetes 플러그인 사용을 시작하면 kubectl 및/또는 Helm을 설치해야 할 수도 있습니다. 컴퓨터에 아직 해당 항목이 없으면 IDE에서 자동 설치를 제안합니다.

Telepresence를 이용한 디버그 개선

Telepresence를 사용하면 마치 워크스테이션이 클러스터의 일부인 것처럼 Kubernetes 애플리케이션의 마이크로서비스를 로컬에서 디버그할 수 있습니다. 이번 릴리스에서는 Telepresence 워크플로를 클러스터의 컨텍스트 메뉴로 이동하여 더 쉽게 접근할 수 있게 했습니다. 또한 보다 원활한 디버그 경험을 위해 인터셉트 관리도 간소화했습니다.

Terraform의 import 블록 지원

GoLand는 Terraform 구성 언어 버전 1.5의 최상위 import 블록을 지원합니다. import 블록을 사용하면 현재 인프라를 Terraform의 관리 범위로 가져올 수 있습니다. 코드 블록 내에서 import가 사용되면 이는 표준 plan 및 apply 단계의 일부가 되며 더 이상 상태 주기가 아닙니다. Terraform은 가져온 리소스에 대해 자동 코드 생성을 수행하여 코드형 인프라를 개발할 때 시간을 절약해 줍니다.

기타 업데이트

TypeScript 개선 사항

GoLand 2023.3은 import type 구문을 추가할 때 발생하는 일부 불일치 문제를 해결합니다. 타입을 가져올 때 TypeScript import type 구문 또는 타입 지정자의 사용을 구성하는 옵션을 추가했습니다. 또한 TypeScript 파일에 대한 package.jsonexports 필드 동작을 개선했습니다.

HTTP 클라이언트 개선 사항

대용량 .http 파일 내 탐색을 간소화하기 위해 Structure(구조) 뷰를 개선했습니다. 또한 이번 업데이트에는 요청 유형에 대한 색상 구분 라벨이 도입되어 해당 내용에 대한 보다 명확한 목록이 제공됩니다. 또한 @을 사용한 변수 선언과 OAuth 2.0 비밀번호 및 클라이언트 자격 증명 부여 유형을 사용한 인증에 대한 지원도 추가했습니다.

Cypress 및 Playwright 지원

GoLand는 Cypress 및 Playwright 테스트를 자동으로 감지하여 한 번의 마우스 클릭으로 실행하고 디버그할 수 있게 해줍니다. 이 지원에는 Test Tree(테스트 트리)를 탐색하여 결과를 살펴보고 문제를 찾는 기능도 포함됩니다.

올인원 Diff 뷰어

이 뷰어를 이용해 이제 코드 변경 사항을 보다 효과적으로 검토할 수 있습니다. 이제 각 파일을 하나씩 살펴보는 대신 스크롤 가능한 단일 프레임에서 변경 세트의 수정된 모든 파일을 볼 수 있습니다. 자세히 알아보기