GoLand 2024.1의 새로운 기능

GoLand 2024.1에는 몇 가지 중요한 추가 기능이 포함되었습니다.

  • 전체 줄 코드 완성 기능이 구현되었습니다. 이제 모든 GoLand 사용자가 로컬에서 실행되는 LLM 기반 AI 완성 기능을 무료로 사용할 수 있습니다.
  • 색인 생성 및 강조 표시 성능이 크게 향상되었습니다.
  • 코드 완성 및 문서 생성을 위한 추가 옵션을 포함하여 AI Assistant 기능을 개선하고 업그레이드했습니다.
  • Dev containers에 대한 지원이 얼리 액세스 단계를 마쳤으며 이번 버전에서 몇 가지 흥미로운 새 기능을 제공합니다.
  • Go 1.22 업데이트에 대한 지원이 추가되었습니다.

새 버전에는 다양한 UX 및 내부 도구 개선 사항도 함께 제공됩니다. 지금부터 자세히 살펴보겠습니다!

전체 줄 코드 완성

GoLand 2024.1에는 로컬에서 실행되는 컨텍스트 인식 딥 러닝 모델을 사용하여 전체 코드 줄을 자동 완성하는 새로운 기능인 전체 줄 코드 완성 기능이 도입되었습니다. 이 기능은 외부 서버로 데이터를 보내지 않고 기기에서 로컬로 작업하면서 코딩 속도와 효율성을 향상하는 데 도움이 됩니다. 이 기능은 모든 GoLand 2024.1 사용자에게 번들로 제공되어 AI를 경험해볼 수 있습니다. 흥미가 있으신가요? 관련 블로그 글에서 자세히 알아보세요!

Settings(설정) | Editor(에디터) | General(일반) | Code Completion(코드 완성) | Machine Learning-Assisted Completion(머신러닝 지원 코드 완성)에서 이 기능을 제어하고 전체 줄 제안을 받고 싶은 언어를 지정할 수 있습니다.

성능 개선 사항

향상된 색인 생성 성능

GoLand에서 색인 생성 속도가 크게 빨라졌으며, 속도가 평균 약 30% 향상되는 것으로 관찰되었습니다. 물론, 프로젝트 및 하드웨어의 세부적 조건에 따라 사용자마다 실제 결과는 달라질 수 있습니다. 결과가 어떻게 나오는지 자유롭게 공유해 주세요! Gin 프레임워크를 사용한 색인 생성 결과를 다음의 이미지에서 확인해보세요.

색인을 생성하는 동안 강조 표시 추가

이 개선 사항을 통해 이제 IDE를 시작하면 바로 참조에 대한 강조 표시가 작동합니다! 백문이 불여일견이니 이 두 가지 예를 직접 살펴보시기 바랍니다.

AI Assistant

JetBrains는 더욱 가치 있는 기능과 작업을 제공하기 위해 AI Assistant를 지속적으로 발전시키고 있습니다. 이번 릴리스에서는 GoLand의 기존 AI 기능이 두 부분에서 향상되었습니다. 한 번 사용해 보세요!

구조체 및 인터페이스에 대한 클라우드 기반 완성

2023.3에서는 함수 및 메서드 블록에 인라인 완성 기능이 도입되었습니다. 2024.1에서는 구조체와 인터페이스 선언에도 이 기능이 사용됩니다. 타입 선언 내에서 제안을 제공할 때 코드 완성 기능은 상위 구조 및 참조와 함께 사용 위치에 대한 컨텍스트를 고려합니다. 이를 통해 AI 기반 제안의 관련성이 향상됩니다.

구조 필드 및 인터페이스 메서드에 대한 문서 생성

GoLand는 이제 전체 타입, 인터페이스 메서드 및 구조체 필드에 대한 문서를 생성합니다. 문서를 생성하려면 필드 정의의 임의의 위치에 캐럿을 놓은 다음, Write Documentation(문서 작성) AI 액션을 선택하면 됩니다. 또는 필드 정의 앞에 //를 입력해도 제안이 실행됩니다.

이제 사용자는 커밋 메시지 생성과 같은 특정 AI 작업에 대한 프롬프트를 사용자 지정할 수 있습니다. 이를 통해 보다 개별화되고 맞춤화된 결과를 얻을 수 있습니다.

