GoLand의 새로운 기능

GoLand 2022.2 버전은 제네릭go.work에 새로운 기능을 제공합니다. 또한 퍼즈 테스트도 지원합니다.

이제 SQL 구문이 자동으로 탐지되며, SQL 구문에 대한 포괄적인 코딩 지원도 제공됩니다.

GoLand에서 WebSocket 연결이 지원되므로 HTTP 및 WebSocket 프로토콜을 통해 GraphQL 쿼리를 전송할 수 있습니다.

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

제네릭

빈 인터페이스를 any로 변환하는 인텐션 액션

빈 인터페이스를 any로 변환하는 인텐션 액션

이제 GoLand는 빈 인터페이스의 사용 위치를 타입 또는 타입 제약 조건으로 보고하는 검사를 제공합니다.

또한 interface{}any로 바꾸는 인텐션 액션도 있습니다. 인텐션 액션 팝업에서 파일의 모든 빈 인터페이스를 바꿀 수 있습니다.

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

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

매개변수 목록이 비어 있는 타입 매개변수는 이제 오류로 보고됩니다. 이를 삭제하는 빠른 수정 기능이 추가되었습니다.

사용되지 않는 타입 매개변수 검사

사용되지 않는 타입 매개변수 검사

사용되지 않는 타입 매개변수를 보고하는 새로운 검사가 추가되었습니다. 이러한 타입 매개변수는 회색으로 표시되며, 마우스로 가리키면 경고가 표시됩니다.

메서드와 인터페이스 공용체 검사

메서드와 인터페이스 공용체 검사

이제 공용체에서 메서드가 있는 인터페이스를 사용하려는 경우 IDE에서 오류를 보고합니다.

제약 조건으로 사용된 타입 매개변수 검사

제약 조건으로 사용된 타입 매개변수 검사

타입 매개변수를 제약 조건으로 사용하려는 경우 GoLand가 오류를 표시합니다.

GoLand는 메서드가 생성되는 동안 타입 매개변수의 식별자를 자동으로 삽입합니다.

메서드 리시버 입력 시 타입 매개변수 코드 완성

GoLand는 사용자가 메서드가 생성하는 동안 리시버를 추가하면 타입 매개변수의 식별자를 자동으로 삽입합니다.

새로운 Find Usages(사용 위치 찾기) 그룹

타입 매개변수를 위한 새로운 Find Usages(사용 위치 찾기) 그룹

제네릭의 새로운 Find Usages(사용 위치 찾기) 그룹인 Type parameter declaration(타입 매개변수 선언)이 추가되었습니다.

퍼즈 테스트

GoLand에서 퍼즈 테스트 실행

퍼즈 테스트 실행

이제 GoLand에서 퍼즈 테스트를 실행할 수 있습니다. 퍼즈 테스트 옆 여백의 녹색 삼각형 아이콘을 클릭하면 다양한 테스트 실행 옵션이 표시됩니다. 테스트에 실패할 경우, 실패한 시드 코퍼스 항목이 파일에 작성되어 testdata 폴더의 패키지 디렉터리에 배치됩니다.

이 파일의 경로는 콘솔에도 클릭 가능한 링크로 표시됩니다. 해당 링크를 클릭하면 파일이 IDE에서 열리고 파일 상단에 녹색 삼각형 아이콘이 표시됩니다. 아이콘을 클릭하면 실패한 시드 코퍼스 항목으로 go test가 실행됩니다.

From GoLand you can also run fuzz tests just like normal unit tests.

Go SDK를 퍼징 지원 버전으로 변경하는 빠른 수정

Go SDK를 변경하는 빠른 수정

퍼징을 지원하지 않는 Go SDK가 구성되어 있으면 GoLand는 여백에 실행 버튼을 표시하지 않습니다. 현재 Go SDK가 퍼징을 지원하지 않는 경우 Go SDK를 변경할 수 있는 빠른 수정이 추가되었습니다.

Go 작업 공간

여러 use 지시문을 하나의 지시문으로 그룹 지정하는 빠른 수정

여러 use 지시문을 그룹으로 지정하는 빠른 수정

go.work 파일의 여러 use 지시문을 하나의 지시문으로 그룹 지정하는 빠른 수정이 추가되었습니다.

Go 1.19

Appendf의 서식 문자열 인수 추가

fmt.Appendf 지원

