IntelliJ IDEA 2022.1 버전은 원활한 종속성 관리 및 충돌 해결을 위한 Dependency Analyzer(종속성 분석기), 새 프로젝트 실행을 개선한 New Project(새 프로젝트) 마법사 업데이트, IDE 알림 수신을 위한 간편하고 새로운 방식인 Notifications(알림) 도구 창을 선보입니다. 그 외의 다양한 중요 개선 사항을 아래에서 살펴보세요.
새롭게 도입된 Dependency Analyzer(종속성 분석기)는 프로젝트 및 하위 프로젝트에서 사용되는 Maven 및 Gradle의 모든 종속성과 관련한 다양한 정보를 제공합니다. 이 기능을 통해 종속성 충돌 문제를 파악하고 해결하거나, 동일한 종속성을 필터링하거나, 다양한 라이브러리의 종속성 포함 여부를 확인하거나, 종속성을 간편하게 탐색하여 빌드 구성을 수정할 수 있습니다.
New Project(새 프로젝트) 마법사 인터페이스가 개선되어 새 프로젝트 생성이 더욱 간편해졌습니다. 빈 프로젝트를 빠르게 시작하고, Java, Kotlin, Groovy 및 JavaScript용으로 사전 구성된 옵션을 활용해 보세요. 더 복잡한 프로젝트의 경우 제너레이터를 사용할 수도 있습니다.
Event Log(이벤트 로그) 인스턴스가 새로운 Notifications(알림) 도구 창으로 변경되었습니다. 중요하고 유용한 제안 사항 및 알림이 더욱 명확하게 표시되고 전용 도구 창에 깔끔하게 정리됩니다. 자세한 내용은 이 블로그 게시물을 참조하세요.
New Project(새 프로젝트) 마법사의 Maven Archetype 프로젝트 제너레이터 업데이트를 통해 archetype 검색 시 입력과 동시에 검색이 가능하며, 모듈 생성 중 archetype 카탈로그를 관리하고 archetype별로 필수 프로퍼티를 입력할 수 있습니다.
에디터에서 바로 코드와 관련한 정보를 즉시 제공하는 Code Vision 인레이 힌트를 구현했습니다. 이제 상속자, 사용 위치, 코드 작성자 및 관련 문제 등의 메트릭이 표시됩니다. 이 메트릭은 모두 기본적으로 활성화되어 있으며 Inlay Hints(인레이 힌트) 설정에서 변경할 수 있습니다. 설정도 업데이트되어 새로운 구성 UI가 제공됩니다.
에디터 탭 사이에 작업 공간을 너비가 같도록 분할할 수 있습니다. 이렇게 설정하려면 Settings(설정)/Preferences(환경 설정) | Advanced Settings(고급 설정) | Editor Tabs(에디터 탭) | Equalize proportions in nested splits(중첩된 분할의 비율을 동일하게 변경)로 이동하세요.
이제 UML 다이어그램을 yEd .graphml, JGraph .drawio, Graphviz .dot, 위치 정보 포함 Graphviz .dot, Mermaid .md, Plantuml 및 IntelliJ IDEA .uml 파일로 내보낼 수 있어 타사 도구와 호환성이 개선되었습니다.
이제 Structural Search and Replace(구조 검색 및 바꾸기) 대화상자에 모든 템플릿 목록이 표시되어 템플릿을 더 쉽게 탐색할 수 있습니다. 또한 대화상자에 Pin Dialog(대화상자 고정) 아이콘이 추가되고, Injected code(삽입된 코드) 및 Match case(대/소문자 일치) 체크박스가 재배치되었습니다.
IntelliJ IDEA 2022.1 can now detect vulnerabilities in Maven and Gradle dependencies used in your projects by checking across the Checkmarx SCA Database and the National Vulnerability Database, thanks to the Package Сhecker plugin that is bundled with IntelliJ IDEA Ultimate.
자세한 내용은 이 블로그 게시물에서 확인하세요.
실행할 명령어가 포함된 Markdown 파일로 작업할 때 여백의 실행 아이콘을 사용하여 파일에서 직접 해당 명령어를 실행할 수 있습니다.
Markdown 블록의 새로운 Copy code snippet(코드 스니펫 복사)을 사용하면 클릭 한 번으로 콘텐츠를 클립보드에 손쉽게 복사할 수 있습니다.
새로운 디자인의 Markdown 에디터 플로팅 툴바에서 목록 생성 기능, 헤더 스타일 선택을 위한 드롭다운 메뉴도 제공됩니다. 또한 사용자 지정이 가능하므로 필요한 옵션을 추가할 수 있습니다.
전용 프로젝트를 생성하거나 열지 않고도 더 많은 작업을 수행할 수 있도록 LightEdit 모드를 개선했습니다. 이제 프로젝트가 없는 모드에서 코드 서식을 다시 지정할 수 있습니다.
파일의 현재 서식이 코드 스타일 설정에 부합하지 않을 경우, 이를 알려주는 Incorrect formatting(올바르지 않은 서식 지정) 검사를 구현했습니다.
코드 서식의 일관성 유지를 위해 자동으로 활성화되는 Enforce on reformat(서식 다시 지정 시 강제 적용) 체크박스가 Add a space at line comment start(줄 주석 시작 부분에 공백 추가) 옵션에 추가되었습니다. 이 기능은 Java, Kotlin 및 Groovy에 기본적으로 지원되며, 영숫자 기호로 시작하는 줄 주석만 수정합니다.
명령줄 서식 지정 도구는 프로젝트 파일의 유효성을 검사하는 dry run 모드를 지원합니다. 파일 서식 지정이 필요한 경우, 0이 아닌 상태로 종료됩니다.
IntelliJ IDEA 2022.1은 2022년 3월에 출시된 Java 18의 신규 기능을 지원합니다. IDE에서 코드 스니펫, switch 식에 대한 패턴 일치의 변경 사항 등을 지원합니다. 자세한 내용은 이 블로그 게시물을 참조하세요.
Java 디컴파일러와 Java 17 릴리스의 호환성이 개선되었습니다. 이제 sealed 타입 및 패턴 매칭 등의 최신 언어 생성자를 지원하고 문자열 전환 디컴파일 개선 사항 및 타입 어노테이션을 제공하며 공통 상수를 파악합니다.
@EnabledIf/DisabledIf
, @NullSource/EmptySource
, @TempDir
어노테이션 지원을 비롯하여 JUnit 5.7의 신규 기능에 대한 지원이 추가되었습니다.
업데이트된 Surround with try/catch(try/catch로 둘러싸기) 템플릿은 예외를 숨기는 대신 RuntimeException으로 래핑된 예외를 다시 던집니다.
IntelliJ IDEA 2022.1은 Kotlin 1.6.20을 지원하므로 병렬 컴파일 지원, 컨텍스트 리시버 프로토타입, 모든 Kotlin 대상에서 향상된 코드 공유 등의 최신 언어 기능을 IDE에서 사용할 수 있습니다. 신규 Kotlin 업데이트와 관련한 자세한 내용은 이 블로그 게시물을 참조하세요.
패키지 색인 최적화를 통해 코드 완성, 강조 표시 및 참조 검색과 관련된 작업 수행 시 IDE 속도가 대폭 향상되었습니다. 코드 변경 후 다시 색인이 생성되는 횟수와 범위도 감소했습니다.
Kotlin 프로젝트를 디버그할 때 사용되는 Smart Step Into(스마트 스텝인투) 기능의 유용한 개선 사항 및 업데이트가 있습니다. 또한 중단점과 관련된 여러 문제가 해결되었습니다.
To ensure better Kotlin code coverage, the Kover plugin has been integrated with IntelliJ IDEA.
이제 Groovy 코드 완성 기능은 arg
, cast
, for
, iter
, nn
, notnull
, null
, not
, throw
, try
, var
, par
, sout
, serr
, while
, new
, reqnonnull
및 return
등 Java와 유사한 접미사 템플릿을 대부분 지원합니다.
IntelliJ IDEA Ultimate에서 Go 마이크로서비스를 지원하여 URL 경로 참조, 엔드포인트, Search Everywher(전체 검색) 및 여백 아이콘 등의 기능이 제공됩니다. 해당 기능은 Go 플러그인 설치 후 사용 가능하며, 현재 표준 라이브러리 함수만 사용할 수 있습니다. 자세한 내용은 이 블로그 게시물을 참조하세요.
Spring Data MongoDB 사용 시 IntelliJ IDEA에서 JSON 쿼리를 강조 표시하고, 연산자 및 문서 필드의 코드 완성 기능 및 매핑된 엔티티의 Database(데이터베이스) 도구 창으로 이동할 수 있는 기능을 제공합니다.
새로운 .proto 파일용 인텐션 액션을 활용하면 해결되지 않은 메시지 참조에 대해 누락된 import 문이 추가됩니다. IDE는 누락된 import 문을 추가한 후 메시지 참조에 대한 코드 완성 제안을 표시합니다.
IntelliJ IDEA Ultimate은 실행 중인 서버 인스턴스의 요청을 바로 실행하고 서비스 및 메서드 이름에 대한 코드 완성 기능을 지원합니다. The project does not need to contain .proto files, but the server should support gRPC reflection.
IntelliJ IDEA Ultimate은 향상된 Thymeleaf 지원을 선보입니다. 거짓 양성 검사 개수가 감소되었으며, Thymeleaf 템플릿 편집 시 IDE 성능이 향상되고, 적절한 알림을 받을 수 있도록 검사 및 강조 표시 수준이 조정되었습니다.
IntelliJ IDEA Ultimate은 향상된 Helidon 프레임워크 지원을 제공합니다. 이제 IDE는 프로퍼티 파일 및 .yaml 파일에서 구성 키 완성 기능을 제공하고, Go to Declaration(선언으로 이동) 및 Quick Doc(빠른 문서) 액션을 지원합니다.
종속성 다운로드 및 아티팩트 가져오기 등 Gradle 프로세스를 위한 진행률 표시줄이 추가되었습니다. 해당 표시줄을 활용하면 파일의 현재 상태를 추적하고 프로세스 완료 시점을 예측할 수 있습니다.
Maven 컴파일러 플러그인에 실험적 기능이 추가되었습니다. 이제 프로덕션 및 테스트 소스에 대해 구체적인 언어 수준을 개별적으로 설정할 수 있습니다. 이 옵션은 Preferences(환경 설정)/Settings(설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Build Tools(빌드 도구) | Maven | Importing(가져오기)에서 활성화할 수 있습니다.
이제 Code Vision 기능이 업데이트되어 IntelliJ IDEA는 VCS 기록을 기반으로 코드 작성자에 대한 정보를 즉시 제공할 수 있습니다. Code Author(코드 작성자) 인레이 힌트는 Preferences(환경 설정)/Settings(설정) | Editor(에디터) | General(일반) | Inlay Hints(인레이 힌트) | Code Vision에서 기본적으로 활성화되어 있습니다.
도입된 변경 사항을 더 쉽게 살펴볼 수 있도록 Annotate with Git Blame(Git Blame으로 어노테이션 추가) 기능을 개선했습니다. 어노테이션에 마우스를 올리면 IDE에서 바로 코드 줄의 차이점이 강조 표시됩니다. 또한 해당 어노테이션을 클릭하면 Git Log(로그) 도구 창이 열립니다.
이제 Commit Details(커밋 세부정보)에 GPG 서명 및 빌드 상태에 대한 정보가 포함됩니다. 이전에는 이 데이터가 Git 로그에서 하나의 열로만 표시되었습니다.
Git File History(Git 파일 기록) 도구 창의 새 UI는 이제 색인 생성 프로세스와 별도로 작동합니다. 새 인터페이스에서는 로그 색인이 꺼져 있어도 데이터가 표시됩니다.
IDE에서 변경 사항을 로컬로 적용하거나 커밋할 수 있으므로 IntelliJ IDEA의 제안된 변경 사항을 더 쉽게 활용할 수 있습니다.
IntelliJ IDEA 2022.1에서는 파일 형식별로 다른 외부 Diff 및 병합 도구를 지정할 수 있습니다. 이 기능을 구성하려면 Settings(설정)/Preferences(환경 설정) | Tools(도구) | Diff & Merge(Diff 및 병합)| External Diff Tools(외부 Diff 도구)로 이동하세요.
새로운 프로파일러 구성인 IntelliJ Profiler가 구현되었습니다. IntelliJ Profiler는 Async Profiler 및 Java Flight Profiler의 기능을 결합한 도구로, 이를 통해 모든 플랫폼에 사용 가능한 단 하나의 올인원 프로파일링 도구를 구현하겠다는 목표에 한층 가까워졌습니다.
Debugger(디버거) 도구 창의 Frames(프레임) 뷰에서 Drop Frame(프레임 삭제) 액션이 툴바에서 제거되었으며, 인라인 Reset Frame(프레임 재설정) 아이콘을 통해 이용할 수 있습니다.
Debugger(디버거) 도구 창의 가용 공간을 극대화하고자 기본적으로 탭 라벨이 숨겨집니다. 탭 라벨을 다시 표시하거나 위치를 사용자 지정하려면 Layout Settings(레이아웃 설정)에서 Show Tab Labels(탭 라벨 표시) 옵션을 사용하세요.
Selenium UI 테스트 플러그인의 페이지 객체 에디터가 대폭 개선되었습니다. 워크플로 최적화 및 UI 개편을 통해 집중 분산 요소가 최소한으로 표시됩니다. 웹 페이지의 페이지 요소를 즉시 코드에 추가한 후 페이지 객체 에디터를 종료하지 않고도 편집 작업을 계속 수행할 수 있습니다. 또한 코드에 새 페이지 요소 추가 시 사용할 선택자 타입도 선택 가능합니다.
새로운 Page Object(페이지 객체) 마법사를 활용하면 페이지 객체 클래스를 새롭게 생성할 때 언어를 선택하고 자동화 프레임워크를 테스트할 수 있습니다. 또한 Selenium 라이브러리 종속성이 있는 코드의 모든 지점에서 마법사를 사용할 수 있습니다. 새 파일을 생성하지 않고 다른 프레임워크와 사용자 지정 템플릿을 사용하여 자동으로 페이지 객체를 생성하려는 경우, Tools(도구) | Open Selenium Page Object Playground(Selenium 페이지 객체 플레이그라운드 열기)라는 특수한 플레이그라운드 모드를 이용하세요.
클러스터에서 로드된 리소스를 에디터 탭에서 편집할 수 있습니다.
kubectl이 표준 위치에 없는 경우 kubectl에 대한 경로를 수동으로 구성할 수 있습니다. 사용자 지정 경로를 설정하려면 Settings(설정) / Preferences(환경 설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Kubernetes | Path to kubectl executable(kubectl 실행 파일 경로)로 이동하세요.
이제 Pod에 포트 포워딩 기능이 지원됩니다. 포트 포워딩을 수행하려면 툴바의 아이콘을 사용하거나 컨텍스트 메뉴 항목을 선택하세요.
Services(서비스) 뷰의 모든 리소스에 대해 새로운 Describe Resource(리소스 설명) 액션이 제공됩니다. 컨텍스트 메뉴에서 호출하거나 툴바의 버튼을 사용하세요.
이제 Services(서비스) 뷰에서 클러스터 이벤트가 별도 노드로 표시되어 시스템의 최근 이벤트에 대한 데이터를 제공합니다. 특정 Pod의 이벤트를 확인하려면 해당 Pod에서 Describe Resource(리소스 설명) 액션을 호출하고 액션 결과에서 Events(이벤트) 섹션을 찾아보세요.
코드 완성 기능, 검사, 빠른 수정 제안, .Values.werf.image.*
리팩터링/이름 변경, boolean
및 int
와 같은 일부 필드 유효성 확인 등 werf.yaml 및 관련 Helm 템플릿 파일에 대한 에디터 지원 기능이 일부 추가되었습니다.
IntelliJ IDEA Ultimate은 이제 템플릿의 기본 제공 객체의 코드 완성/탐색에 영향을 미치는 import-values 설정을 통해 하위 값을 가져오는 기능을 지원합니다.
IntelliJ IDEA 2022.1 버전에서는 Services(서비스) 도구 창의 Docker UI가 대폭 개선되었습니다. 컨테이너, 이미지, 네트워크 및 볼륨에 대한 개선 사항이 구현되었습니다.
이제 Docker Compose 대상이 지원됩니다. 예를 들어 Compose 대상에서 Spring Boot 애플리케이션을 실행하려면 실행 구성으로 이동하고 Manage targets(대상 관리)에서 Compose 대상을 생성한 후 애플리케이션을 실행할 수 있습니다.
Docker 1.6 이상에서 사용 가능한 Docker 레지스트리 HTTP API V2 지원이 추가되었습니다. 간편하거나 암호로 보호된 Docker V2 레지스트리를 생성한 후 이미지 보기, 푸시/풀 등의 일반적인 액션을 수행할 수 있습니다.
이제 원격 개발 시 CPU 로드, 메모리, 디스크 용량 및 백엔드 상태를 모니터링하는 데 필요할 수 있는 기타 매개변수를 표시하는 Backend Control Center(백엔드 제어 센터) 위젯이 추가되었습니다.
새로운 보안 설정을 통해 SSH 키 포워딩을 사용하면 원격 시스템에서 Git 저장소에 대한 액세스를 인증할 수 있습니다. 또는 SSH 에이전트 헬퍼를 활용한 인증도 가능합니다.
원격 컴퓨터에서 IDE 백엔드의 다운로드 경로와 정확한 위치를 지정할 수 있습니다.
JetBrains 클라이언트는 파일 에디터를 추가로 지원하므로 텍스트 기반 파일뿐 아니라 PNG 이미지, UML 다이어그램, Jupyter Notebook 파일 및 Android 레이아웃 리소스를 사용할 수 있습니다.
Run with coverage(커버리지로 실행) 및 Profiler(프로파일러) 창이 여백 메뉴에 추가되었습니다. 컨텍스트 메뉴에 Maven 및 Gradle 도구 창이 있으며, 한층 유용한 하위 메뉴 항목이 추가되었습니다.
또한 디버그 기능을 개선하고 여러 액션을 추가하여 원격 개발 시 코드를 손쉽게 검사할 수 있습니다.
이제 여러 테이블을 선택하고 다른 스키마에 복사할 수 있습니다. 테이블을 선택하고 F5
키를 누르면 내보내기 대화상자가 열립니다. 테이블 1개를 내보낼 경우 열을 매핑하고, 새 테이블의 DDL을 확인하거나 변경할 수 있습니다.
IDE에서 교차 DBMS 내보내기가 지원됩니다. 즉, 대상 스키마는 프로젝트의 모든 데이터베이스에 속할 수 있습니다. 자세한 내용은 이 블로그 게시물을 참조하세요.
이제 관계형 데이터베이스에서처럼 쉽게 MongoDB 컬렉션의 결과를 편집할 수 있습니다. 또한 .find()
를 통해 얻은 결과 세트를 편집할 수도 있습니다. sort()
또는 limit()
와 같이 결과를 수정하는 커서 메서드가 .find()
이후에 실행된 경우에도 문제 없이 작동합니다.
실행 중인 구문을 취소하는 로직이 업데이트되었습니다. 이제 요청 취소 상태를 더욱 명확히 알 수 있으며, 경고 없이 데이터 소스가 비활성화되지 않습니다. 자세한 내용은 이 블로그 게시물을 참조하세요.
이제 데이터 소스를 비활성화하지 않고 연결 생성 프로세스를 중지할 수 있습니다. 연결이 생성되는 동안 Cancel(취소) 버튼을 클릭하면 연결이 중지되며 'Connection canceled'(연결 취소됨)이라는 메시지가 표시됩니다. 업데이트와 관련한 자세한 내용은 이 블로그 게시물을 참조하세요.
React에 대한 기본 지원 덕분에, Next.js 프로젝트에서 모든 주요 기능이 작동합니다. IntelliJ IDEA 2022.1에는 페이지와 같이 일부 프레임워크 기능에 대한 지원이 추가되었습니다. IDE에서 Link
구성 요소의 href
프로퍼티와 기타 태그에 사용된 경로를 확인합니다. 코드 완성, 탐색 및 리팩터링도 작동합니다.
이번 릴리스에서 JavaScript 도구 관리자인 Volta가 적절히 통합되었습니다. IntelliJ IDEA 2022.1은 Volta를 사용하여 설치된 Yarn 및 npm을 자동으로 인식합니다.
이제 extension
메서드에 코드 완성이 지원됩니다. 또한 에디터는 extension
메서드와 given
인스턴스를 자동으로 가져오도록 제안합니다. infix
제어자 및 @targetName
어노테이션에 대한 새로운 검사는 일관성 있는 코드 스타일을 유지하는 데 도움이 됩니다. .tasty
리더의 성능이 대폭 개선되어 Scala 3 라이브러리의 색인 생성 속도가 최대 2배 빨라졌습니다.
이제 한층 쉽게 새 Scala 프로젝트를 구성할 수 있습니다. 업데이트된 New Project(새 프로젝트) 마법사를 사용하면 프로젝트 JDK, 원하는 빌드 시스템 및 Scala 버전을 한 번에 선택할 수 있습니다.
Scala에서 String
, Seq
, List
, Set
및 Map
등의 대부분 항목은 별칭입니다. 이는 구문 강조 표시, GoTo(이동), Quick Documentation(빠른 문서), Quick Definition(빠른 정의), Find Usages(사용 위치 찾기), Optimize Imports(import 문 최적화) 및 기타 IDE 기능에 영향을 미칩니다. 이러한 기능은 실제 정의가 아닌 별칭에 대해 작동하기 때문입니다. 사용자 경험을 개선하기 위해 에디터에서 표준 라이브러리의 별칭을 명확한 export 문으로 처리합니다. 예를 들어, List
는 scala.List
가 아닌 scala.collection.immutable.List
를 의미합니다.
이전에는 사용되지 않는 선언을 탐지할 수 있는 대상은 private
바인딩으로 한정되었습니다. 이제 Unused declaration(사용되지 않는 선언) 검사가 클래스, 메서드, 변수, 매개변수 등을 통해 도입된 public 바인딩도 지원합니다.
이번 릴리스에서는 Scala 디버거를 개선하고 간소화했습니다. objects
, 기본 생성자 매개변수, 값 class
, Array
, lazy val
, 컬렉션 처리 방식을 업그레이드하고 표현식 평가를 개선했습니다.
이제 IDE에서 코드 변경 사항 검토 시 코드 검토 주석을 게시할 시점을 선택할 수 있습니다.
For more details, check out this blog post.
적절한 키보드 단축키를 표시하여 코드 검토 사용자 인터페이스를 개선했습니다. 코드 검토 주석을 게시할 때 Enter 키를 활용하면 새 줄을 추가할 수 있습니다. Ctrl+Enter를 누르면 주석이 저장되거나 게시됩니다.