2024.1 버전부터 AI 채팅에서 생성된 코드 스니펫이 포함된 파일을 내보낼 수 있습니다. 채팅에서 질문을 할 때 추가적인 컨텍스트를 제공하기 위해 파일을 첨부할 수도 있습니다.

원격 개발

이 IDE의 2024.1 버전에서는 개선된 원격 개발 환경을 제공합니다. 강조 표시, 렌더링 및 원격 개발의 전반적인 원활함이 이제 로컬로 프로그래밍하는 느낌에 가깝습니다. 클라우드에서도 강조 표시와 코드 완성이 로컬 코드 베이스의 경우와 근접하게 빨라진 것을 직접 확인할 수 있습니다.

또한 사용자는 이제 IDE 클라이언트에서 직접 원격 프로젝트를 관리할 수 있을 뿐만 아니라 새 원격 프로젝트를 생성하거나 기존 프로젝트를 열 수도 있습니다.

Dev Containers

이제 사용자는 시작 화면(로컬 디스크 또는 VCS)에서 Dev container를 실행할 수 있습니다. 이전에는 먼저 프로젝트를 열어야 했습니다.

이제 Dev containers에는 널리 사용되는 모든 프로그래밍 언어에 대한 파일 템플릿이 제공됩니다.

사용자가 devcontainer.json 파일에서 직접 JetBrains 백엔드 IDE(예: GoLand 또는 CLion)를 구성할 수 있는 설정이 추가되었습니다.

GoLand 버전 2024.1에서는 devcontainer.json 파일이 프로젝트 내 어디에 저장되어 있든 인식됩니다. 이전에는 ~/.devcontainer 폴더에 저장되어 있어야 했습니다.

Go 1.22 업데이트에 대한 지원

Go 언어가 지속적으로 발전하는 데 보조를 맞추어 JetBrains는 모든 새로운 언어 기능을 가능한 빠르게 지원하려고 노력하고 있습니다.

정수 및 함수에 대한 range 지원

Go 1.22에서는 기존 for 루프를 사용하는 것보다 더 간결하게 정수와 함수를 쉽게 반복 처리할 수 있는 기능을 제공합니다.

Go 작업 공간에 대한 벤더링 지원

벤더링을 사용하면 프로젝트 저장소에 종속성을 저장할 수 있으므로 프로젝트에 사용되는 종속성을 더 효과적으로 제어할 수 있습니다. Go 1.22에서는 작업 공간의 명령어가 작업 공간의 종속성을 포함하는 vendor 디렉터리를 사용할 수 있으며, GoLand에서 이제 이러한 개선 사항을 지원합니다.

데이터 흐름 분석(DFA) 업데이트

데이터 흐름 분석은 GoLand 2023.3에 도입되었으며, 2024.1에서는 이 기능이 충분히 개선되어 기본적으로 활성화되어 있습니다. GoLand의 DFA는 현재 Constant conditions detection(상수 조건 탐지), Potential nil dereference(잠재적인 nil 역참조), Error may not nil(오류가 nil이 아닐 수 있음)의 세 가지 검사를 지원합니다. 관련 블로그 글에서 이러한 개발 내용에 대해 자세히 알아보세요.

Terraform 지원 개선

개발자, 사이트 안정성 엔지니어(SRE) 및 DevOps 전문가를 염두에 두고 Terraform을 통한 코드형 인프라 개발(Infrastructure-as-Code Development)에 대한 지원을 대폭 개선했습니다. 이 업데이트에는 인프라 생성, 관리 및 확장 프로세스를 단순화하는 여러 가지 새로운 기능과 개선 사항이 포함되어 있습니다.

terraform init 실행 제안

Terraform 코드 파일로 작업 디렉터리를 초기화하려면 먼저 terraform init을 실행해야 합니다. 이를 종종 간과하는 경우가 생기고, 이로 인해 Terraform 자체의 오류 메시지는 물론 불완전한 코드 자동 완성과 문서의 일부만 표시되는 문제로 이어집니다. 이를 방지하기 위해 이제 IDE에서 terraform init 실행을 명시적으로 제안합니다.

Terraform Registry의 타사 제공자 지원

이제 Terraform 플러그인이 3,900개 이상의 타사 Terraform 제공자에 대한 확장된 코드 완성 기능을 제공하므로 개발자가 효율적으로 코드를 작성하기가 보다 쉬워졌습니다. 또한 IDE 내에서 직접 특정 버전과 함께 이러한 각 제공자에 대한 최신 문서를 찾을 수 있습니다.

