IntelliJ IDEA 2020.2의 새로운 기능

IntelliJ IDEA 2020.2를 사용하면 IDE 내에서 바로 GitHub pull 요청을 검토 및 병합하고, Inspections(검사) 위젯을 통해 파일내 경고와 오류 사이를 빠르게 탐색하고, Problems(문제) 도구 창에서 현재 파일의 전체 이슈 목록을 확인할 수 있으며, 변경한 내용이 다른 파일에서 문제를 일으키는 경우 알림을 받을 수 있습니다. Jakarta EE를 사용할 수 있고 향상된 Quarkus, Micronaut, OpenAPI 지원을 이용할 수 있습니다.

Java

Java 15 지원

Java 15 지원

Java 15는 9월에 출시될 예정이지만 IntelliJ IDEA 2020.2는 이미 이에 대한 준비를 마쳤습니다. Records(기록) 기능의 지원이 업데이트 되었으며 이제 그 두 번째 테스트 버전을 선보입니다. 또한 sealed 클래스에 대한 기본 지원도 추가되었습니다. 물론 IntelliJ IDEA에서 텍스트 블록도 완벽하게 지원합니다.

Jakarta EE 마법사

관련 문제에 대한 인레이 힌트

외부 사용 위치가 있는 클래스, 메서드 또는 필드의 시그니처를 변경하여 오류가 발생하면 IDE에서 인레이 힌트로 알려줍니다. 관련 문제에 대한 인레이 힌트를 클릭하면 IDE가 Find(검색) 도구 창을 열어 외부 파일에서 발생하는 모든 관련 문제 목록을 표시합니다.

Scala 3 지원

여러 구조 검색 및 바꾸기 검사를 생성

IDE를 사용하면 Structural Search and Replace(구조 검색 및 바꾸기)를 사용하여 특정 패턴과 일치하는 코드 블록을 찾아서 필요한 경우 교체할 수 있습니다. IntelliJ IDEA 2020.2에서는 여러 구조 검색 템플릿을 검사로 만들 수 있습니다. 각 SSR 검사에 대해 심각도 수준을 지정하고 설명을 추가하여 개별적으로 활성화 또는 비활성화할 수 있습니다.

Scala 3 지원

런타임 예외의 정확한 원인 파악

예외 스택 추적 분석이 데이터 흐름 분석으로 보완되었습니다. 스택 추적을 클릭하면 IDE가 코드에서 예외가 나타나는 정확한 위치를 사용자에게 알려주며 예외가 발생한 이유를 찾는 데 도움이 되는 제안을 제안합니다.

Scala 3 지원

Stream API 메서드에 대한 자동 완성 기능 향상

IntelliJ IDEA 2020.2는 Stream API와 더 원활하게 작동합니다. 'stream()'을 입력한 다음 스트림에 올바른 작업을 입력할 필요 없이 컬렉션 자체 내에 스트림 메서드 이름을 입력하기 시작하면 IntelliJ IDEA가 'stream()'을 자동으로 삽입합니다. 이는 모든 스트림 작업에 적용됩니다.

Scala 3 지원

변수 삽입 범위

IntelliJ IDEA 2020.2를 사용하면 Introduce Variable(변수 삽입) 리팩터링이 변수의 사용 위치를 중간 범위에서 선택적으로 교체할 수 있습니다. 이제 하나만 또는 모든 항목을 선택하도록 제한받지 않고 다양한 교체 옵션을 선택할 수 있습니다. 각 선택 항목을 마우스로 가리키면 에디터에서 새 변수로 교체할 호출을 강조 표시합니다.

Java 라이브 템플릿 정리

Java 라이브 템플릿 정리

이제 새 Java 노드에는 plain, surround, other, output, iterations 그룹이 모두 포함되므로 Java 관련 템플릿을 검색할 필요가 없습니다. 필요에 맞는 라이브 템플릿을 검색할 때 헤매지 않아도 됩니다. 별도의 Groovy 노드도 사용할 수 있습니다.

에디터

Problems 뷰

Problems 도구 창

Problems(문제) 도구 창이 추가되었으며 여기에 현재 파일과 관련된 경고 및 오류가 이슈 설명과 함께 표시됩니다. 이 도구 창에서 문제를 마우스 오른쪽 단추로 클릭하여 문제가 발생한 코드 줄을 탐색하고 Alt+Enter를 눌러 하나씩 문제를 해결할 수 있습니다.

