IntelliJ IDEA 2024.3의 새로운 기능

IntelliJ IDEA 2024.3에는 개발 경험을 한 단계 끌어올리는 강력한 새로운 기능이 다수 포함됩니다. 이제 코드의 논리적 구조가 표시되고, Kubernetes 애플리케이션의 디버그 경험이 간소화되며, 클러스터 전체의 Kubernetes 로그에 대한 액세스가 제공되고, K2 모드가 베타에서 안정화 버전으로 공식적으로 전환됩니다. 이 페이지에서 IDE의 모든 영역에 걸친 자세한 업데이트 내용을 확인하세요.

주요 하이라이트

Structure(구조) 도구 창에 Logical(논리적) 코드 구조 추가
Ultimate

Structure(구조) 도구 창에 이제 익숙한 Physical(물리적) 구조와 함께 Logical(논리적) 코드 구조가 포함되었습니다. 이를 통해 클래스, 메서드, 필드뿐만 아니라 프로젝트의 구성 요소 간 상호 작용과 링크도 볼 수 있습니다. 예를 들어, Spring Boot 애플리케이션에서 컨트롤러를 열면 해당 엔드포인트 및 오토와이어링된 애플리케이션 구성 요소를 볼 수 있습니다. 이 향상된 뷰를 통해 프로젝트 구조를 보다 쉽게 이해하고, 코드 사용 위치와 의미 있는 연결을 따라 프로젝트를 탐색할 수 있습니다.

개선된 Kubernetes 애플리케이션 디버그 경험
Ultimate

Kubernetes 애플리케이션 디버그가 더욱 쉬워졌습니다. Debug(디버그) 버튼 옆에 있는 생략 부호를 클릭하고 Add Tunnel for Remote Debug(원격 디버그의 터널 추가)를 선택하여 간단히 터널 디버그를 활성화할 수 있습니다. 사용자의 시스템은 Kubernetes 클러스터의 가상 부분이 되므로, 원하는 도구를 사용하여 로컬에서 pod를 교체하고 마이크로서비스를 디버그할 수 있습니다. 다른 마이크로서비스는 클러스터의 나머지 부분에 대한 전체 네트워크 액세스 권한을 가지고 마치 디버그 중인 pod인 것처럼 시스템과 상호 작용합니다. Kubernetes를 지원하지 않는 디버거도 완벽하게 작동합니다. 또한, Services(서비스) 도구 창의 Kubernetes UI에 새로운 Forward Ports(포트 포워딩) 섹션이 추가되어 포트 포워딩이 간소화되었습니다.

Kubernetes 클러스터 로그
Ultimate

IntelliJ IDEA에서 이제 스트리밍 및 패턴 일치를 사용하여 클러스터 전체 Kubernetes 로그에 대한 액세스를 제공합니다. 이는 개발자뿐만 아니라 DevOps 및 SRE 팀에게 필수적인 도구입니다. 이 기능을 사용하면 pod, 노드 및 서비스 전반의 모든 이벤트를 중앙집중화된 뷰에서 확인할 수 있어 각 로그를 수동으로 확인하지 않고도 문제를 빠르게 식별할 수 있습니다. 실시간 스트리밍으로 즉각적인 진단이 가능하고, 패턴 일치로 메모리 부족 문제나 비정상적인 네트워크 활동과 같은 주요 이벤트와 오류를 자동으로 탐지할 수 있습니다. 이 기능에 대한 자세한 내용과 사용 방법은 이 블로그 게시물에서 알아보세요.

K2 모드 안정화

IntelliJ IDEA 2024.3에서는 K2 모드가 공식적으로 베타 버전을 벗어나 안정화되어 일반적으로 사용할 수 있게 되었습니다. K2 모드는 코드 분석 안정성, 메모리 소비 효율 및 IDE의 전반적인 성능을 크게 향상합니다. K2 모드는 이제 향상된 Java와의 기능 동등성을 제공하며 Kotlin 2.1의 모든 기능을 지원합니다. 이 기능을 이용하려면 Settings(설정)/Preferences(환경 설정) | Languages & Frameworks(언어 및 프레임워크) | Kotlin으로 이동하세요.

AI Assistant

인라인 AI 프롬프트