이를 통해 IDE를 나가지 않고도 새로운 Terraform 제공자를 살펴보고 해당 제공자가 무엇을 제공할 수 있는지 더 빠르게 알아볼 수 있습니다.

Terraform 템플릿 언어(tftpl) 지원

Terraform의 템플릿 언어(tftpl)에 대한 지원을 공개하게 되어 매우 기쁩니다. 이를 통해 구성 파일, 스크립트, 또는 웹 서버, 네트워크 또는 서비스 구성과 같은 프로그램 코드로 워크플로를 향상할 수 있습니다. 템플릿 처리가 더욱 쉬워졌습니다! 이제 런타임 시 템플릿 내에서 값을 동적으로 입력하여 특정 용도에 맞게 템플릿을 렌더링하는 프로세스를 간소화할 수 있습니다.

Terraform의 템플릿 언어는 가변 템플릿 및 제어 흐름 요소를 지원할 뿐만 아니라 JSON 및 YAML 형식을 생성하는 기능과 함께 목록 및 맵도 포괄합니다.

UX 및 기타 기능

새로운 터미널

GoLand 2024.1에는 시각적 및 기능적 향상을 모두 통합하여 터미널 기반 작업을 더욱 간단하고 편리하게 만들어주는 새롭게 개선된 터미널이 제공됩니다. 이 터미널에서는 쉽게 정리된 기록과 블록 간 간편한 탐색, 사용 가능한 모든 명령에 대한 팁을 제공합니다.

새로운 Terminal(터미널) 도구 창은 새 UI와 원활하게 통합되어 IDE의 새로운 디자인과 조화를 이루고 명령어, 경로, 인수 및 옵션을 지원하는 명령어 완성 기능도 제공합니다. 자세한 내용은 관련 블로그 글을 참조하세요.

전체 IDE 축소 옵션

GoLand 2024.1에서는 전체 IDE를 축소하는 옵션을 제공합니다. 처음에는 크기 조정 범위에 100%에서 200% 사이로 확대하는 옵션만 있었습니다. 현재 버전에서는 IDE를 90%, 80% 또는 70%로 축소할 수도 있습니다.

에디터 내 고정된 줄

대용량 파일 작업과 새로운 코드 베이스 탐색을 단순화하기 위해 에디터에 고정된 줄을 도입했습니다. 이 기능은 스크롤할 때 클래스나 메서드의 시작 부분과 같은 주요 구조적 요소를 에디터 상단에 고정합니다. 이렇게 하면 범위가 항상 표시된 상태로 유지되고 고정된 줄을 클릭하여 코드를 즉시 탐색할 수 있습니다.

VCS 업데이트

에디터 내 코드 검토

이제 GoLand에 GitHub 및 GitLab 사용자 모두를 위해 더욱 간편하고 민첩한 코드 검토 워크플로가 제공됩니다. 새로운 검토 모드가 추가되어 이제 작성자와 검토자가 에디터 내에서 직접 원활하게 상호 작용할 수 있습니다. 자세히 알아보기

Git 도구 창의 CI 검사 상태

CI 시스템에서 수행한 GitHub 커밋 검사 결과를 쉽게 검토할 수 있도록 Git 도구 창의 Log(로그) 탭에 새 열을 도입했습니다. CI 검사의 전체 세부 사항을 보려면 해당 탭을 클릭하기만 하면 됩니다.

보류 중인 GitHub 업데이트에 대한 시각적 표시기

코드 검토 워크플로 내에서 보류 중인 업데이트를 인식시켜주는 시각적 표시기를 도입했습니다. 주의가 필요한 변경 사항이 있는 경우, 도구 창 아이콘에 파란색 점 배지가 나타납니다. 또한, 보이지 않는 풀 리퀘스트는 파란색 점으로 표시되어 코드 검토 과정에서 업데이트를 누락하는 실수를 방지해 줍니다.

웹 및 데이터베이스 개선 사항

GoLand는 WebStorm 및 DataGrip IDE의 업데이트를 이어받습니다. 웹 개발이나 데이터베이스 작업을 위한 업데이트와 기능에 관심이 있으신가요? 모두 확인해 보세요!