에디터 Inspections 위젯

Inspections 위젯

Inspections(검사) 위젯은 경고, 오류 및 기타 이슈의 검색을 간소화하며 F2 키를 누르거나 화살표 아이콘을 클릭하면 문제를 쉽게 탐색할 수 있습니다. Inspections 위젯에서 강조 표시하려는 문제를 none(선택 안 함), errors only(오류만), all problems(모든 문제) 중에서 선택할 수 있습니다.

인텐션 미리보기

인텐션 미리보기

인텐션 액션을 적용한 후의 가능한 결과를 테스트하기 위해 실제로 코드에 적용하기 전에 결과를 미리 볼 수 있습니다. Alt+Enter를 눌러 Show Context Actions(컨텍스트 액션 표시)를 호출한 다음 필요한 인텐션 액션을 선택하고 macOS인 경우 Alt+Space, Windows 및 Linux인 경우 Ctrl+Shift+I를 눌러 결과 미리보기를 표시하세요.

향상된 철자 검사기

기본 철자 검사기가 향상되었습니다. 훨씬 빠르게 작동하고 관련 없는 제안을 필터링하며 컨텍스트에 따라 올바른 제안의 순위를 매깁니다. 또한 IDE가 파일의 첫 두 단락을 보고 언어를 탐지하여 해당 언어 모델을 활성화할 것을 제안합니다.

버전 관리

완벽한 GitHub pull 요청 지원

이제 열려 있는 pull 요청의 세부 정보를 별도의 수직 도구 창에서 한 번의 클릭으로 확인할 수 있습니다. 기본 에디터 창에 대화가 표시되며 코멘트를 바로 추가할 수 있습니다. 커밋 전 검사 결과는 창 맨 아래에 표시됩니다. pull 요청을 관리할 수 있는 권한이 있으면 IDE 내에서 바로 요청을 탐색, 할당, 관리, 병합하고 코멘트를 확인한 후 제출하고 변경 내용을 수락할 수 있습니다.

블로그에서 자세히 알아보기

향상된 Git 액션 대화상자

이번 릴리스에서는 Merge(병합), Pull(풀), Rebase(리베이스) 대화상자의 시각적 일관성을 수정했습니다. 또한 실행될 Git 명령어를 대화상자가 명확하게 식별하도록 개선하였으며 누락된 일부 옵션을 포함시켰습니다. Pull 및 Merge 대화상자에는 각각 --rebase--no-verify를 추가했습니다.

브랜치 비교 액션의 결과 표시 개선

브랜치 비교 액션의 결과 표시 개선

IntelliJ IDEA 2020.2에서 두 개의 브랜치를 비교할 때 IDE가 에디터에서 브랜치의 로그를 열어 커밋을 하나의 뷰에 표시합니다. VCS 도구 창과 달리 이 뷰에는 각 브랜치에 있는 커밋과 이에 영향을 받는 파일에 관한 전체 보고서를 볼 수 있는 충분한 공간이 있습니다.

로그에서 로컬 커밋 스쿼시

로그에서 로컬 커밋 스쿼시 및 삭제

이제 로컬 브랜치에서 여러 커밋을 선택하여 스쿼시 할 수 있습니다. Git 도구 창에서 Log(로그) 탭을 열고 로컬 커밋을 선택한 다음 Squash Commits(커밋 스쿼시)를 선택하세요. 커밋 메시지를 변경 하기로 결정한 경우, 해당 커밋의 모든 변경 내용은 업데이트된 메시지와 함께 하나의 커밋에 포함됩니다. 또한 이제 Git 로그에서 커밋을 삭제할 수도 있습니다.

WSL2에 설치된 Git 지원

IntelliJ IDEA 2020.2에서는 Linux 또는 Windows 파일 시스템의 프로젝트를 작업할 때 WSL2에 설치된 Git을 사용할 수 있습니다. WSL에서 프로젝트를 열면 IDE가 자동으로 WSL에 설치된 Git으로 전환되어 모든 관련 기능을 사용할 수 있습니다.

프레임워크 및 기술

Jakarta EE 9 지원 Ultimate