IntelliJ IDEA 2024.3에는 인라인 AI 프롬프트가 도입되어 에디터에서 바로 AI Assistant와 원활하게 상호 작용할 수 있습니다. 자연어로 요청을 입력하면 AI Assistant가 즉시 해석하여 코드 변경으로 변환하며, 변경 내용을 쉽게 추적할 수 있도록 여백에 보라색으로 표시합니다. 인라인 AI 프롬프트는 컨텍스트를 인식하여 관련 파일과 심볼을 자동으로 포함하므로, 코드 생성의 정확도가 올라갑니다. 이 기능은 Java, Kotlin, Scala, Groovy, JavaScript, TypeScript, Python, JSON 및 YAML 파일 형식을 지원하며 모든 AI Assistant 구독자에게 제공됩니다.

향상된 컨텍스트 관리 기능

이번 업데이트에서는 AI Assistant가 제안을 제공할 때 고려하는 컨텍스트를 보다 투명하고 직관적으로 관리할 수 있도록 했습니다. 새로워진 UI를 통해 컨텍스트로 포함된 모든 요소를 ​​보고 관리할 수 있어 완벽한 가시성과 통제력이 제공됩니다. 열려 있는 파일과 그 파일에서 선택한 코드가 이제 자동으로 컨텍스트에 추가되며, 필요에 따라 파일을 쉽게 추가하거나 제거하고 워크플로에 맞게 컨텍스트를 사용자 지정할 수 있습니다. 또한, 프로젝트 전체에 적용되는 지침을 연결하여, AI Assistant가 지침에 따라 코드베이스에서 응답하도록 할 수 있습니다.

채팅 모델 공급자를 선택하는 옵션

이제 Google Gemini, OpenAI 또는 사용 중인 시스템에 있는 로컬 모델 중에서 원하는 AI 채팅 모델을 선택할 수 있습니다. 이 확장된 선택지를 통해 특정 워크플로에 맞게 AI 채팅의 응답을 사용자 지정하여 더 적절하고 개인화된 경험을 할 수 있습니다.

Java 및 Kotlin

상수 조건의 개선

2024.3 버전에서는 IntelliJ IDEA의 데이터 흐름 엔진이 별칭 사례를 더 정확하게 처리하여 검사에서 거짓 양성의 수를 줄이고 코딩의 신뢰성을 높입니다. 이 개선 사항은 Kotlin과 Java 모두에 적용되며 여러 참조가 동일한 인스턴스를 가리키는 상황에서 분석 결과를 개선합니다.

Java 코드 서식 지정 도구의 개선 사항

IntelliJ IDEA의 코드 서식 지정 도구를 사용하면 이제 어노테이션과 필드 선언 사이에 빈 줄을 유지할 수 있습니다. 이러한 스타일은 가독성을 높이기 위해 JPA 엔티티에서 일반적으로 사용됩니다. 이전에는 서식 지정 도구가 기본적으로 이러한 줄을 없앴습니다. 이 동작을 제어하는 ​​새로운 옵션은 Settings(설정) | Editor(에디터) | Code Style(코드 스타일) | Java | Blank Lines(빈 줄)에서 찾을 수 있습니다.

Kotlin 2.1 실험적 기능 지원

K2 모드가 활성화되면 IntelliJ IDEA에서 Kotlin 2.1의 두 가지 실험적 언어 기능이 지원됩니다. 첫째, 이제 인라인 함수에 인수로 전달되는 람다 내에서 로컬이 아닌 breakcontinue 문을 사용할 수 있습니다. 새롭게 지원되는 또 다른 기능인 다중 달러 보간은 리터럴 $ 심볼이 포함된 문자열 작업을 더 쉽게 처리할 수 있게 해주므로 ${'$'}와 같은 차선책을 사용할 필요가 없습니다. 이 기능은 예를 들어, 코드에서 JSON 스키마를 선언할 때 특히 유용합니다.

Scala

Scala 3 지원

IntelliJ IDEA에서 이제 컴파일러 기반의 타입 추론을 사용하는 옵션이 제공되므로 Scala 3의 인라인 메서드 호출이 투명해집니다. 이러한 개선으로 매크로에 의존하는 라이브러리에 대한 지원이 강화되어, 매크로 기반 코드에 모든 타입 기반 기능(예: 코드 완성, 탐색, 타입 힌트 등)을 이용할 수 있습니다. 이 기능은 현재 실험적 단계입니다.