이제 fmt.Appendf가 지원되므로 GoLand는 문자열의 서식 지정 동사를 식별합니다. 결과적으로 Add a format string argument(서식 문자열 인수 추가) 인텐션 액션과 같은 서식 지정 함수용 기능이 Appendf 함수에도 모두 제공됩니다.

unix 빌드 제약 지원

이제 GoLand는 모든 Unix 또는 Unix 계열 시스템을 인식하는 unix 빌드 태그를 새롭게 지원합니다.

Arch 목록에 loong64 추가

Go 1.19 버전에는 새로운 아키텍처인 loong64Settings(설정) | Go | Build Tags & Vendoring(빌드 태그 및 벤더링)Arch에 추가되었습니다.

Quick Documentation(빠른 문서)

Quick Documentation(빠른 문서)이 개선되었습니다.

  • 이제 GoLand는 25개의 Go 키워드 각각에 대해 유의미한 키워드 툴팁을 표시하여 관련 키워드의 의미를 설명합니다.
  • 채널 방향 정보가 표시됩니다. chan 키워드를 마우스로 가리킨 경우, 채널 전송 및 수신 작업 시, 채널 타입에 대한 모든 참조 시 표시되는 3가지 툴팁에서 이 데이터를 확인할 수 있습니다.
  • iota에 관한 Quick Documentation(빠른 문서)에서는 사용 방법을 추가로 안내합니다. 상수가 iota 그룹의 일부인 경우, 묵시적으로 정의되었더라도 상수 값이 코드 완성 상자에 표시됩니다.
  • 타입 스위치의 작동 방식을 설명하는 새로운 툴팁도 있습니다.
 
  • 타입 매개변수에서 Quick Documentation(빠른 문서)을 호출하면 툴팁, 제네릭 작동 방식에 대한 간략한 설명, Go 팀의 튜토리얼 링크가 함께 표시됩니다.
  • 이제 타입 어설션 툴팁에서 추가 정보 및 예시가 지원됩니다.
  • GoLand에서 중괄호 내부 영역을 마우스로 가리키면 맵, 배열, 슬라이스 및 구조체 초기화 시 추가 정보가 표시됩니다.
  • 빈 식별자를 마우스로 가리키면 툴팁에 빈 식별자가 무엇인지, 어떻게 작동하는지에 대한 정보가 제공됩니다.

Go 관련 기타 개선 사항

성능 최적화

GoLand는 ~/go/pkg/modcache 하위 디렉터리를 스캔하지 않습니다. 해당 디렉터리에 IDE가 올바르게 작동하기 위해 필요한 정보가 없기 때문입니다. 용량이 꽤 클 수 있는 이 폴더를 스캔에서 제외하면 성능이 향상됩니다.

go:linkname 지시문 지원

다음 go:linkname 컴파일러 지시문이 추가로 지원됩니다.

//go:linkname localname [importpath.name]

이 지시문은 소스 코드에 localname으로 선언된 변수 또는 함수에 대한 객체 파일 심볼 이름으로 importpath.name을 사용하도록 컴파일러에 지시합니다.

iota의 비정상적 사용 위치 검사

iota의 비정상적 사용 위치 검사

GoLand는 iota가 비정상적으로 사용된 경우 경고하는 새로운 검사를 제공합니다.

iota라는 상수에 값을 대입하려는 시도에 대한 경고

또한 iota 및 기타 기본 제공 상수에 Reserved word used as name(이름으로 사용되는 예약 단어) 검사도 사용할 수 있습니다. 이름이 iota, true 또는 false 등인 상수에 값을 대입하려는 경우 검사가 트리거됩니다.

값과 포인터 리시버 모두에 대한 메서드가 있는 타입 경고

값과 포인터 리시버 모두에 대한 메서드 경고

Go 문서의 권장 사항에 따르면 지정된 타입의 모든 메서드에 값 또는 포인터 리시버가 있어야 합니다.

GoLand는 타입의 값 및 포인터 리시버 모두에 메서드가 있는 경우 경고하는 새로운 검사를 제공합니다.

SQL 자동 탐지

GoLand는 SQL 문을 탐지합니다.

이제 SQL 문이 자동으로 탐지되고 특정 패턴과 일치하는 모든 문자열 리터럴에 해당 언어가 삽입됩니다. 문자열 리터럴에 언어를 삽입하면 리터럴 편집 시 포괄적인 코딩 지원이 제공됩니다.