9월에 출시될 Jakarta EE 9 릴리스에 대비하여 Jakarta EE에서 사용할 수 있는 모든 기능(CDI, JPA, Batch, Bean Validation, JSF, JAX-RS, WebSocket, Servlets, JSP, JSON- P, JSON-B, 보안, EJB 및 JTA 사양 등)을 지원합니다.

Jakarta EE 마법사

Java Enterprise 프로젝트 마법사 Ultimate

Java EE 8 또는 Jakarta EE 9 프로젝트를 생성해야 하는 경우 이제 New Project(새 프로젝트) 마법사를 사용하여 수행할 수 있습니다. 새 Jakarta EE 프로젝트가 단 몇 단계만에 생성됩니다. Java 버전, 빌드 도구, 확장 기능 및 기타 옵션을 선택하여 설정하세요.

Quarkus 구성 파일 지원: .properties 및 YAML Ultimate

Quarkus 구성 파일로 작업하기 쉽도록 IDE는 이제 코드 완성 및 강조 표시 기능을 제공하며 .properties 및 YAML 구성 파일 모두에 사용 되지 않는 코드를 회색으로 표시합니다. 또한 구성 파일에서 구성된 Bean으로 또는 그 반대로 이동할 수 있습니다.

향상된 Quarkus CDI 지원 Ultimate

현재 버전의 IDE에서는 주입된 Bean에 대해 여백 탐색 기능을 사용하고, Quarkus의 단순화된 구문에서 완벽하게 작동하는 업데이트된 검사를 이용할 수 있습니다. 또한 IntelliJ IDEA 2020.2는 @DefaultBean, @AlternativePriority 어노테이션, 한정자에 의한 주입만(@Inject를 사용할 필요가 없음) 지원합니다.

Swagger UI 지원

Swagger UI 지원 Ultimate

새로 추가된 Swagger UI 통합 기능으로 이제 IntelliJ IDEA 에디터의 기본 패널에서 OpenAPI를 미리 볼 수 있습니다. 이는 테스트 작업을 단순화하는 멋진 업데이트 입니다.

Jakarta EE 마법사

Swagger Diff Ultimate

IDE가 OpenAPI 사양 간의 구조적 차이를 계산할 수 있도록 개선되었습니다. IntelliJ IDEA 2020.2는 Swagger/OpenAPI의 사양을 이해하고 JSON 또는 YAML 파일의 구조를 기반으로 두 파일을 비교하므로 사용자가 탐지된 차이점을 미리 확인할 수 있습니다. 이 기능을 사용하려면 컨텍스트 메뉴에서 Compare Open API Specifications(Open API 사양 비교)를 선택하거나 Search Everywhere(전체 검색) 대화상자에서 이 액션를 실행하세요.

Jakarta EE 마법사

Micronaut 프로젝트 생성 Ultimate

New Project(새 프로젝트) 마법사 및 Micronaut 프레임워크에 유용한 또 하나의 업데이트가 있습니다. 마법사에서 바로 새 Micronaut 프로젝트를 만들 수 있는 기능이 추가되었습니다. 프로젝트를 단계별로 구성하고 바로 프로젝트로 작업을 시작하세요.

Micronaut 및 Amazon SQS API 메시지 대기열 지원 Ultimate

Micronaut 애플리케이션에서 RabbitMQ 또는 Kafka를 통한 비동기 통신을 사용하는 사용자라면, 기다리던 업데이트일 것입니다. 여백 아이콘, 사용 위치 검색, 이름 완성 기능을 사용하여 메시지 대기열과 토픽을 탐색하세요. Amazon SQS API에 대해서도 동일한 기능 모음을 활용할 수 있습니다.

JAX-RS 및 MicroProfile REST 클라이언트 HTTP 요청 생성

JAX-RS 및 MicroProfile REST 클라이언트 HTTP 요청 생성 Ultimate

HTTP 요청을 쉽게 생성하고 테스트하기 위해 IntelliJ IDEA는 자동으로 JAX-RS 및 MicroProfile HTTP 요청을 생성한 후 이 요청을 내장된 REST 클라이언트에서 엽니다. 프로젝트에서 Spring, JAX-RS, Retrofit, OkHttp 또는 Micronaut와 같은 엔터프라이즈 프레임워크 중 하나를 사용하는 경우 인텐션 액션을 사용하여 URL에서 HTTP 요청을 생성할 수도 있습니다.