Scala 3.5의 새로운 실험적 기능이자, Scala 3.6에서 표준 기능이 될 예정인 명명된 튜플이 IntelliJ IDEA 2024.3에서 완벽하게 지원됩니다. 이름에서 알 수 있듯이, 명명된 튜플을 사용하면 튜플의 구성 요소에 이름을 지정하여 읽을 수 있는 이름으로 액세스할 수 있습니다.

또한, IntelliJ IDEA는 불투명한(opaque) 타입을 보다 잘 인식합니다. 이미 opaque 키워드를 인식할 수는 있었지만, 실제 처리에서는 불투명한 타입을 표준(즉, 투명한) 타입 별칭과 똑같이 취급했습니다. 불투명한 타입은 이제 추상 타입으로 처리되어 기본 정의가 숨겨집니다.

Scala CLI

프로젝트 구성이 포함된 project.scala 파일이 들어 있는 폴더를 열면 IntelliJ IDEA가 이제 해당 프로젝트가 Scala CLI 프로젝트임을 인식합니다. New Project(새 프로젝트) 마법사에서 새 BSP 기반 Scala CLI 프로젝트를 만들고, SBT 기반 프로젝트의 경우와 마찬가지로 여기에 새 Scala 파일을 추가할 수 있습니다.

SBT 프로젝트를 위한 새로운 프로젝트 모델

IntelliJ IDEA의 프로젝트 모델은 이제 SBT 프로젝트를 보다 정확하게 표현하여 프로덕션 및 테스트 소스를 별도의 모듈로 분리합니다. 이 새로운 모델에서는 종속성을 더 효과적으로 처리하고 다양한 범위에 대해 별도의 컴파일러 옵션을 구성할 수 있습니다. 이 기능은 현재 베타 단계입니다.

컴파일러 기반 강조 표시 개선

여러 번의 컴파일링이 필요한 경우의 수를 줄였습니다(예: 여러 파일에 영향을 미치는 리팩터링으로 인해 많은 컴파일링 요청이 발생하는 경우). 최신 릴리스에서는 IntelliJ IDEA가 이러한 요청을 분석하고 하나로 묶어서 더 넓은 컴파일링 범위를 가진 하나의 요청을 실행합니다. 그 결과 CPU 리소스 사용량이 줄어들고 컴파일러의 강조 표시 경험이 최적화됩니다.

IntelliJ IDEA Scala 파서와 컴파일러 모두에서 중복된 파서 오류가 표시되는 몇 가지 특수 사례도 수정했습니다.

사용자 경험

색인 생성 중 문법 및 철자 검사

2024.2 릴리스에 적용된 작업의 연장선으로, 프로젝트 모델이 빌드되고 색인이 생성되는 동안 사용할 수 있는 필수 기능의 수를 늘리고 있습니다. 2024.3 버전에서는 색인 생성이 진행되는 동안에도 문법 및 철자 검사를 이용할 수 있습니다. 이에 따라 색인 생성이 완료될 때까지 기다리지 않고도 Markdown 문서나 문서 태그 등에 있는 오류를 찾아낼 수 있습니다.

Run(실행) 위젯: 여러 구성을 동시에 실행하는 옵션

업데이트된 Run(실행) 위젯을 사용하면, Ctrl을 누른 상태에서 팝업의 Debug(디버그) 아이콘을 클릭하여 여러 구성을 동시에 실행할 수 있습니다. 또한 위젯에 실행 중인 모든 구성에 대한 제어 기능이 표시되므로 구성 상태를 한 눈에 파악하고 쉽게 관리할 수 있습니다.

디폴트 탭의 한도 증가

에디터 내 디폴트 탭의 한도를 30개로 늘렸습니다. 즉, 탭 한도에 도달해 최근에 가장 적게 사용한 탭부터 닫히기 전에 더 많은 탭을 열어둘 수 있게 되었습니다. Settings(설정) | Editor(에디터) | General(일반) | Editor Tabs(에디터 탭)에서 이 설정을 관리할 수 있습니다.

Rename(이름 변경) 액션의 배치 최적화

에디터 요소와 Project(프로젝트) 도구 창에서 Rename(이름 변경) 액션을 효과적으로 호출할 수 있도록 이 액션을 컨텍스트 메뉴에서 최적인 위치에 배치했습니다. 이 액션이 이제 최상위 수준에 배치되어 마우스를 자주 사용하는 사용자도 파일, 변수 및 기타 요소의 이름을 빠르게 바꿀 수 있습니다.

