PyCharm 2024.3의 새로운 기능

인라인 AI 프롬프트 작성 및 dataclass_transform 데코레이터에 대한 코딩 지원

AI Assistant

인라인 AI 프롬프트 작성

에디터에서 바로 AI 프롬프트 작성

가장 작업을 많이 하는 곳인 에디터에서 바로 AI Assistant를 사용할 수 있습니다. 코드에 오류가 있어서 곤란하신가요? 문서나 테스트를 추가해야 하나요? 에디터에서 새 줄에 요청을 입력하세요. PyCharm이 자동으로 사용자의 자연어 요청을 인식하고 응답을 생성합니다. 새로운 줄이 들여쓰기된 경우 요청 앞에 $ 또는 ? 심볼을 입력하세요.

AI Assistant가 변경한 줄의 여백에 PyCharm이 보라색 표시를 남기므로 업데이트된 곳을 쉽게 확인할 수 있습니다.

처음으로 받은 제안이 마음에 안 든다면 Tab을 눌러 새로운 제안을 생성할 수 있습니다. 여백에서 보라색 블록을 클릭하거나 Ctrl+\(Windows) 또는 Cmd+\(macOS)를 눌러 초기 입력을 수정할 수도 있습니다.

이 기능은 Python, JavaScript, TypeScript, JSON, YAML 파일에서 사용할 수 있습니다.

인라인 프롬프트의 컨텍스트 좁히기

특정 인수 때문에 도움이 필요하신가요? AI Assistant가 응답할 때 사용하는 컨텍스트를 원하는 대로 좁힐 수 있습니다. 캐럿을 관련된 컨텍스트에 두고 $ 또는 ? 심볼을 입력한 다음 작성을 시작하세요. PyCharm이 프롬프트를 인식하고 현재 컨텍스트를 고려하여 제안을 생성합니다.

문서 생성

PyCharm이 이제 docstring 서식을 탐지하면 Generate with AI Assistant(AI Assistant로 생성) 인레이 힌트를 표시합니다. 이 기능으로 AI를 활용하여 문서 생성 프로세스를 가속화할 수 있습니다.

향상된 컨텍스트 관리 기능

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

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

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

Python 콘솔에서 AI 채팅의 코드 실행

간단하게 AI 채팅의 코드 스니펫을 Python 콘솔에서 실행하고 AI Assistant의 코드 제안을 빠르게 반복하세요. 코드 스니펫의 오른쪽 상단 모서리에 있는 녹색 <0>Run(실행) 버튼을 클릭하여 제안된 코드 조각이 어떻게 동작하는지 확인하세요.

PyCharm 문서에 즉시 액세스

AI Assistant가 최신 PyCharm 문서를 기반으로 주어진 작업을 PyCharm에서 실행하는 가장 좋은 방법을 제안합니다. /docs 명령어를 사용하여 작업을 가장 효율적으로 완료하는 방법에 관한 맞춤형 힌트를 얻으세요.

프롬프트에서 데이터프레임과 변수를 인식하는 기능

AI Assistant는 이제 Notebook의 데이터프레임과 변수를 처리할 수 있습니다. 데이터프레임이나 변수 이름 앞에 #만 붙이면 AI Assistant가 이를 분석하는 데 도움을 줍니다. AI Assistant는 데이터프레임의 요약 및 통계에 직접 액세스하여 최상의 결과를 제공할 수 있습니다.

또한, 채팅에서 바로 Jupyter 도구 창의 Variables(변수) 뷰로 이동할 수 있습니다. 데이터프레임이나 변수를 언급할 때 클립 아이콘을 클릭하기만 하면 됩니다.

for 루프를 리스트 컴프리헨션으로 변환하는 기능

AI Assistant가 방대한 for 루프를 리스트 컴프리헨션으로 쉽게 바꿔 주므로 이제 코드를 더 빠르게 리팩터링할 수 있습니다. 이 기능은 중첩 루프와 while 루프를 포함한 모든 for 루프에서 작동합니다.