REST Assured 테스트를 위한 URL 코드 완성

REST Assured 테스트를 위한 URL 코드 완성 Ultimate

REST Assured 테스트를 위해 URL 경로 참조의 코드 완성 및 관련 리소스 탐색 기능을 업데이트했습니다.

Selenium 플러그인으로 Selenoid 통합 기능 추가 Ultimate

이제 Selenium 플러그인에 Selenoid가 통합되어 browsers.json 파일에서 새로운 테스트 환경을 쉽게 실행할 수 있습니다. Selenoid 컨테이너가 시작되면 필요한 모든 브라우저 이미지가 자동으로 가져와집니다.

프로파일러

HPROF 메모리 뷰어

HPROF 메모리 뷰어 Ultimate

뷰어 기술이 개선되어 힙을 분석하고 대량의 메모리를 사용하는 코드 부분을 파악하며 메모리 누수의 원인을 탐지할 수 있습니다. HPROF 메모리 뷰어는 객체의 계산된 보유 크기, 가비지 컬렉터 루트의 최단 경로, 객체(보존된 객체)의 도미네이터 트리 및 수신 참조를 표시합니다.

사용자 경험

사전 빌드된 공유 색인을 사용해 빠르게 색인 생성

이제 색인을 로컬로 구축하는 대신 다른 컴퓨터에서 생성된 색인을 다운로드하여 색인 생성 속도를 높일 수 있습니다. JDK에 대해 사전 빌드된 공유 색인을 사용하거나 사용자 지정 공유 색인을 생성하여 대상 IDE 빌드에 배포하세요. 간단히 Shared Indexes 플러그인을 설치하기만 하면 됩니다. 자세히 알아보기

색인 생성 중 강조 표시 및 코드 완성

색인 생성 중 사용 가능한 새로운 기능

IntelliJ IDEA 2020.2가 프로젝트의 색인을 생성하는 동안 사용자는 코드를 계속 작성할 수 있습니다. 이제 색인 생성 중 IDE에서 Java 및 PHP에 대한 코드 완성 제안을 제공합니다.

터미널

터미널에서 IDE 기능 실행 가능

터미널에서 IDE 기능을 실행하는 옵션

이제 터미널에서 바로 IDE 기능을 호출할 수 있습니다. IntelliJ IDEA 2020.2에서는 Ctrl+Enter/Cmd+Enter 단축키를 사용해 해당 GUI에서 강조 표시된 명령어를 실행할 수 있습니다. 강조 표시된 명령어를 디버그 모드에서 실행하려면 Ctrl + Shift + Enter / Cmd + Shift + Enter를 사용하세요.

블로그 게시물에서 이 기능에 관해 자세히 알아보기

빌드 도구

Maven Wrapper 지원

이제 IntelliJ IDEA 2020.2에서 프로젝트에 필요한 버전의 Maven을 자동으로 설치하는 Maven Wrapper를 지원합니다. Maven Wrapper가 있고 구성되어 있으면 IDE가 자동으로 이를 사용하고 필요할 때 변경 내용을 가져옵니다.

프로젝트별 Maven 버전 지정

이제 이전처럼 열려 있는 모든 프로젝트에 동일한 버전의 Maven을 사용하는 대신 프로젝트별로 Maven 버전을 설정할 수 있습니다.

빌드 도구 출력 표시

더 일관된 사용자 경험을 제공하기 위해 Messages(메시지) 도구 창 대신 Build(빌드) 도구 창에 IntelliJ IDEA 네이티브 빌더의 빌드 출력이 표시됩니다.

build.gradle 파일의 코드 인사이트 기능 개선

IntelliJ IDEA 2020.2는 build.gradle 파일에서 프로젝트 이름 완성 및 탐색 기능을 제공합니다.

JavaScript 및 TypeScript

새로운 스마트 인텐션 및 검사

생산성 향상을 돕는 새로운 인텐션 액션 Ultimate

예를 들어 이제 숫자 색인이 있는 for 루프를 forEach 배열 메서드로 빠르게 변환할 수 있습니다. 에디터에서 바로 주석을 렌더링할 수 있어 방해 요소가 최소화되므로 JavaScript 및 TypeScript 파일에서 문서 주석을 읽기도 수월해졌습니다.

