PhpStorm 2023.2의 새로운 기능

주요 업데이트 사항은 다음과 같습니다.

  • PHP 제네릭 개선 사항
  • Laravel Pint 지원
  • PHP 어설션 네이티브 지원
  • AI Assistant(제한적 액세스)
  • GitLab 통합 기능
  • Search Everywhere(전체 검색)의 텍스트 검색

AI Assistant 제한적 액세스

이번 버전에 추가된 주요 새로운 기능은 AI Assistant로, AI 기능을 통해 코딩 작업에 도움을 주도록 설계되었습니다. 현재 AI Assistant에서 처음으로 선보이는 기능으로는 AI Assistant와 채팅, 문서 주석 자동 작성, 이름 제안, 커밋 메시지 생성 등이 있습니다.

AI 채팅

AI 채팅

대형 언어 모델(LLM)과 커뮤니케이션하고, 질문을 하고, 코드 관련 도움을 받는 데 AI Assistant 도구 창을 활용할 수 있습니다. PhpStorm은 프로젝트에서 사용되는 PHP 언어 수준 및 프레임워크와 같은 프로젝트별 컨텍스트를 제공합니다. AI로 만족스러운 코드 결과가 생성되면 Insert Snippet at Caret(캐럿 위치에 스니펫 삽입)을 클릭하거나 간단히 복사하여 붙여 넣는 방식으로 코드를 에디터에 삽입할 수 있습니다.

AI 액션

AI 액션

이제 Alt+Enter 컨텍스트 메뉴에서 다양한 AI Assistant 기능을 지원하는 AI Actions(AI 액션)이 제공됩니다.

코드 문서

코드 문서

AI Assistant는 문서 생성 기능도 제공합니다. Alt+Enter를 누르고 AI Actions(AI 액션) 메뉴를 선택한 후 Write Documentation(문서 작성)을 선택하세요. 또는 AI Assistant가 채팅을 통해 코드를 설명해 드립니다.

커밋 메시지 생성

커밋 메시지 생성

이제 커밋 메시지 대화상자에 Generate Commit Message with AI Assistant(AI Assistant로 커밋 메시지 생성) 버튼이 제공됩니다. 이를 클릭하여 변경 내용의 Diff를 LLM으로 보내면 변경 내용을 설명하는 커밋 메시지가 생성됩니다.

액세스 방법

액세스 방법

AI Assistant는 JetBrains AI 서비스를 기반으로 합니다. AI 기능을 이용하려면 AI Assistant 플러그인을 직접 설치하고 JetBrains Account를 사용해 JetBrains AI 서비스에 로그인해야 합니다. 가장 간단한 방식은 툴바의 More tool windows(도구 창 더보기) 아이콘을 클릭한 후 AI Assistant를 선택하여 표시된 메시지를 따르는 것입니다.

현재 AI Assistant 기능에 액세스하는 것은 대기자 명단에 의해 제한될 수 있습니다. AI Assistant의 작동 방식과 코드 및 데이터 처리 방식을 자세히 알아보려면 이 블로그 글을 참조하세요.

새로운 AI 기능을 사용해 보고 아이디어 및 제안 사항을 보내주세요. AI Assistant 도구 창에서 Share your feedback(피드백 공유)을 클릭하면 됩니다. 또한 언제든 YouTrack에서 AI Assistant 버그를 보고해 주세요.

PHP

PHP의 제네릭

새로운 제네릭 이름 변경 리팩터링

새로운 제네릭 이름 변경 리팩터링

제네릭 타입에서 Shift+F6을 누르고 이름 변경을 시작하면 PhpStorm이 전체 코드베이스에서 이름을 자동으로 업데이트합니다.

또는 Ctrl+T를 누르고 Rename(이름 변경)을 선택해도 동일한 기능을 사용할 수 있습니다.

제네릭의 'static' 타입 지원

제네릭의 static 타입 지원

이 부문에서 가장 많은 기대를 받아온 기능 중 하나는 제네릭 템플릿의 static 참조 지원이었습니다.

이번 릴리스에서 해당 기능이 드디어 구현되었으며, 앞으로도 최고의 PHP 제네릭 지원을 위해 노력하겠습니다.

템플릿에서 @mixin 지원

템플릿에서 @mixin 지원

제네릭 @mixin 어노테이션을 사용하면 데코레이터 및 기타 패턴을 활용하여 동작을 객체에 삽입할 수 있습니다. PhpStorm은 적절한 경우 이에 대한 코드 완성 기능을 제공합니다.

불필요한 PHPDocs 생성 제거

불필요한 PHPDocs 생성 제거

이제 PhpStorm은 더 많은 액션에서 자동 생성된 PHPDoc 블록의 불필요한 선언을 삭제하고 문서 주석에서 불필요한 특정 PHPDoc 태그를 보고합니다.

생성된 getter 및 setter의 경우 이제 PhpStorm은 선언된 타입이 없을 때만 PHPDoc 주석을 추가합니다.