AI Assistant로 SQL 오류 처리

AI Assistant로 SQL 쿼리 실행 오류를 처리할 수 있도록 몇 가지 유용한 액션을 구현했습니다. PyCharm이 이제 각 오류 메시지의 오른쪽 끝에 Explain with AI(AI로 설명)Fix with AI(AI로 수정) 액션을 표시합니다.

Explain with AI(AI로 설명)는 AI 채팅을 열고, 자동으로 프롬프트를 전송하여 오류에 대한 AI Assistant의 설명을 제공합니다.

Fix with AI(AI로 수정)는 에디터 내에서 오류 실행 오류의 수정을 생성합니다.

이러한 신규 액션은 Fix SQL Problem Under Caret(캐럿 위치의 SQL 문제 수정)Explain SQL Problem Under Caret(캐럿 위치의 SQL 문제 설명) 인텐션 액션과 유사하게 동작합니다.

이 기능을 사용하여 적절한 설명과 수정 제안을 받으려면 데이터베이스 스키마를 연결해야 합니다.

로컬 여러줄 AI 코드 완성 PyCharm Professional

전체 줄 코드 완성에 사용되는 JetBrains의 독자적 ML 모델 기반의 로컬 여러 줄 AI 코드 완성 제안이 PyCharm Professional에서 제공됩니다. 모델 트레이닝에는사용자의 데이터가 사용되지 않습니다.

로컬 여러 줄 코드 완성은 조건을 처리하거나 공통 코드 패턴이나 상용구 섹션을 완료할 때 일반적으로 반복문과 같이 논리적인 과정의 다음 단계를 예측할 수 있는 시나리오에서 2~4줄의 코드를 생성합니다.

Python

dataclass_transform 데코레이터에 대한 코딩 지원(PEP 681)

dataclass_transform 데코레이터를 사용하는 라이브러리를 통해 생성된 사용자 지정 데이터 클래스로 작업할 때 이제 표준 데이터 클래스에 대한 모든 지능적인 코딩 지원이 IDE에서 제공됩니다. 예를 들어, 생성자 시그니처에 대한 속성과 타입 추론에 코드 완성 기능을 이용할 수 있습니다.

Jupyter Notebook PyCharm Professional

여러 패키지에 대한 자동 설치

PyCharm 2024.3에서는 코드로 가져온 패키지를 손쉽게 설치할 수 있습니다. 일괄 자동 설치에 새로운 빠른 수정을 사용할 수 있기 때문에 다수의 패키지를 클릭 한 번으로 다운로드하고 설치할 수 있습니다.

Jupyter 콘솔에서 특정한 줄을 실행하는 기능

이제 PyCharm에서 전체 셀을 실행할 필요 없이 선택된 코드를 Jupyter 콘솔에서 바로 실행할 수 있습니다. 이 기능을 사용하면 특정 코드 조각의 결과물을 손쉽고 빠르게 디버그하거나 확인할 수 있기 때문에 더욱 워크플로를 유연하고 효율적으로 만들 수 있습니다.

Jupyter 테이블 출력을 Data View(데이터 뷰) 창에서 보는 기능

Jupyter 테이블 출력물을 Data View(데이터 뷰) 도구 창에서 확인하고 히트맵, 서식 지정, 슬라이싱, AI 기능과 같이 강력한 기능을 활용하여 DataFrame 분석을 개선할 수 있습니다. 간단히 Open in Data View(데이터 뷰에서 열기) 아이콘을 클릭하고 시작하세요.

지역 변수와 함수의 인라인 이름 변경

이제 대화상자를 열지 않고도 지역 변수, 함수 및 심볼의 이름을 직접 에디터에서 변경할 수 있습니다. 이름을 변경하고 싶은 엔티티를 선택한 다음 Shift+F6을 누르기만 하면 됩니다.

Data View(데이터 뷰) PyCharm Professional

코딩 없이 데이터 필터링

