PyCharm 2021.2의 새로운 기능

PyCharm 2021.2: 새로운 Python 3.10 기능, HTML 미리보기, 저장 시 브라우저 페이지 다시 로드, Python 콘솔에서의 협업 모드

코드 분석

Python 3.10

PyCharm에서 Python 3.10의 안정화 릴리스가 출시되기 전에 그 새로운 기능을 활용하여 얻을 수 있는 이점을 확인해 보세요. We started working on support for Python 3.10 by delivering code insight for Explicit Type Aliases (PEP 613) in PyCharm 2020.3. 그리고 이번 릴리스에서는 더 많은 PEP에 대한 지원을 도입했습니다.

패턴 일치(PEP 634, 635, 636)

Pattern Matching (PEPs 634, 635, 636)

Python 3.10에는 구조적 패턴 일치가 포함됩니다. PyCharm은 사용자가 새로운 버전에 익숙해질 수 있도록 Unused local symbols(사용되지 않는 지역 심볼)Unreachable code(도달할 수 없는 코드) 검사, matchcase 키워드에 대한 스마트 코드 완성 및 구문 강조표시, Complete Current Statement(현재 구문 완성) 액션 등, 수많은 주요 기능을 제공합니다.

현재 구문 완성
현재 구문 완성

이제 PyCharm은 match 구문 및 해당 case 블록을 완성할 수 있습니다. 사용자가 초반 match 구문 입력을 완료한 후 Complete Current Statement(현재 구문 완성)(Shift+Ctrl+Enter)을 선택하면 PyCharm이 콜론 및 case 블록의 첫 부분을 포함한 나머지를 완성합니다. 캐럿은 사용자가 case 블록의 나머지를 입력할 수 있도록 그 자리에 남겨집니다.

서식 지정 도구
서식 지정 도구

PyCharm에서 기본 제공되는 서식 지정 도구는 match 문을 인식하고 사용자가 해당 구문의 서식을 올바르게 지정할 수 있도록 도와줍니다.

공용체 타입에 사용할 수 있는 새로운 구문(PEP 604)

New syntax for union types (PEP 604)

Python 3.10에서는 공용체 타입에 Union[int, str] 대신 int | str을 사용할 수 있습니다. 이 기능은 Python의 조기 버전에서 from __future__ import annotations의 사용을 통해 이미 제공된 바 있습니다.

PyCharm은 새 구문에 대한 전반적 코드 분석(인텐션 액션 및 빠른 문서의 정보 등)을 제공합니다. 그리고 이제 새로운 구문 타입을 가진 isinstanceissubclass 인수에 대한 타입 추론도 지원합니다.

기타 개선 사항:

  • 타입 검사기가 다양한 컬렉션 타입 내 typing.Literal을 인식하여 컬렉션 요소의 특정 값을 일치시킬 수 있게 되었습니다. 이는 중첩된 컬렉션에서도 작동합니다.
  • Markdown에서 doctest 삽입을 사용하여 Python 코드가 Python 콘솔에서 실행되는 것처럼 REPL 모드로 실행을 시연할 수 있습니다.

공동 개발: Code With Me

Python 콘솔 지원

Python 콘솔 지원

이제 클라이언트 시스템 및 호스트 측 양쪽에서 Python 콘솔로 작업할 수 있도록 지원됩니다. 공동 코딩 세션 중에 게스트는 호스트가 대화형 콘솔에서 코드를 실행하는 동안 해당 코드를 검토할 수 있습니다. Code With Me의 Python 콘솔 지원은 즉시 구문 강조 표시, 검사 및 코드 완성 등의 모든 일반 PyCharm 기능으로 완벽하게 보완됩니다.

동기화된 코드 완성 기능

동기화된 코드 완성 기능

Code With Me 세션 중 Following(팔로잉) 모드에 있으면 내가 팔로잉하는 사람이 사용한 코드 완성 제안을 추적할 수 있습니다. 또한 어떤 세션 유형에서든 게스트의 코드 완성 결과가 호스트가 받은 결과와 완벽하게 일치됩니다.

기타 개선 사항:

Code With Me는 최근 미국 서부 해안과 남아프리카에서 각각 하나씩 두 개의 새로운 중계 서버 운영을 시작했습니다. 그 덕분에 ping 속도가 거의 3배 더 빨라졌습니다.

IDE 개선 사항

Python 패키지 도구 창: 사용자 지정 위치의 패키지 설치

Python 패키지 도구 창: 사용자 지정 위치의 패키지 설치

PyCharm 2021.1에서는 현재 선택한 Python 인터프리터의 패키지를 관리할 수 있도록 Python Packages(Python 패키지) 도구 창을 구현했습니다. 이제는 PyPI 저장소뿐만 아니라 VCS나 로컬 시스템의 패키지도 설치할 수 있습니다. Python Packages 툴바에서 Add Package(패키지 추가) 링크를 클릭하고 From Version Control(버전 관리에서) | From Disc(디스크에서)를 선택하세요.

접근성 업데이트

PyCharm 2021.2에는 macOS에서 스크린 리더 모드를 활성화한 상태로 코딩할 수 있도록 지원하는 여러 가지 업데이트가 포함됩니다. 이 모드를 이용하면 코드 완성 제안, 선택한 콤보 박스 및 콤보 박스 목록의 내용, Search Everywhere(전체 검색)에서의 쿼리 결과가 음성으로 지원됩니다.

기타 개선 사항:

  • 코드 서식 다시 지정 및 import 문 최적화 등, 프로젝트 저장 시 실행되는 다양한 액션이 추가되었습니다. 이 모든 액션은 Preferences(환경 설정)/Settings(설정) | Tools(도구) | Actions on Save(저장 시 액션)에 취합되어 있습니다.
  • 도구 창을 드래그 앤 드롭하여 기본 IDE 창 내 또는 별도의 창에 원하는 위치로 이동하기가 쉬워졌습니다. 도구 창의 이름 표시줄을 클릭해 계속 누른 상태로 드래그한 후 강조 표시된 영역 중 어느 곳에든 드롭하면 됩니다.
  • 시작 화면에서 프로젝트를 마우스 오른쪽 버튼으로 클릭한 후 컨텍스트 메뉴에서 Choose project icon(프로젝트 아이콘 선택)을 선택하면 사용자 지정 아이콘을 업로드할 수 있습니다.
  • 이 버전부터 한국어, 중국어, 일본어로 완전히 현지화된 UI를 이용할 수 있습니다. 현지화된 UI는 번들로 포함되지 않은 언어 팩 플러그인으로 제공되며, IDE에 쉽게 설치할 수 있습니다.

데이터베이스 Pro 전용

MongoDB 콘솔에서 필드 및 연산자에 대한 코드 완성 지원

MongoDB 콘솔에서 필드 및 연산자에 대한 코드 완성 지원

Now PyCharm can complete fields, nested fields, and fields inside aggregation expressions, as well as query operators, projection operators, update operators, and aggregation stages in the MongoDB console.

SQL 스크립트 액션으로 데이터 에디터에서 컨텍스트 라이브 템플릿 사용

SQL 스크립트 액션으로 데이터 에디터에서 컨텍스트 라이브 템플릿 사용

이제 컨텍스트 라이브 템플릿이 데이터 에디터에서 바로 작동합니다. 테이블로 작업하면서 쿼리하려는 경우, SQL scripts(SQL 스크립트) 액션으로 쉽게 해결할 수 있습니다!

프런트엔드 개발 Pro 전용

저장 시 브라우저에서 페이지 다시 로드

저장 시 브라우저에서 페이지 다시 로드

PyCharm에서는 기본 제공되는 웹 서버를 사용해 브라우저에서 HTML 파일을 미리 볼 수 있습니다. 이제 HTML, CSS, JavaScript 파일을 편집한 후 저장하면 브라우저에서 페이지가 자동으로 업데이트됩니다. 시작하려면 에디터에서 HTML 파일을 열고 에디터의 모서리를 마우스로 가리킨 뒤 사용하려는 브라우저의 아이콘을 클릭하세요. 모든 브라우저가 지원됩니다.

React useState 훅에 대한 이름 변경 리팩터링

React useState 훅에 대한 이름 변경 리팩터링