패턴 편집 설정

Settings(설정) | Editor(에디터) | Language Injections(언어 삽입)에서 패턴을 찾고, 편집하고 추가할 수 있습니다.

Run Anything(무엇이든 실행)

Run Anything(무엇이든 실행) 액션

이제 GoLand에서 Run Anything(무엇이든 실행) 액션이 지원되므로 실행/디버그 구성, 애플리케이션, 스크립트, 명령어 및 작업을 빠르게 시작하고 최근 프로젝트를 열 수 있습니다. 이 액션을 사용하려면 Ctrl 키를 두 번 누르고 검색창에 입력을 시작하세요.

HTTP 클라이언트

WebSocket 연결을 통해 메시지 전송

WebSocket 엔드포인트 지원

이제 GoLand는 WebSocket 연결을 지원하여, 요청을 생성하거나 메시지를 주고받을 수 있습니다.

GraphQL 쿼리 전송

GraphQL 엔드포인트 지원

GoLand는 별도의 설정 없이 HTTP 및 WebSocket 프로토콜을 통해 GraphQL 쿼리를 전송할 수 있습니다. http://https://의 경우 간단한 HTTP 요청이 사용되고, ws://wss://는 WebSocket 실행기에 위임됩니다.

HTTP 클라이언트의 실행 환경 선택

실행 환경 선택

이제 여백의 재생 아이콘에서 실행 환경을 선택할 수 있습니다. 이 기능을 사용하려면 Run with(다음으로 실행) 콤보박스에서 Select Environment Before Run(실행 전 환경 선택) 옵션을 선택하세요.

원격 개발

GoLand 시작 화면의 Remote Development(원격 개발) 섹션

GoLand 시작 화면의 Remote Development(원격 개발) 섹션이 업데이트되었습니다. 해당 섹션에서 백엔드 오케스트레이션을 위해 선호하는 메서드를 선택할 수 있습니다. 또한 이제 터미널에서 실행 중인 프로세스에 포트 포워딩 기능이 지원됩니다.

블로그 게시물에서 새로운 원격 개발 기능을 자세히 살펴보세요.

Space

GoLand와 번들로 제공되는 Space 통합 기능

JetBrains Space는 개발 환경을 통해 JetBrains IDE의 프로젝트 관리, 이슈 추적, Git 호스팅, 코드 검토, 지속적 통합, 패키지 저장소 및 원격 백엔드 오케스트레이션을 제공하는 완벽한 소프트웨어 개발 플랫폼입니다.

이제 Space 통합 기능이 GoLand에서 번들로 제공됩니다. With this first-class integration, you can browse Space projects and clone repositories, then start working on them directly. 변경 사항이 준비되면 병합 요청을 생성하고 IDE에서 코드 검토를 수행하세요.

이제 GoLand에서 바로 원격 개발을 위한 Space 개발 환경을 관리할 수 있습니다.

이제 GoLand에서 바로 원격 개발을 위한 Space 개발 환경을 관리할 수 있습니다.

IDE가 Space 조직에 연결되면 기존의 모든 개발 환경이 동기화됩니다. 저장소와 브랜치를 위한 새로운 개발 환경을 생성하여 즉시 코딩을 시작할 수 있습니다. 개발 환경을 수면 모드로 전환하여 리소스 소비량을 줄이거나, 작업이 완료 시 개발 환경을 간편하게 삭제할 수 있습니다.

사용자 인터페이스

프로젝트 창 병합

Merge All Project Windows(모든 프로젝트 창 병합) 액션(macOS)

macOS를 사용하는 경우 열려 있는 모든 프로젝트 창을 단일 창의 탭으로 전환하여 병합하는 기능이 도입되었습니다. 이 기능을 사용하려면 Window(창) | Merge All Project Windows(모든 프로젝트 창 병합)로 이동하세요.

단축키로 글꼴 크기 변경

글꼴 크기 변경을 위한 단축키

에디터에서 글꼴 크기를 변경하는 키보드 단축키를 도입했습니다. Alt+Shift+.를 눌러 글꼴 크기를 확대하고, Alt+Shift+,를 눌러 축소할 수 있습니다.

에디터에서 코드를 확대 또는 축소할 경우 현재 글꼴 크기 및 글꼴 크기를 디폴트 값으로 되돌리는 옵션이 표시됩니다.