이제 코드 한 줄 작성하지 않고도 Data View(데이터 뷰) 도구 창과 데이터프레임에서 데이터를 필터링할 수 있습니다. 도구 창의 오른쪽 상단 모서리, 또는 데이터프레임에 있는 Filter(필터) 아이콘을 클릭하고 사용하려는 필터링 옵션을 선택하세요. 같은 창에서 필터링 결과를 즉시 확인할 수 있습니다.

이 기능은 pandas, Polars, NumPy, PyTorch, TensorFlow, Hugging Face Datasets 등 지원되는 모든 Python 프레임워크에서 작동합니다.

사용자 경험

선택된 텍스트의 찾은 위치 강조 표시

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

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

2024.2 릴리스에서 이루어진 진행 상황을 바탕으로 프로젝트 모델이 빌드되고 색인이 생성되는 동안 사용할 수 있는 필수 기능의 수를 늘리고 있습니다. 2024.3 버전에서는 색인 생성이 진행되는 동안에도 문법 및 철자 검사를 이용할 수 있습니다. 이를 통해 색인 생성이 완료될 때까지 기다리지 않고도 Markdown 문서나 문서 태그 등에 있는 오류를 찾아낼 수 있습니다.

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

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

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

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

디폴트 탭의 한도 증가

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

디버거

디버그 포트 지정 PyCharm Professional

PyCharm에서 모든 통신에 사용될 하나의 디버거 포트를 지정할 수 있어 Docker나 WSL 같이 제한된 환경에서의 디버그가 간단해집니다. 디버거 설정에서 포트를 설정한 후에 디버거가 서버로서 실행되고 IDE와 디버거 사이의 모든 통신이 지정된 포트에서 일어납니다.

데이터베이스 PyCharm Professional

플로팅 페이지 지정 툴바

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

과도한 수의 JOIN 절 검사

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

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

PyCharm이 이제 조각 검사를 지원합니다. 이전에는 내부 검사가 MySQL이나 MariaDB 데이터베이스에 있는 스키마의 전체 내부 검사만 수행할 수 있었고 단일 객체의 메타데이터를 새로 고칠 수는 없었습니다. 콘솔에서 DDL 구문이 실행되고 이러한 실행이 데이터베이스 스키마 내의 객체를 수정할 수 있을 때마다 IDE가 전체 스키마의 완전한 내부 검사를 실시했었습니다. 이로 인해 시간이 많이 소요되고 워크플로가 중단되는 경우가 많았습니다.

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

웹 개발 PyCharm Professional

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

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

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

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

VCS

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

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(커밋 완료 후 고급 검사 실행) 옵션을 사용하여 커밋 프로세스 중에 백그라운드 검사를 관리할 수 있습니다. 이 설정을 사용하면 커밋한 후 테스트와 검사를 실행할지 여부를 결정할 수 있습니다. 커밋하기 전에 이러한 검사를 완료하려면 이 기능을 비활성화하면 됩니다.

프레임워크 및 기술 PyCharm Professional

HTTP 클라이언트 업데이트

PyCharm 2024.3에는 $env.ENV_VAR 구문을 사용하여 HTTP 클라이언트에서 바로 환경 변수에 액세스하는 기능이 추가됩니다. 이 기능을 사용하면 더욱 유연하게 요청과 스크립트의 변수를 관리하고 사용할 수 있습니다. 이에 더해서 이제 .http 파일에 포함된 요청을 모두 한 번에 실행하거나 이름을 기준으로 특정 요청을 실행할 수도 있고 변수를 재정의할 수 있습니다.

Dev 컨테이너 지원 개선

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

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

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

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

Kubernetes 클러스터 로그

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

Docker Compose 개선 사항

PyCharm 2024.3은 Docker Compose를 더욱 폭넓게 지원합니다. 이제 env_file 자동 완성에서 .env 파일에 우선 순위가 주어져 환경 설정이 더 빨라졌습니다. 새로운 빌드 옵션인 cache_to, no_cache, tags, <0>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 덕분에 이제 환경 변수를 통해 비밀 관리가 간소화되었습니다.

OpenTofu 및 Terraform 기능 향상

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

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