Vuex 및 Composition API 지원

기본 서식 지정 도구로서 Prettier 사용 Ultimate

이 릴리스부터 코드 정리를 위한 기본 서식 지정 도구로 Prettier를 더 쉽게 설정할 수 있게 되었습니다. 간단히 On code reformat(코드 서식을 다시 지정할 때)이라는 체크박스를 선택하기만 하면 사용자가 .js, .ts, .jsx, .tsx 파일의 서식을 다시 지정할 때마다 IDE에서 Prettier를 사용합니다. 필요한 경우 다른 파일 형식도 추가할 수 있습니다.

Java 라이브 템플릿 정리

Nuxt.js 지원 Ultimate

Nuxt.js 지원 및 Vue용 코드 스타일 설정을 추가했습니다. 이는 Vue.js 프레임워크를 사용하는 사용자에게 좋은 소식일 것입니다.

데이터베이스

셀 값을 별도의 에디터에서 작업

셀 값을 별도의 에디터에서 작업 Ultimate

셀에 긴 값이 있는 경우 사용할 수 있는 유용한 도구가 도입되었습니다. 이번 릴리스부터 긴 값을 별도의 패널에서 보고 편집할 수 있습니다. 에디터 패널에는 오른쪽 툴바에서 전환할 수있는 소프트랩 모드가 있습니다.

새로운 부울 값용 UI

새로운 부울 값용 UI Ultimate

이제 부울 값이 체크박스 대신 원시 값으로 표시되어 값을 관찰하고 편집하기가 쉬워졌습니다. f, t, d, n, g 또는 c를 입력하면 false, true, default, null, generated, computed에 해당하는 값을 입력할 수 있습니다. 다른 문자를 입력하면 가능한 값이 표시된 드롭다운 목록이 열립니다.

데이터 에디터 내 DML 미리보기

데이터 에디터 내 DML 미리보기 Ultimate

이제 데이터 에디터에서 변경 내용이 포함된 쿼리를 미리 볼 수 있습니다. 이 기능을 이용하려면 보류 중인 변경 내용이 있는 경우 활성화되는 DML 버튼을 클릭하세요.

Scala 3 지원

Google BigQuery 파생 언어 Ultimate

Google BigQuery에 대한 부분적 지원이 추가되었습니다. IDE에서 쿼리를 올바르게 강조 표시하고 코딩 지원을 제공합니다.

Scala

묵시적 항목 자동 가져오기

묵시적 항목 자동 가져오기

View(보기) | Show Implicit Hints(묵시적 힌트 표시)를 사용하여 묵시적 항목(없는 것도 포함)을 표시할 수 있지만, 묵시적 항목을 가져오는 것은 쉬운 일이 아니었습니다.

새로운 Auto-import for implicits(묵시적 항목 자동 가져오기) 액션은 Auto-import for unresolved references(해결되지 않은 참조의 자동 가져오기)와 정확히 동일하게 작동합니다. 자동 팝업으로 기능을 더 쉽게 ​​검색할 수 있으며, 자동 팝업을 비활성화하고 Alt+ Enter를 눌러 Import…(가져오기) 빠른 수정을 실행할 수도 있습니다(자세한 정보).

묵시적 항목 자동 가져오기

들여쓰기 기반 괄호 처리

괄호 추가 및 제거는 Scala 프로그래머의 일상 생활에서 빠질 수 없는 부분입니다. 그래서 처음에 이 작업을 더 간편하게 수행할 수 있도록 표현식을 래핑하고 래핑 해제하는 인텐션을 추가했지만, 수동으로 호출해야 했습니다. 그 다음에는 대응하는 중괄호를 자동으로 추가 및 제거하는 기능을 지원했습니다.

이번에 추가된 지원은 한결 더 발전되어 코드 들여쓰기를 기준으로 양쪽 괄호가 자동으로 추가 및 제거됩니다. 이에 따라 Scala 2에서도 여전히 괄호를 유지하면서 중요한 들여쓰기를 시도할 수 있습니다. 이 기능을 이용하려면 괄호에 대해 고민하지 말고 그냥 IDE에 맡기세요.

네이티브 컴패니언 지원