연상 기호 북마크 Description(설명) 필드 사용

연상 기호 북마크를 위한 새로운 Description(설명) 필드

Add Mnemonic Bookmark(연상 기호 북마크 추가) 대화상자에 Description(설명) 필드가 통합되어 원하는 경우 북마크에 설명을 추가할 수 있습니다. 연상 기호 북마크를 추가하려면 북마크할 줄 옆의 여백을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 해당 옵션을 선택하세요. 단축키 Ctrl+F11도 사용 가능합니다.

시작 화면

Cloning repository(저장소를 복제하는 중) 진행률 표시줄

이제 Cloning repository(저장소를 복제하는 중) 진행률 표시줄이 Projects(프로젝트) 목록에 바로 표시됩니다.

코드 완성 설정 액세스를 제공하는 팝업

Сode Сompletion Settings(코드 완성 설정)에 빠른 액세스

코드 완성 팝업에 생략 부호가 세로로 표시된 메뉴 버튼을 통해 Code Completion Settings(코드 완성 설정)에 액세스할 수 있습니다.

에디터

코드 완성 설정

자동 괄호 삽입 관리

코드 완성 적용 시 IDE가 자동으로 괄호를 삽입하는 옵션의 사용 여부를 설정할 수 있습니다.

오른쪽 하단에 Highlighting in editor(에디터 내 새로운 강조 표시) 드롭다운 메뉴가 있는 설정 창

검사의 강조 표시 스타일 변경

Settings(설정) | Editor(에디터) | Inspections(검사)에서 새로운 드롭다운 메뉴인 Highlighting in editor(에디터 내 강조 표시)를 사용하여 검사의 강조 표시 스타일을 변경할 수 있습니다.

해당 메뉴에서는 검사를 사용자 정의할 수 있는 다른 옵션도 제공합니다. 예를 들어, 특정 검사의 심각도 수준을 Warning(경고)으로 설정하되 강조 표시 스타일은 Error(오류)로 변경할 수 있습니다.

Docker

Copy Docker Image(Docker 이미지 복사) 액션

Copy Docker Image(Docker 이미지 복사)

새로운 Copy Docker Image(Docker 이미지 복사) 액션을 사용하면 Docker 데몬에서 다른 데몬으로 이미지를 복사할 수 있습니다. 이 액션은 이미지를 파일에 저장한 후 선택한 연결로 푸시합니다.

IDE 재시작 시 Docker 자동 연결

IDE를 다시 시작하면 GoLand가 Docker에 자동으로 연결됩니다. 이 새로운 설정은 Settings(설정) | Advanced Settings(고급 설정) | Docker에서 기본 설정으로 제공됩니다.

Colima 및 Rancher 통합

GoLand는 이제 Colima 및 Rancher와 통합되어 Docker 데몬 연결을 설정할 수 있는 추가 옵션을 지원합니다.

데이터베이스

여러 CSV 파일 가져오기

여러 CSV 파일 가져오기 옵션

이제 여러 CSV 파일을 선택하여 한 번에 모두 가져올 수 있습니다.

Script(스크립트) 및 Playground(플레이그라운드) 해결 모드

데이터베이스 해결 모드

데이터베이스를 사용할 경우 2가지 파일 해결 모드(Playground(플레이그라운드)Script(스크립트))가 제공됩니다.

Playground(플레이그라운드)는 연결되지 않은 쿼리 집합이 있는 경우에 적합하며 Script(스크립트)는 순차 논리가 있는 쿼리에 적합합니다.

기타 개선 사항

신뢰할 수 있는 SSL 인증서 가져오기

GoLand는 시스템에서 신뢰하는 스토어로부터 신뢰할 수 있는 SSL 인증서를 가져올 수 있습니다. 엔터프라이즈 환경에 따라 사용자 지정 인증서가 자동으로 사용되며, 추가 작업을 수행할 필요가 없습니다. 모두 별도의 설정 없이 사용 가능합니다.

JSON 및 YAML 파일의 클릭 가능한 URL

JSON 및 YAML 파일은 이제 http://https://로 시작하는 값에 자동으로 삽입된 웹 참조 기능을 제공합니다. 웹 브라우저에서 해당 링크를 열고 HTTP 클라이언트에서 요청을 생성할 수 있습니다.