선택한 텍스트가 있는 모든 위치를 강조 표시

IntelliJ IDEA은 기본적으로, 파일 내에서 선택한 텍스트의 모든 인스턴스를 자동으로 강조 표시합니다. 이에 따라 선택한 텍스트가 코드 전체에서 어디에 나타나는지 추적하기가 더 쉬워집니다. 이전 동작을 선호하는 경우 Settings(설정) | Editor(에디터) | General(일반) | Appearance(모양)에서 이 기능을 비활성화할 수 있습니다.

메시지 및 i18n 파일을 위한 새로운 아이콘

새로운 전용 아이콘이 도입되어 메시지와 i18n 파일을 구분하기가 더 쉬워졌습니다. 이 업데이트로 프로젝트에서 현지화 파일을 빠르게 찾고 관리할 수 있으므로, 구성 파일과 더 쉽게 구별이 가능합니다.

Java 소스 루트용 New(새로 만들기) 팝업 업데이트

Java 소스 루트에 파일을 추가하기 위한 New(새로 만들기) 팝업에 이제 가장 관련성 높은 옵션만 표시되어 보기가 깔끔하고 워크플로가 간소화되었습니다. 이전의 확장된 템플릿 목록을 선호하는 경우 Settings(설정) | Advanced Settings(고급 설정) | Java에서 쉽게 복원할 수 있습니다.

JSON, XML 및 YAML 파일에 플로팅 툴바 지원

JSON, XML 및 YAML 파일에 대해 플로팅 툴바를 활성화하여 컨텍스트 기반 및 AI 기반 액션에 더 쉽게 액세스할 수 있도록 했습니다. 어떤 코드라도 선택하면 여기에 사용할 수 있는 액션이 표시된 툴바가 나타납니다.

터미널

새로운 터미널 개선 사항
베타

새로운 터미널은 향상된 명령어 처리를 제공하며, UI 배치도 세밀하게 조정되어 더 원활하고 직관적인 경험을 제공합니다. 이제 터미널이 더 신속하게 반응하고 프롬프트를 더 빠르게 처리합니다. 세션이 매끄럽게 전환되고, 여러 탭에서 일관된 상태가 유지되어 워크플로가 중단되지 않습니다. 자동 완성 기능 덕에 명령어, 플래그 및 경로에 더 빠르게 액세스할 수 있으므로 수동 입력이 줄어듭니다. 또한 프롬프트 스타일, 세션 이름, 환경 변수 등의 추가적인 사용자 지정 옵션도 도입되어, 터미널 환경을 더욱 효과적으로 제어할 수 있습니다.

버전 관리 시스템

풀 및 병합 요청의 제목과 설명 생성

AI Assistant가 IDE에서 바로 풀 및 병합 요청의 제목과 설명을 정확하게 생성하여, 워크플로를 간소화하고 설명을 명확하고 간결하게 만듭니다.

Find in Files(파일에서 찾기) 업데이트

Find in Files(파일에서 찾기) 기능이 새로운 검색 범위인 Project Files Excluding Git-Ignored(프로젝트 파일에서 Git 무시 파일 제외)로 향상되었습니다. 이 옵션을 사용하면 .gitignore 파일에서 무시된 모든 파일이 검색 결과에서 제외되므로 프로젝트를 검색할 때 관련 코드에만 집중할 수 있습니다.

백그라운드에서 이루어지는 커밋 전 검사를 비활성화하는 옵션

이제 Settings(설정) | Version Control(버전 관리) | Commit(커밋)에서 새로운 Run advanced checks after a commit is done(커밋 완료 후 고급 검사 실행) 옵션을 사용하여 커밋 프로세스 중에 백그라운드 검사를 관리할 수 있습니다. 이 설정을 사용하면 커밋한 후 테스트와 검사를 실행할지 여부를 결정할 수 있습니다. 커밋하기 전에 이러한 검사를 완료하려면 이 기능을 비활성화하면 됩니다.

시작 화면의 브랜치 이름

시작 화면에 이제 브랜치 이름이 표시되어 여러 프로젝트 버전을 다룰 때 체계적으로 정리하고 작업 디렉터리 사이를 쉽게 전환할 수 있습니다.

디버거

HotSwap 기능의 UX 개선