Scala에서 컴패니언 클래스 또는 특성과 컴패니언 객체는 특별한 관계가 있습니다. 그동안 JetBrains는 이러한 관계를 Project(프로젝트) 뷰에 반영해 왔지만, 여기에 반영되지 않은 컴패니언은 다른 클래스 또는 객체로 취급되었습니다.

이제부터는 컴패니언을 탐색할 수 있는 여백 아이콘이 표시됩니다(Settings(설정) | General(일반) | Editor(에디터) | Gutter Icons(여백 아이콘)에서 구성 가능). class, trait, object 키워드에서 Go To(이동)를 사용하여 컴패니언을 탐색할 수도 있습니다. 컴패니언 객체 멤버를 쉽게 자동 완성하거나 자동으로 가져올 수 있습니다.

에디터 내 Scaladoc 렌더링

에디터 내 Scaladoc 렌더링

Scaladoc 마크업은 편집하기 쉽지만 읽을 때는 * 열, 태그 및 매크로를 살펴보아야 하기 때문에 보기가 쉽지 않습니다. 이제 에디터에서 Scaladoc을 바로 렌더링할 수 있으므로 명확하고 간결하게 보입니다(Editor(에디터) | General(일반) | Appearance(모양)에서 렌더링 전환 가능).

Quick Documentation(빠른 문서) 팝업의 Scaladoc 렌더링 기능도 개선되어 이제 단락, 목록 및 매크로를 올바르게 처리할 수 ​​있습니다.

코드 완성 개선

코드 완성의 정확성과 속도 향상 외에도 두 가지 눈에 띄는 새로운 기능이 도입되었습니다. 첫째, 현재 범위에 적절한 값이 있는 경우 메서드 이름과 해당 인수를 한 번에 자동 완성할 수 있습니다.

둘째, 대수적 데이터 유형(ADT)과 함께 사용할 수 있는 "static" 함수를 점 표기법을 이용해 인수에 적용할 수 있습니다. 이 기능은 Hoogle Completion의 일부로서, Hindley-Milner 유형 시스템을 사용하지 않는 언어에서 Hoogle을 다시 부활시키려는 JetBrains의 시도입니다(작업 진행 중).

Docker

Docker에 안전하게 연결

Docker에 안전하게 연결

Docker 데몬에 대한 TLS 연결 지원이 IntelliJ IDEA 2020.2에 추가되어 Windows에서 Docker에 안전하게 연결할 수 있습니다.

Kubernetes

여러 구성 파일

여러 구성 파일 Ultimate

이제 Preferences(환경 설정)/Settings(설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Kubernetes에서 사용자 지정 kubeconfig 파일을 지정할 수 있습니다. 또는 Kubernetes 루트 항목을 선택할 때 Services(서비스) 뷰에서 Show Settings…(설정 표시) 버튼을 클릭하세요. 전역에서 또는 현재 프로젝트에 대해 사용자 지정 kubeconfig 파일을 지정할 수도 있습니다. 즉, 프로젝트마다 별도의 kubeconfig 파일을 할당할 수 있습니다.

ConfigMap 및 Secret 지원

ConfigMap 및 Secret 지원 Ultimate

현재 프로젝트와 클러스터에서 ConfigMaps/Secrets에 대한 완성 기능이 지원됩니다. 클러스터의 항목은 완성 목록에서 파란색으로 표시됩니다. 이제 ConfigMap/Secret 사용 위치에서 프로젝트 또는 클러스터의 해당 ConfigMap/Secret 리소스로 이동할 수 있습니다. ConfigMap/Secret 키의 경우에도 마찬가지입니다.

기타

  • IntelliJ IDEA 2020.2에는 Android Studio 4.0의 모든 변경 내용이 포함되어 있습니다. 지금 자세히 알아보기
  • IntelliJ IDEA는 스크린 리더가 사용되고 있는지 탐지하여 사용되고 있는 경우 IDE의 접근성 기능을 자동으로 활성화합니다.
  • IntelliJ IDEA 2020.2를 사용하면 Linux에서 유니코드 이모티콘 문자를 사용할 수 있습니다. 신나게 사용해 보세요. 🚀
  • 성능 및 렌더링 문제를 피하기 위해 JCEF와의 새로운 통합 기능을 제공하여 IntelliJ 플랫폼 플러그인이 실행되도록 했습니다.