getter 및 setter 메서드 생성을 호출하려면 Add getter/setter(getter/setter 추가) 인텐션 액션(Alt+Enter)을 사용하거나 Generate code(코드 생성) 액션(Alt+Insert)을 사용하세요.

Laravel Pint 기본 지원

Laravel Pint 기본 지원

PhpStorm has added Laravel Pint to the list of supported quality tools. Laravel Pint를 통해 보고되는 코드 스타일 문제는 PhpStorm의 자체 코드 검사에서처럼 취급됩니다.

Laravel Pint 통합 기능을 구성하려면 Settings(설정) | PHP | Quality Tools(품질 도구)에서 Laravel Pint 섹션으로 이동하세요.

또한 외부 서식 지정 도구로 Laravel Pint를 설정할 수도 있습니다. 이렇게 하면 Reformat Code(코드 서식 다시 지정) 액션(Ctrl+Alt+L)을 사용해 Laravel Pint로 발견된 모든 문제를 한 번에 수정할 수 있습니다.

Laravel Pint를 PhpStorm 검사로서 활성화하려면 Settings(설정) | Editor(에디터) | Inspections(검사)에서 PHP | Quality Tools(품질 도구)를 선택한 후 Laravel Pint validation(Laravel Pint 검증) 체크박스를 선택하면 됩니다.

검사가 활성화되면 Laravel Pint를 통해 발견된 문제가 열려 있는 PHP 파일에서 강조 표시되거나 Problems(문제) 도구 창에서 보고됩니다.

PHP 어설션 검사

PHP 어설션 검사

이번 릴리스에서 코드 분석 기능의 로직이 확장되어 PHP 어설션을 지원합니다.

PhpStorm은 항상 true 또는 false인 불필요한 어설션을 탐지해 강조 표시합니다. This is available for PHP’s built-in assert() constructs, PHPUnit’s assertion methods, and methods from the webmozart/assert and beberlei/assert libraries.

사용자 경험

새로운 UI 사용 시 프로젝트 헤더 색상 지원

새로운 UI 사용 시 프로젝트 헤더 색상 지원

이제 각 프로젝트에 고유한 색상과 아이콘을 지정하여 작업공간에서 쉽게 구분할 수 있습니다.

기본적으로 헤더에서 사전 정의된 색상이 제공되지만, 색상을 사용자 지정할 수 있습니다. 헤더를 마우스 오른쪽 버튼으로 클릭한 후 Change Toolbar Color(툴바 색상 변경) 옵션을 누르고 원하는 색상을 선택하면 됩니다.

전체 검색의 텍스트 검색

전체 검색의 텍스트 검색

Search Everywhere(전체 검색)(Shift 두 번 누르기)는 파일, 클래스, 메서드, 액션 및 설정을 검색하는 데 사용됩니다.

이제 여기에 Find in Files(파일에서 찾기)와 유사한 텍스트 검색 기능이 제공됩니다. 텍스트 검색 기능을 사용하면 지정된 쿼리에 다른 검색 결과가 거의 또는 전혀 없을 때 텍스트 검색 결과가 표시됩니다.

메인 툴바 사용자 맞춤 기능 개선

메인 툴바 사용자 맞춤 기능 개선

새로운 UI 적용 시 드롭다운 메뉴를 사용해 툴바에 추가할 액션을 빠르게 선택할 수 있습니다.

위젯을 마우스 오른쪽 버튼으로 클릭하고 Add to Main Toolbar(메인 툴바에 추가)를 선택한 다음, 사용 가능한 옵션을 둘러보세요.

Windows 및 Linux의 메인 툴바의 햄버거 메뉴 재작업

Windows 및 Linux의 메인 툴바의 햄버거 메뉴 재작업

Windows 및 Linux의 새 UI에서 메인 툴바의 햄버거 메뉴의 동작을 개선했습니다. 메뉴 아이콘을 클릭하면 이제 요소가 툴바 위에 가로로 표시됩니다.

또한 이제 이 메뉴를 별도의 툴바로 전환하는 옵션이 있습니다. 이 옵션을 사용하려면 View(보기) | Appearance(모양) | Main menu as a Separate Toolbar(메뉴를 별도 툴바로 표시)로 이동하면 됩니다.

새 UI에 추가된 밝은 헤더가 있는 밝은 테마

새 UI에 추가된 밝은 헤더가 있는 밝은 테마

창 헤더, 툴팁 및 알림 풍선에 어울리는 밝은 색상을 제공하는 Light with Light Header(밝은 헤더가 있는 밝은 테마)라는 또 다른 테마가 도입되었습니다.

실행 구성 고정

실행 구성 고정

실행 구성을 Pinned(고정) 섹션에 추가하려면 이름 옆에 있는 케밥 메뉴(점 3개)를 열고 Pin(고정)을 선택합니다. 필요에 따라 고정된 구성을 드래그앤드롭하여 간편하게 다시 배치할 수 있습니다.

프로젝트 뷰에서 수정 시간별로 파일 정렬