HotSwap 기능을 더 쉽게 직관적으로 사용할 수 있습니다. 이 기능을 사용하면 애플리케이션을 다시 시작하지 않고도 디버그 세션 중에 수정된 클래스를 다시 로드할 수 있습니다. 이제 활성화된 디버거 세션에서 코드를 편집할 때, IntelliJ IDEA가 자동으로 변경 사항을 탐지하여, 사용자에게 에디터의 간편한 버튼을 눌러 변경 사항을 다시 로드하라는 메시지를 표시합니다. 이를 통해 실시간 코드 업데이트가 가능해져 개발 프로세스가 간소화됩니다. 단, 특히 구조적 변경의 경우, HotSwap에 몇 가지 제한 사항이 있습니다. 자세한 내용은 여기에서 확인할 수 있습니다.

예외 중단점 생성을 위한 인텐션 액션

이제 에디터에서 예외 중단점을 설정할 수 있습니다. throw 또는 catch 위치에 있는 동안, ⌥↩(macOS) 또는 Alt+Enter(Windows/Linux)를 눌러 컨텍스트 메뉴를 열고, Enable exception breakpoint(예외 중단점 활성화)를 선택합니다. 이 새로운 기능을 사용하면 Breakpoints(중단점) 대화상자를 열거나 콘솔에서 스택 추적을 찾아볼 필요가 없으므로 예외 중단점을 설정하기가 보다 편리해집니다.

줄 실행 시간 힌트

IntelliJ IDEA 2024.3에서는 여러 줄의 실행 시간을 측정하려고 할 때, 로그와 타이머로 코드를 복잡하게 만들 필요가 없습니다. Run to Cursor(커서 위치까지 실행) 액션을 호출하면 에디터의 여백에서 각 줄의 실행 시간을 바로 볼 수 있습니다. 여백에서 이 힌트를 사용하여 호출된 메서드까지 자세히 살펴보고, 해당 메서드의 줄에도 표시된 실행 시간 데이터를 볼 수 있으므로 심층적인 분석이 가능합니다.

비동기 코드의 병합된 스택 추적

IntelliJ IDEA 2024.3에서는 작업이 한 스레드에 예약되고 또 다른 스레드에서 실행될 때 각 스레드가 자체 스택 추적을 유지하는 비동기 코드의 문제를 해결했습니다. 이제 IDE는 워커의 스택 추적만 콘솔에 출력하지 않고 병합된 스택 추적을 출력하므로, 실행 흐름을 추적하기가 더 쉬워졌습니다. 이 개선 사항은 테스트에 기본적으로 적용됩니다.

프로파일러

힙 메모리 사용량 그래프
Ultimate

이제 스레드 레인 위의 Timeline(타임라인) 탭에 힙 메모리 사용량 그래프가 표시되어 프로파일러가 개선됩니다. 이 새로운 시각화 기능은 메모리 할당을 스레드 활동과 연결하여 잠재적인 메모리 누수와 성능 병목 현상을 밝혀내는 귀중한 정보를 제공합니다.

빌드 도구

다중 모듈 프로젝트의 컴파일링 속도 향상

IntelliJ IDEA 2024.3에는 병렬 컴파일링이 기본적으로 적용됩니다. 이전 버전에서는 프로젝트 모듈이 한 번에 하나씩 컴파일링되어, 대규모 프로젝트에서는 시간이 소요되었습니다. 이제 IDE에서 컴파일링하는 모든 Maven 기반 프로젝트의 컴파일링 시간이 단축되고 CPU와 메모리 소비도 최적화되었습니다.

신뢰할 수 없는 SSL 인증서의 원활한 처리

IntelliJ IDEA는 이제 Maven 동기화 및 빌드 중에 SSL 관련 문제를 자동으로 탐지합니다. 신뢰할 수 없는 인증서가 문제의 원인인 경우, IDE가 인증서를 신뢰하여 문제를 해결하도록 제안해 주므로, 수작업은 필요하지 않습니다. 이 업데이트로 잘 드러나지 않는 SSL 오류를 찾기 위해 로그를 하나 하나 결합해 보는 추측성 작업을 하지 않아도 되며, JDK의 신뢰할 수 있는 저장소에서 인증서를 수동으로 관리하는 불편이 해소됩니다.

Maven의 분할된 로컬 저장소 지원