이제 PyCharm에서 useState 값과 함수의 이름이 자동으로 변경되므로 하나씩 리팩터링하느라 시간을 낭비할 필요가 없습니다. state 값에 캐럿을 놓고 Shift+F6을 누르거나 컨텍스트 메뉴를 마우스 오른쪽 버튼으로 클릭한 후 Refactor(리팩터링) | Rename(이름 변경)으로 이동하세요.

require()에 대한 자동 import 문

require()에 대한 자동 import 문

ES6 심볼을 완성할 때 PyCharm에서 누락된 import 문이 추가된다는 사실을 알고 계셨나요? 이제 CommonJS 모듈에도 이러한 기능이 적용되어 코드 완성 시 require import 문이 삽입됩니다.

기타 개선 사항:

이제 코드 완성이 비공개 npm 패키지에서 작동하므로 package.json에 새 프로젝트 종속성을 추가하기가 더 쉬워졌습니다. 공개 패키지의 경우와 마찬가지로 PyCharm에서 비공개 패키지의 최신 버전에 대한 정보를 확인할 수 있습니다.

버전 관리

커밋 전 변경 내용 검사

커밋 전 변경 내용 검사

테스트를 실행할 수 있는 기능이 추가되어, 사용 가능한 커밋 전 액션의 목록이 확장되었습니다. Before Commit(커밋 전) 섹션에서 Run Tests(테스트 실행) 체크박스를 선택하면, 적용된 변경 내용을 테스트할 수 있습니다. 또한, Analyze code(코드 분석)Cleanup(정리) 옵션 옆에 있는 Choose profile(프로파일 선택)을 클릭하여 이러한 옵션을 사용자 지정할 수 있습니다. 모든 커밋 전 검사의 진행 상황과 결과는 Commit(커밋) 영역에 표시됩니다.

기타 개선 사항:

  • GPG로 Git 커밋을 서명하는 기능을 활성화하여 커밋을 보호할 수 있습니다. 이렇게 하려면 Preferences(환경 설정)/Settings(설정) | Version Control(버전 관리) | Git으로 이동하여 Configure GPG Key(GPG 키 구성)를 클릭한 다음, 드롭다운 목록에서 해당 기능을 선택하세요.

Space 통합

소프트웨어 개발 및 팀 협업을 위한 JetBrains의 새로운 플랫폼인 JetBrains Space에서 PyCharm을 내 조직에 연결하여 프로젝트 저장소를 확인 및 복제하고 팀원의 코드를 검토할 수 있습니다. Space에 로그인하려면 시작 화면에서 Get from VCS(VCS에서 가져오기) 버튼을 클릭하고 왼쪽에서 Space를 선택한 다음, 해당 필드에 조직 URL을 입력하세요. 이제 Space와의 통합 기능을 별도 설정 없이 바로 사용할 수 있습니다.

Git 로그에서 확인할 수 있는 Space 작업 상태

Git 로그에서 확인할 수 있는 Space 작업 상태

Git 도구 창의 Log(로그) 탭에 Space 작업 상태를 나타내는 아이콘이 추가되어, 커밋 목록만 보고도 작업 진행 상황을 쉽게 추적할 수 있습니다. 아이콘을 클릭하면 해당 작업에 대한 자동화 정보가 포함된 팝업이 IDE에서 열립니다.

상태 정보가 필요 없는 경우, Log 위에 있는 눈 아이콘을 클릭하고 Show Columns(열 표시) | Space Automation(Space 자동화)을 선택하세요.

코드 검토에 브랜치 표시

코드 검토에 브랜치 표시

코드 검토를 선택하면 IDE에 관련된 브랜치가 표시됩니다. 현재 이슈를 작업하는 동안 작성된 커밋이 포함된 브랜치 목록은 Details(세부 정보) 탭에서 확인할 수 있습니다.

팀원 멘션

팀원 멘션

@ 다음에 팀원 이름을 입력해 팀원을 멘션할 수 있게 되어 Space 코드 검토에서 팀원과 커뮤니케이션하기가 더 편리해졌습니다. 이 소소하지만 유용한 기능은 타임라인과 코드 코멘트에서도 사용할 수 있습니다.

PRO 전용으로 표시된 기능은 PyCharm Professional Edition에만 지원됩니다.