GoLand 2023.2는 향상된 Go 모듈 통합 기능, 함수 매개변수를 메서드 리시버로 혹은 그 반대로 마이그레이션하기 위한 리팩터링, errors.Is
및 errors.As
지원 등을 제공합니다.
이 버전에서 새로운 AI Assistant 플러그인, GitLab 통합 기능 및 Kafka 플러그인도 지원됩니다.
Docker 통합 및 Kubernetes 플러그인 관련 개선 사항도 있습니다.
대화형으로 알아보고 싶으시다면 시작 화면에서 GoLand 2023.2의 새로운 기능 튜토리얼을 확인해보세요.
프로젝트를 열거나 go.mod
파일에 변경 사항이 적용된 경우, Go 모듈을 자동으로 다운로드하는 기능이 구현되었습니다. 이 기능은 기본적으로 활성화되어 있으나 Settings(설정) | Go | Go Modules(Go 모듈)에서 언제든 비활성화할 수 있습니다.
go.mod
종속성 업데이트를 위한 인텐션 액션 go.mod
파일의 종속성 업데이트를 위한 인텐션 액션 및 검사가 몇 가지 추가되었습니다.
이제 go.mod
파일을 열면 GoLand에서 오래된 종속성을 강조 표시합니다. 패키지의 강조 표시된 버전을 마우스로 가리키면 빠른 수정을 사용해 업데이트할 수 있습니다. 또한 모든 종속성을 최신 패치나 주요 버전으로 업데이트할 수 있으며, 직접 종속성만 업데이트하는 옵션도 제공됩니다.
프로젝트별로 벤더링을 비활성화할 수 있습니다(예: 다른 언어로 사용되는 벤더 폴더가 포함된 단일 저장소가 있는 경우). 새 프로젝트 생성 시 또는 Settings(설정) | Go | Go Modules(Go 모듈)에서 언제든 벤더링을 비활성화할 수 있습니다.
GoLand는 Migrate function parameter to method receiver(함수 매개변수를 메서드 리시버로 마이그레이션) 및 Migrate method receiver to function parameter(메서드 리시버를 함수 매개변수로 마이그레이션)라는 2가지 신규 리팩터링을 선보입니다.
Migrate function parameter to method receiver 리팩터링을 사용하면 함수를 타입 메서드로 변환할 수 있습니다. Migrate method receiver to function parameter 리팩터링을 사용하면 반대로 타입 메서드를 함수로 변환할 수 있습니다.
errors.Is
및 errors.As
지원 errors.Is
또는 errors.As
를 사용해야 하는 경우를 강조 표시하는 2가지 검사가 구현되었습니다. 또한 기존 코드를 errors.Is
또는 errors.As
로 리팩터링하는 빠른 수정도 도입되었습니다.
첫 번째 검사는 오류의 직접 비교를 강조 표시합니다. Go 1.13 이상 버전에서 fmt.Errorf
함수와 %w
동사를 함께 사용해 오류를 래핑할 수 있습니다. 래핑된 오류에 상등 검사를 사용해 직접 비교 시 실패할 수 있습니다.
특정 오류 검사를 위한 더 좋은 방식은 표준 라이브러리의 errors.Is
함수를 사용하는 것입니다. GoLand는 직접 오류 비교를 errors.Is
사용으로 전환하도록 제안하는 빠른 수정을 지원합니다.
두 번째 검사는 래핑된 오류에 사용 시 실패할 수 있는 err.(*MyErr)
또는 switch err.(type)
와 같은 오류에 대한 타입 어설션 및 타입 스위치를 강조 표시합니다.
Go 1.13 이상 버전에서는 errors.As
를 사용하는 것이 좋습니다. 새로운 빠른 수정은 오류에 대한 타입 어설션 및 타입 스위치를 errors.As
사용으로 변환하도록 제안합니다.
min
, max
, clear
지원min
, max
, clear
에 대한 기본적 지원을 제공합니다. make
개선 사항make
함수 인수 코드 완성 make
함수 호출 시 타입을 인식하는 코드 완성 기능이 추가되었습니다.
make
함수 인수 검사 이제 GoLand는 make
함수의 오류 및 불필요한 인수를 감지합니다. 또한 이전과 같이 Alt+Enter 키를 눌러 불필요한 인수를 제거할 수 있는 빠른 수정도 있습니다.
타입에서 바로 메서드를 호출할 경우 첫 번째 인수로 리시버 타입을 제공해야 합니다. 이 경우 GoLand는 코드 완성 제안의 첫 번째 인수로 리시버를 표시합니다.
타입 인스턴스화의 누락된 타입 인수에 대한 오류 메시지에 오류 내용이 명시적으로 표시됩니다.
Wrap error handling in a closure(오류 처리를 클로저로 래핑) 인텐션 액션 테스트 버전이 추가되었습니다. 이 미리보기 기능은 인텐션 액션 목록이 열린 상태에서 Ctrl+Q를 눌러 비활성화할 수 있으며, 이후 동일한 단축키를 사용해 다시 활성화할 때까지 비활성화된 상태로 유지됩니다.
for
루프 내 불필요한 조건 경고 GoLand는 for
루프 내 불필요한 조건에 대한 경고 메시지를 표시합니다. 또한 그러한 불필요한 조건을 제거하기 위한 빠른 수정도 있습니다.
이번 GoLand 릴리스에는 중요한 신규 기능인 AI Assistant가 추가되었습니다. 현재 AI Assistant에서 처음으로 선보이는 AI 기반 기능으로는 통합 AI 채팅, 문서 주석 자동 작성, 이름 제안, 커밋 메시지 생성 등이 있습니다.
AI Assistant는 JetBrains AI 서비스를 기반으로 제공됩니다. 이 서비스를 통해 현재 OpenAI에 연결할 수 있으며 향후 기타 언어 모델 제공업체도 추가될 예정입니다. AI Assistant의 AI 기능을 이용하려면 JetBrains AI 플러그인을 설치하고 JetBrains Account를 사용해 JetBrains AI 서비스에 로그인해야 합니다. 초기에 JetBrains AI 서비스 사용 가능 여부는 사람마다 다를 수 있습니다. AI Assistant에 대한 자세한 내용과 사용 방법은 이 페이지를 참조하세요.
이제 Services(서비스) 도구 창에서 Docker 이미지 레이어의 콘텐츠에 쉽게 액세스하고 미리볼 수 있습니다. 목록에서 이미지를 선택하고 Show layers(레이어 표시)를 선택한 후 Analyze image for more information(이미지를 분석하여 자세한 정보 확인)을 클릭하면, 레이어에 저장된 파일 목록이 열립니다. 파일을 마우스 오른쪽 버튼으로 클릭하고 Open File(파일 열기)(또는 바이너리의 경우 Download File(파일 다운로드))을 클릭해 에디터에서 선택한 파일을 간편하게 열 수 있습니다.
이제 Docker 실행 구성을 Before Launch(실행 전) 작업으로 지정해 다른 구성보다 먼저 실행되도록 설정할 수 있습니다. IDE는 현재 실행 중인 컨테이너가 정상 상태가 될 때까지 대기한 후 다음 실행 구성을 시작합니다. 대기열을 설정하려면, 필요한 Docker 실행 구성을 생성한 후 Modify options(옵션 수정) | Add before launch task(실행 전 작업 추가) | Run configuration(실행 구성)을 통해 컨테이너에 실행 구성을 추가합니다.
하나의 프로젝트에서 여러 kubeconfig 파일을 설정할 수 있는 새로운 기능이 도입되었습니다. 이 기능은 동일한 프로젝트에서 여러 클러스터를 처리하거나, 다른 클러스터에 있는 환경을 사용하는 경우 한층 간소화된 경험을 지원합니다. File(파일) | Settings(설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Kubernetes에서 파일을 설정할 수 있습니다.
이제 Services(서비스) 도구 창에서 Kubernetes 클러스터의 배포 로그를 볼 수 있습니다. 트리에서 Deployment(배포)를 마우스 오른쪽 버튼으로 클릭한 후 컨텍스트 메뉴의 Follow Log(로그 추적) 또는 Download Log(로그 다운로드)를 선택하면 됩니다.
이제 코드 청크 중 특정 부분을 선택해 커밋할 수 있습니다. 부분 커밋을 수행하려면 청크 내의 원하는 코드 줄을 선택하고 컨텍스트 메뉴에서 Include Selected Lines into Commit(선택한 줄을 커밋에 포함)을 호출합니다. 청크는 개별 줄로 나뉘고 선택한 줄이 강조 표시됩니다. 체크박스 또는 컨텍스트 메뉴를 사용해 선택한 부분에 코드 줄을 추가하거나 제외할 수 있습니다.
GoLand 2023.2에 GitLab 통합이 도입되어 개발 워크플로의 효율을 높여줍니다. Merge Request(병합 요청) 기능을 IDE에서 바로 사용해 요청 목록 검토, 변경 사항 확인, 코멘트 남기기, 관련 뷰로 이동 등의 작업을 수행할 수 있습니다.
새로운 Kafka 플러그인을 사용하면 Kafka 이벤트 스트리밍 프로세스를 모니터링할 수 있습니다. Kafka 클러스터에 연결, 다양한 서식의 메시지 생성 및 사용, 주제 관리, 소비자 그룹 모니터링, Confluent Schema Registry 및 AWS Glue Schema Registry 사용 등이 지원됩니다. 자세한 내용은 이 문서 페이지를 참조하세요.
VS Code 키맵에 익숙한 사용자는 시작 화면의 Customize(사용자 지정) 섹션에서 키맵을 선택할 수 있습니다. 또는 Settings(설정) | Keymap(키맵)에서 키맵을 변경할 수도 있습니다.
GoLand 2023.2는 수정 시간을 기준으로 Project(프로젝트) 뷰에서 파일을 정렬하는 옵션을 제공합니다. 이 새로운 기능은 프로젝트의 변경 사항이 저장될 때마다 자동으로 파일을 재정렬합니다. 이 기능을 사용하려면 Project 뷰에서 케밥 메뉴(세로 점 3개)를 열고 Tree Appearance(트리 모양) | Sort by Modification Time(수정 시간을 기준으로 정렬)을 선택하면 됩니다.
여러 실행 구성을 더 쉽게 관리할 수 있도록 Run(실행) 위젯에서 기본 구성을 고정하는 옵션을 구현했습니다. 실행 구성을 Pinned(고정) 섹션에 추가하려면 이름 옆에 있는 케밥 메뉴(세로 점 3개)를 열고 Pin(고정)을 선택합니다. 고정된 구성이 여러 개 있는 경우, 목록 내에서 끌어서 놓아 쉽게 재정렬할 수 있습니다.
새로운 UI 메인 툴바의 사용자 지정 옵션이 확장되었습니다. 이제 드롭다운 메뉴를 사용해 툴바에 추가할 액션을 빠르게 선택할 수 있습니다. 위젯을 마우스 오른쪽 버튼으로 클릭하고 Add to Main Toolbar(메인 툴바에 추가)를 선택한 다음 사용 가능한 옵션을 둘러보세요.
Windows 및 Linux의 새 UI에서 메인 툴바의 햄버거 메뉴의 동작을 개선했습니다. 메뉴 아이콘을 클릭하면 이제 요소가 툴바 위에 가로로 표시됩니다. 또한 View(뷰) | Appearance(모양) | Main menu as a Separate Toolbar(메인 메뉴를 별도의 툴바로 표시)를 통해 이 메뉴를 별도의 툴바로 전환하는 옵션도 있습니다.
Project(프로젝트) 뷰에 프로젝트 폴더를 더 빠르고 즉각적으로 확장 및 축소할 수 있는 새로운 Open Directories with Single Click(클릭 한 번으로 디렉터리 열기) 옵션이 있습니다. 케밥(세로 점 3개) 메뉴를 클릭하면 드롭다운 메뉴에서 이 옵션을 사용할 수 있습니다.
Search Everywhere(전체 검색)(Shift 두 번 누르기)는 파일, 메서드, 액션 및 설정을 검색하는 데 주로 사용됩니다. 이번 업데이트로 Find in Files(파일에서 찾기)와 유사한 텍스트 검색 기능이 제공됩니다. 이 기능을 사용하면 지정된 쿼리에 다른 검색 결과가 거의 또는 전혀 없을 때 텍스트 검색 결과가 표시됩니다. 이 기능은 기본적으로 활성화되어 있으며 Settings(설정) | Advanced Settings(고급 설정)에서 관리할 수 있습니다.
Settings(설정) | Editor(에디터) | Inspections(검사)의 코드 샘플에 구문 강조 표시 기능이 추가되어 검사를 트리거한 부분을 더 쉽게 이해하고, 활성화 또는 비활성화 여부를 결정할 수 있습니다.
특정 프로젝트에 대해 IDE를 보다 쉽게 구성하고 플러그인으로 기능을 확장할 수 있도록 Settings(설정) | Plugins(플러그인) 섹션의 UI를 업데이트했습니다. 프로젝트 특성에 따라 자동으로 정의되는 추천 플러그인이 목록 상단에 표시됩니다.
GoLand 2023.2에는 열려 있는 여러 프로젝트 사이를 쉽게 이동할 수 있도록 색상이 지정된 프로젝트 헤더가 도입되었습니다. 이제 각 프로젝트에 고유한 색상과 아이콘을 지정하여 작업공간에서 쉽게 구분할 수 있습니다.
기본적으로 헤더에 사전 정의된 색상이 제공되지만, 색상을 사용자 지정할 수 있습니다. 프로젝트에 새로운 색상을 지정하려면 헤더를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에 액세스합니다. Change Project Color(프로젝트 색상 변경) 옵션을 선택하고 원하는 색상을 선택합니다. 이 기능을 비활성화하려면 컨텍스트 메뉴에서 Show Project Gradient(프로젝트 그라데이션 표시) 옵션을 선택 해제하세요.
2023.2 버전에서는 창 헤더, 툴팁 및 알림 풍선에 그에 어울리는 밝은 색상을 제공하는 Light with Light Header(밝은 헤더가 있는 밝은 테마)라는 또 다른 옵션을 도입하여 Light(밝은) 테마의 사용자 경험을 개선했습니다.
Services(서비스) 도구 창의 실행 및 디버그 액션 UI를 개선해 메인 Run/Debug(실행/디버그) 위젯과 일치하는 툴바 디자인을 완성했습니다.
Linux 사용자의 편의를 위해 새 UI 적용 시 운영 체제의 기본 헤더가 제거되어 한층 깔끔한 인터페이스를 지원합니다. 이제 사용자 지정 IDE 헤더가 기본적으로 표시되며, 작업공간을 맞춤 설정할 수 있는 다양한 사용자 지정 옵션이 제공됩니다.
이제 HTTP 클라이언트에서 Swagger 및 OpenAPI 사양을 이해하고 JSON 요청을 위한 코드 완성 옵션을 제안할 수 있습니다.
이제 가져온 모듈을 통해 HTTP 클라이언트 요청 핸들러에 대한 공통 JavaScript 코드를 공유할 수도 있습니다.
GoLand는 HTTP 클라이언트의 요청 결과에서 PDF 및 HTML 파일의 미리보기를 바로 표시할 수 있습니다.
이제 HTTP 클라이언트에서 전송 계층 보안(TLS)을 사용하여 gRPC 요청을 전송할 수 있습니다. TLS는 암호화 및 인증을 제공하므로 데이터 전송 시 기밀성 및 무결성이 보장됩니다. 요청 구문에서 https://
및 grpcs://
스키마가 모두 지원됩니다.
GoLand 2023.2에서는 오류 및 경고가 이제 더 읽기 쉬운 형식으로 표시되어 코드에서 문제를 더 쉽게 찾을 수 있습니다. 이는 모든 TypeScript 오류와 가장 일반적인 일부 JavaScript 오류에 적용됩니다.
GoLand는 이제 CSS 중첩 모듈 기능을 지원합니다. 중첩된 선택자가 식별자 또는 함수 표기법으로 시작하지 않는지 확인하기 위해 구문 지원 및 검사를 구현했습니다.
'Norway problem'을 제거하고 YAML 파일에서 부울 값이 의도치 않게 잘못 해석되지 않도록 방지하는 새로운 검사가 도입되었습니다.
주로 문자열로 구성된 목록에 부울과 유사한 리터럴이 포함된 경우 GoLand는 해당 리터럴을 강조 표시해 잠재적 불일치를 알려주고 따옴표를 추가하도록 제안합니다. 목록이 대부분 부울과 유사한 리터럴(예: true, false, off, on, yes, no)로 구성된 경우 이 패턴과 다른 모든 리터럴은 잠재적 오류로 강조 표시되지만, 특정 빠른 수정은 제안되지 않습니다.
IDE는 Swagger Codegen 구성 설정 시 향상된 사용자 경험을 제공합니다. Edit Swagger Codegen Configuration(Swagger Codegen 구성 편집) 대화상자가 개선되어 사용자의 요구 사항에 따라 실행 구성을 간편하게 맞춤 설정할 수 있습니다.
또한 추가 설정을 지정하지 않아도 여백에서 바로 Swagger Codegen 실행 구성에 액세스할 수 있습니다.
GoLand는 YAML 및 JSON 파일을 비롯해 OpenAPI 및 Swagger 사양 파일을 위한 Redoc UI 테스트 버전을 지원하므로 IDE에서 Redoc UI 및 Swagger UI 간 전환이 가능합니다. Redocly 통합 기능을 활용하면 GoLand에서 바로 Try it 콘솔에 액세스하고, 이를 사용해 매개변수를 설정하고 API로 요청을 전송할 수 있습니다.
이제 GoLand에서 AsyncAPI 사양 서식을 훨씬 간편하게 사용할 수 있습니다. IDE는 스키마 유효성 검사 기능을 지원하며 참조, Endpoints(엔드포인트) 뷰 및 Editor Preview(에디터 미리보기) 패널에 코드 완성 기능을 제공합니다.
이번 릴리스에는 IDE의 코딩 지원에 특정 LSP 서버를 사용하려는 플러그인 개발자를 위한 LSP API가 도입되었습니다. 자체 프로그래밍 언어 또는 프레임워크를 제작한 경우 LSP 서버 및 플러그인을 만들어 IDE에서 지원받을 수 있습니다.