Maven 3.9에 도입된 기능인 Maven의 분할 로컬 저장소를 완벽하게 지원합니다. 이에 따라 사용자의 요구 사항에 맞게 로컬 저장소를 분리할 수 있습니다. 원격 저장소별로 그룹화하고, 로컬에 설치된 아티팩트를 전용 폴더에 저장하거나, 특수 접두사를 사용하여 브랜치별로 아티팩트를 분류할 수도 있습니다. 이전에는 Maven에서 분할된 저장소를 사용하면 IntelliJ IDEA에서 동기화 오류가 발생하여 빌드 또는 종속성 문제가 생길 수 있었습니다. 이제 완벽하게 지원되므로 동기화를 원활하게 수행하고 저장소를 효율적으로 관리할 수 있습니다.

프레임워크 및 기술

Spring Data 저장소에 대한 파생된 메서드 생성
Ultimate

IntelliJ IDEA는 이제 Spring Data 저장소에서 파생된 쿼리 메서드를 자동으로 생성할 수 있습니다. 파생된 쿼리 메서드가 필요한 경우, 더 이상 저장소 소스 코드를 수동으로 업데이트할 필요가 없습니다. 필요한 곳에서 메서드 이름을 입력하기만 하면, IntelliJ IDEA가 가능한 메서드 이름을 제안하고, 적절한 메서드 시그너처와 반환 타입을 제공하며, 저장소 코드를 자동으로 업데이트합니다.

HTTP 클라이언트 업데이트
Ultimate

IntelliJ IDEA 2024.3에는 $env.ENV_VAR 구문을 사용하여 HTTP 클라이언트에서 바로 환경 변수에 액세스하는 기능이 추가됩니다. 이 기능을 사용하면 더욱 유연하게 요청과 스크립트의 변수를 관리하고 사용할 수 있습니다. 또한, 이제 한 .http 파일에서 다른 파일로 요청을 한꺼번에 가져오거나 이름별로 특정 요청을 가져와 실행할 수 있습니다.

Ktor 3.0 릴리스
Ultimate

Kotlin을 사용하여 JVM에서 서버 애플리케이션을 구축하기 위한 툴킷인 Ktor 3.0이 새로운 기능과 향상된 성능으로 출시되었습니다. 이 새로운 버전은 Kotlin 2.0을 채택하고 kotlinx-io 라이브러리로 전환하여 IO 관련 작업의 성능을 향상합니다. 자세히 알아보기

GraalVM 네이티브 이미지에 대한 디버그 경험 간소화
Ultimate

Docker 컨테이너를 통해 GraalVM 네이티브 이미지의 디버그 경험이 크게 간소화되어, 이제 어떤 플랫폼에서든 네이티브 Java 애플리케이션을 빌드하고 디버그할 수 있습니다. 애플리케이션을 빌드하기 위한 컨테이너와 실행 구성에서 이를 실행하기 위한 컨테이너를 하나씩 지정하기만 하면 됩니다. 애플리케이션이 실행되면 Java 코드뿐만 아니라 어셈블리 수준에서도 애플리케이션을 디버그할 수 있습니다. 보다 간편한 설정을 돕기 위해, 필요한 모든 소프트웨어와 라이브러리가 사전 구성된 Docker 이미지가 제공됩니다.

OpenTofu 및 Terraform 개선 사항
Ultimate

이제 OpenTofu에 대한 지원이 제공됩니다. 이번 업데이트에는 암호화 방식, 키 공급자에 대한 자동 완성, 및 알려지지 않은 참조에 대한 검사가 포함됩니다.

Search Everywhere(전체 검색)를 통해 Terraform 실행 구성 액션에 액세스할 수 있으며, IDE에서 사용되지 않는 변수와 지역 변수가 자동으로 탐지되어 코드가 깔끔하게 유지됩니다. Init, Validate, Plan, Apply, Destroy에 대한 제어가 개선되었고, Run Configuration(실행 구성) 양식이 간소화되었습니다. 또한, 개선된 사용 위치 표시와 사용되지 않는 리소스에 대한 경고로 탐색 기능이 향상되었고 비활성화된 코드를 식별하기가 쉬워졌습니다.

Dev Container 지원 개선
Ultimate