프로젝트 뷰에서 수정 시간별로 파일 정렬

이제 Project(프로젝트) 뷰에서 수정 시간을 기준으로 파일을 정렬할 수 있습니다. 이 기능을 사용하려면 Project 뷰에서 케밥 메뉴(점 3개)를 열고 Tree Appearance(트리 모양) | Sort by Modification Time(수정 시간을 기준으로 정렬)을 선택하면 됩니다.

HTTP 클라이언트 개선 사항

OpenAPI 및 Swagger 파일을 위한 Redoc UI 테스트 버전

OpenAPI 및 Swagger 파일을 위한 Redoc UI 테스트 버전

Redoc 및 Swagger UI 간 전환이 지원되므로 OpenAPI 문서를 미리 볼 수 있습니다.

Redoc 통합 기능을 활용하면 PhpStorm에서 바로 Try it 콘솔에 액세스하고, 이를 사용해 매개변수를 설정하고 API로 요청을 전송할 수 있습니다.

HTTP 클라이언트 CLI에서 GraphQL 및 WebSocket 지원

HTTP 클라이언트 CLI에서 GraphQL 및 WebSocket 지원

특수한 HTTP 클라이언트 CLI를 사용해 .http 파일을 요청으로 실행할 수 있습니다.

이번 릴리스부터 이 도구를 사용해 GraphQL API와 통합하고 서비스와 WebSocket 연결을 설정할 수 있습니다.

HTTP 클라이언트에서 JavaScript 가져오기 지원

HTTP 클라이언트에서 JavaScript 가져오기 지원

이제 가져온 모듈을 통해 HTTP 클라이언트 요청 핸들러에 대한 공통 JavaScript 코드를 공유할 수 있습니다.

VCS/Git/GitLab

GitLab 병합 요청 지원

GitLab 병합 요청 지원

PhpStorm 2023.2는 GitLab 통합 기능을 지원하므로 IDE에서 바로 Merge Requests(병합 요청)를 수행할 수 있습니다.

줄별로 변경 내용 커밋

줄별로 변경 내용 커밋

PhpStorm은 코드 청크에서 변경된 특정 줄만 선택적으로 커밋하는 새로운 세분화된 커밋을 지원합니다.

파일 Diff를 열려면 편집한 청크 내의 줄을 선택하고 컨텍스트 메뉴에서 Include these lines into commit(이 줄을 커밋에 포함)을 호출합니다. 각 줄에 표시된 체크박스를 통해 해당 줄을 선택하거나 선택되지 않은 상태로 남겨둘 수 있습니다.

플러그인 개발자를 위한 LSP 지원

PhpStorm에서 (아직) 네이티브 지원이 제공되지 않는 일부 언어 및 기술이 있으나, 언어 서버로 지원이 제공될 수 있습니다. 따라서 플러그인 개발자는 PhpStorm에서 LSP API를 사용하고 특정 LSP 서버와 통합할 수 있습니다.

자신만의 프로그래밍 언어나 프레임워크를 만들었다면 LSP 서버와 플러그인을 작성하여 IDE에서 지원을 받을 수 있습니다.

현재 LSP 지원에는 오류 및 경고 강조 표시, 빠른 수정, 코드 완성, 선언으로 이동 등이 포함됩니다.

JetBrains Qodana 번들 제공

PhpStorm 2023.2에는 모든 CI/CD 파이프라인에 적합하게 설계된 스마트 정적 분석 엔진을 갖춘 코드 품질 플랫폼인 Qodana가 통합되었습니다.

클릭 몇 번만으로 분석을 시작하고 전체 프로젝트의 문제 목록을 본 다음, 원하는 CI/CD 시스템에서 Qodana를 구성하여 품질 게이트를 설정하고 서버 측 검사를 실행할 수 있습니다.

Qodana가 CI/CD에 구성되면 IDE를 나가지 않고도 별도의 설정 없이 서버 측 분석 결과를 확인할 수 있습니다.

웹 개발

JavaScript 및 TypeScript에 대한 오류 서식 지정 개선

JavaScript 및 TypeScript에 대한 오류 서식 지정 개선

JavaScript와 TypeScript 관련 오류 및 경고가 더 읽기 쉬운 형식으로 표시되어 코드에서 문제를 더 쉽게 찾을 수 있습니다.

CSS 중첩 지원

CSS 중첩 지원

We’ve implemented syntax support and an inspection that alerts you if a CSS nested selector starts with an identifier or functional notation.

Vue Language Server 지원

Vue Language Server 지원

Vue Language Server(VLS) 지원은 빠른 탐색과 문서 팝업에서 더 정확한 오류 탐지와 개선된 타입 정보를 제공합니다. 기본적으로 VLS는 TypeScript 5.0 이상의 버전에서 사용됩니다. Settings(설정) | Languages & Frameworks(언어 및 프레임워크) | TypeScript | Vue에서 모든 TypeScript 버전에 VLS 통합 기능을 사용하도록 Vue 서비스를 설정할 수 있습니다.