Dev Container 빌드가 이제 원격 Docker 엔진에서 더 원활하게 작동하여 로컬 디렉터리에 원격으로 액세스할 수 없는 경우 오류가 발생하지 않습니다. 개선된 이미지 빌드와 안정적인 연결을 포함해 WSL의 안정성도 향상되었습니다.

devcontainer.json 파일은 features를 보다 일관되게 처리하고, 새로운 updateRemoteUID 옵션은 올바른 사용자 ID를 설정하여 액세스 충돌을 방지합니다. devcontainer.json 파일이나 Add currently modified settings from IDE(현재 수정된 설정을 IDE에서 추가) 버튼을 이용해 Dev Container의 IDE 설정을 사용자 지정할 수 있으며, 사용 가능한 모든 옵션이 자동 완성됩니다.

Docker Compose 개선 사항
Ultimate

IntelliJ IDEA 2024.3은 Docker Compose를 더욱 폭넓게 지원합니다. 이제 env_file 자동 완성에서 .env 파일에 우선 순위가 주어져 환경 설정이 더 빨라졌습니다. 새로운 빌드 옵션인 cache_to, no_cache, tags, platforms를 이용하면 캐시 처리 및 플랫폼 타기팅을 더 강력하게 제어할 수 있습니다. depends_on.requireddepends_on.restart에 대한 처리가 향상되어 종속 컨테이너의 시작과 종료 순서를 보다 효과적으로 관리할 수 있습니다.

deploy.placement.preferences, deploy.resources.pids, deploy.resources.reservations.devices와 같은 새로운 키를 사용하면 유연한 서비스 배치와 리소스 제한이 가능합니다. build.additional_contextsbuild.privileged를 통해서는 다중 컨텍스트 빌드와 권한 있는 빌드가 지원됩니다.

cgroup 구성, 사용자 지정 extra_hosts 매핑, healthcheck.start_interval 등의 옵션이 추가되었습니다. 향상된 포트 설정과 secrets.environment 덕분에 이제 환경 변수를 통한 비밀 관리가 간소화되었습니다.

WSL 프로젝트에 대한 지원 개선
Ultimate

Linux용 Windows 하위 시스템(WSL)에서 호스팅되고 Windows 기반의 개발자가 IDE에서 여는 프로젝트의 안정성이 지속적으로 개선되고 있습니다. 구체적으로, 심볼릭 링크에 대한 지원을 도입하고, WSL과의 상호 작용을 위해 Hyper-V 소켓으로 전환하여 성능을 향상했습니다. WSL을 포함해 원격 환경에서 성능을 개선하기 위해 중요한 플랫폼 변경 작업을 계속 진행하고 있습니다.

Kubernetes

네트워크 정책 지원
Ultimate

IDE에서 이제 클러스터 내의 pod 간 네트워크 트래픽을 관리하는 데 사용되는 네트워크 정책을 지원합니다. 이를 통해 어떤 pod가 다른 pod, 서비스 또는 외부 소스와 트래픽을 주고 받을 수 있는지 정의할 수 있습니다. 네트워크 정책의 주된 목적은 네트워크 트래픽을 제어 및 제한하고, pod 격리를 관리하며, 보안을 보장하고, 외부 액세스를 규제하는 것입니다.

웹 개발

보다 깔끔해진 디렉터리 검색 결과
Ultimate

이제 프로젝트 디렉터리에서 Find in Files(파일에서 찾기)를 사용할 때, IntelliJ IDEA가 기본적으로 node_modules 결과를 ​​제외하여 관련 없는 파일로 인한 혼란을 줄여줍니다. Settings(설정) | Advanced Settings(고급 설정)에서 Search in library files when “Directory” is selected in Find in Files(파일에서 찾기에서 '디렉터리'가 선택된 경우 라이브러리 파일에서 검색) 옵션을 활성화하면, 이전 동작을 복원할 수 있습니다.

프레임워크 구성 요소 탐색 및 이름 변경 개선
Ultimate

Vue, Svelte 및 Astro 구성 요소에 대한 에디터 내 힌트를 개선했습니다. Show component usages(구성 요소 사용 위치 표시) 액션으로 이제 가져오기와 마크업 템플릿 모두에서 사용 위치를 찾을 수 있습니다. 또한 일반 파일 참조를 검색할 때 구성 요소 사용 위치를 제외하기 위해 Show Component Usages 필터도 추가했습니다. Rename(이름 변경) 리팩터링도 업데이트되어 구성 요소 파일의 이름을 바꿀 때 사용 위치를 포함하는 옵션이 추가되었습니다.

Angular 관련 개선 사항
Ultimate

Angular 19를 사용하는 프로젝트의 경우 IntelliJ IDEA는 이제 구성 요소, 지시문 및 파이프에 독립 실행형 모드를 기본적으로 적용합니다. 독립 실행형 및 비독립 실행형 구성 요소 간에 쉽게 전환하도록 빠른 수정이 추가되었습니다. 사용되지 않은 독립된 import 문은 코드 서식 재지정 중이나 새로운 검사를 통해 자동으로 제거될 수 있습니다. @let 문에 대한 지원도 개선되었습니다.

데이터베이스 도구

Text-to-SQL: AI로 생성된 결과의 에디터 내 Diff
Ultimate

에디터에서 AI Assistant로 작업할 때의 경험을 개선했습니다. 이제 AI Assistant에게 코드 조각으로 어떠한 작업을 요청하면 에디터 영역에 원래 코드와 생성된 코드의 Diff가 포함됩니다. AI Assistant의 제안은 다른 색상으로 강조 표시되며 여백에 Revert(되돌리기) 아이콘이 표시됩니다. 또한, 쿼리 결과를 Diff에서 편집할 수 있습니다. 사용자의 변경 사항도 같은 방식으로 강조 표시됩니다. 예를 들어, AI Assistant에게 쿼리를 사용하여 더 많은 데이터를 가져오도록 요청한 다음, 생성된 결과에 ORDER BY 절을 추가할 수 있습니다.

AI Assistant로 SQL 오류 처리
Ultimate

AI Assistant를 사용하여 SQL 쿼리 실행 오류를 처리하는 데 유용한 몇 가지 새로운 액션이 오류 메시지 영역에서 제공됩니다. Explain with AI(AI로 설명)를 선택하면 AI 채팅이 열리고 자동으로 프롬프트가 전송되며 AI Assistant가 오류 설명과 함께 응답합니다. Fix with AI(AI로 수정) 액션을 이용하면 쿼리 실행 오류의 수정안이 에디터에 생성됩니다.

과도한 수의 JOIN 절 검사
Ultimate

어떤 경우에는 과도한 수의 JOIN 절이 포함된 쿼리를 실행하면 성능이 저하될 수 있어 실행이 권장되지 않습니다. 이제 에디터가 이러한 쿼리를 탐지하고 강조 표시합니다. 이 검사는 IDE 설정에서 활성화할 수 있습니다. 활성화하려면 Editor(에디터) | Inspections(검사)로 이동한 후 SQL 섹션을 펼친 다음, Excessive JOIN count(과도한 JOIN 수)를 선택하세요.

플로팅 페이지 지정 툴바
Ultimate

그리드 페이지 지정을 데이터 에디터에서 더 명확하게 볼 수 있도록, 제어 기능을 툴바에서 데이터 에디터의 하단 중앙으로 옮겼습니다.

MySQL과 MariaDB를 위한 조각 검사와 스마트 새로고침
Ultimate

IntelliJ IDEA가 이제 조각 검사를 지원합니다. 이전에는 내부 검사가 MySQL이나 MariaDB 데이터베이스에 있는 스키마의 전체 내부 검사만 수행할 수 있었고 단일 객체의 메타데이터를 새로 고칠 수는 없었습니다. 또한, 콘솔에서 DDL 구문이 실행되어 데이터베이스 스키마 내의 객체를 수정할 수 있게 되면, 그때마다 전체 스키마를 대상으로 전체 내부 검사가 실시되었습니다. 이는 시간이 많이 소요될 뿐만 아니라 워크플로에 지장을 주는 경우도 많았습니다.

이제 IntelliJ IDEA는 DDL 구문을 분석하고, 어떤 객체가 영향을 받는지 판단하여 영향을 받는 객체만 새로 고칠 수 있습니다. Database Explorer(데이터베이스 탐색기)에서 하나의 항목을 선택하고 Refresh(새로고침) 액션을 호출하면, 예전처럼 전체 스키마가 아니라 해당 객체만 새로 고쳐집니다.

기타

Linux에서 글로벌 메뉴 지원 중단

Linux 사용자는 2024.3 버전부터 IntelliJ IDEA에서 글로벌 메뉴 지원이 중단되었음을 확인해 주세요.