DataGrip 2021.2의 새로운 기능

DataGrip 2021.2가 출시되었습니다! 2021년 두 번째 주요 업데이트인 이번 릴리스에는 다양한 향상된 기능이 포함되어 있습니다. 지금부터 새 버전에서 제공하는 기능을 살펴보겠습니다!

DDL 데이터 소스

DDL 데이터 소스 생성은 매끄럽게 데이터베이스 버전을 관리 하기 위해 장기적인 개발 과정에서 이룬 또 한 번의 도약입니다. 이를 통해 DDL 파일을 VCS 시스템에서 관리하면서 데이터베이스 구조가 업데이트될 때마다 파일을 다시 생성할 수 있습니다.

이제 실제 파일을 기반으로 DDL 데이터 소스를 생성할 수 있습니다. DDL 파일은 로컬에서 생성되고 새 데이터 소스는 이를 기반으로 합니다. 이러한 방식으로 언제든지 파일을 다시 생성하고 DDL 데이터 소스를 새로 고침할 수 있습니다.

실제로 작동하는 방식을 살펴보겠습니다.

SQL Scripts(SQL 스크립트) 컨텍스트 메뉴에 새로운 메뉴 항목인 Dump to DDL data source(DDL 데이터 소스로 덤프)를 추가했습니다.

대화 상자가 열리면 새로 생성된 파일이 저장될 폴더를 지정해야 합니다.

Generation(생성) 탭에서 이러한 DDL 파일이 생성되는 방식을 지정하세요.

마지막으로, OK(확인)를 클릭하여 DDL 데이터 소스를 만들면 됩니다.

새 파일이 있는 폴더가 프로젝트에 자동으로 첨부됩니다.

객체 생성

2021.2 버전에서는 UI를 통해 DDL 데이터 소스에서 객체를 생성할 수 있으며, 해당 파일이 로컬에 생성됩니다.

다이어그램

다음과 같은 중요한 기능이 다이어그램에 추가되었습니다.

  • 이제 테이블 주석이 표시됩니다
  • 다이어그램에 테이블 색상이 표시됩니다
  • 에지 병합을 해제할 수 있습니다

품질 개선:

DBE-13057: 다이어그램을 그리는 알고리즘을 개선하여 객체 이름이 더 이상 관계있는 선과 겹치지 않습니다.

DBE-13264: 저장 시 메모가 더 이상 손실되지 않습니다.

코드 에디터

로컬 기록에서 검색

Local History(로컬 기록)에서 특정 리비전을 찾고 있다면 텍스트 검색이 도움이 될 수 있습니다!

소스의 로컬 기록

DataGrip은 이제 객체 소스 코드에 대한 로컬 변경 사항을 추적합니다. 이 기능은 프로시저 및 함수로 작업할 때 특히 유용할 수 있습니다.

모든 객체의 소스가 파일에 저장되기 때문에 모든 외부 변경 사항도 로컬 변경 사항으로 간주됩니다. 데이터베이스를 내부 검사하면 이 파일이 새로 고침됩니다.

Local History(로컬 기록) 팝업을 사용하여 함수 또는 프로시저에 대한 변경 사항을 추적할 수 있습니다. 모든 외부 변경 사항은 두 번의 내부 검사 실행 중에 발생한 경우 하나의 변경 사항으로 간주됩니다.

다시 돌아온 긴 탭 이름

일부 사용자들이 단축된 탭 이름이 마음에 들지 않는다는 피드백을 제공함에 따라 긴 탭 이름으로 다시 되돌리는 옵션을 도입했습니다. 긴 탭 이름을 선호하는 경우, Shorten Tab Titles(탭 제목 줄이기) 옵션을 선택 해제하세요.

선택 항목 접기

에디터 최대화/분할 정규화 액션

탭을 두 번 클릭하거나 Shift+Ctrl+F12를 눌러 실행하는 Hide All Tool Windows(모든 도구 창 숨기기) 액션이 사용된 지는 오래되었습니다. 많은 사용자들이 이 옵션을 Maximize Editor(에디터 최대화) 액션으로 생각했고, 실제로 그렇게 작동했습니다!

분할 메커니즘을 도입한 후, 상황이 더욱 복잡해졌습니다. 이 액션으로 분할 탭이 숨겨지는 것인가요? 그래서 다음과 같은 조치를 취했습니다.

  • Hide All Tool Windows(모든 도구 창 숨기기) 액션으로 더 이상 분할 탭이 숨겨지지 않습니다.
  • 새로운 Maximize Editor/Normalize Splits(에디터 최대화/분할 정규화) 액션은 현재 탭을 최대화하지만 도구 창을 숨기지는 않습니다.

코드 완성

코드 완성 범위

이제 코드 완성 목록에 표시되어야 하는 객체를 정의할 수 있습니다. 구체적으로, 스키마 전환기(또는 검색 경로)의 객체, 현재 범위의 객체 또는 모든 스키마의 객체만 표시하도록 정의할 수 있습니다.

  • 검색 경로 객체만 제안: 스키마 전환기에서 선택한 스키마의 객체만 제안됩니다.
  • 현재 범위의 객체 제안(디폴트 설정): 이 목록은 객체로 채워집니다. DataGrip은 스키마 전환기, USE 문 및 디폴트 스키마의 객체 집합을 제한 없이 올바르게 확인할 수 있습니다.
  • 사용 가능한 모든 스키마의 객체 제안: 이 목록에는 사용 가능한 모든 스키마의 모든 객체가 포함됩니다.

스마트 완성으로 관리할 수도 있습니다. 스마트 완성은 코드 완성 단축키(보통 Ctrl+Space)를 여러 번 누르면 호출됩니다.

  • 한 번 누르거나 자동으로 호출: 위에 설명한 객체 제안에 대한 옵션.
  • 두 번 누름: 내부 검사를 위해 꺼진 스키마를 제외한 모든 스키마.
  • 세 번 누름: 사용 가능한 모든 스키마 및 데이터베이스의 객체.

필드 및 연산자 코드 완성 MongoDB

이제 MongoDB의 코드 완성에서 필드와 연산자를 사용할 수 있습니다. 자세한 내용은 이 게시물을 읽어보세요.

데이터베이스 간의 동의어 코드 완성 SQL Server

이제 데이터베이스 간 동의어에 대한 코드 완성 기능을 사용할 수 있습니다.

INSERT 문 완성 및 계산된 열

INSERT 문을 완성할 때 계산된 열이 고려되며 제안된 항목에 포함되지 않습니다.

품질 개선

DBE-10515, DBE-2212: 현재 컨텍스트의 스키마에 있는 객체가 코드 완성 목록에서 더 높은 우선순위를 갖습니다.

DBE-7781, DBE-10650: 자동 별칭이 필요할 때만 나타납니다.

DBE-12018: JOIN 코드 완성의 테이블 정규화가 예상대로 작동합니다.

DBE-12479: ORDER BY 절 내에서 ASC/DESC의 우선순위가 높아졌습니다.

DBE-13341: PostgreSQL GRANT/REVOKE 문의 코드 완성이 예상대로 작동합니다.

코드 강조 표시

재귀적 CTE 지원 Redshift

재귀적 공통 테이블 표현식을 사용하는 쿼리가 이제 제대로 강조 표시되며 선택하지 않고 실행할 수 있습니다.

개선된 CTE 지원 ClickHouse

CTE 이름이 AS 키워드 앞에 올 때 이제 공통 테이블 표현식 구문이 지원됩니다.

품질 개선

DBE-3759, DBE-13364, DBE-13365: 집계 함수가 더 정확하게 작동합니다.

DBE-10782: ClickHouse COALESCE에서 null이 아닌 인수를 보고하는 검사에 의해 더 이상 거짓 양성을 보고하지 않습니다.

DBE-13188: Oracle PL/SQL 레코드 타입 필드가 올바르게 확인됩니다.

DBE-10550: DB2 테이블 별칭이 올바르게 확인됩니다.

데이터베이스 탐색기

함수와 프로시저에 대한 별도 폴더

데이터베이스 탐색기 설정(톱니바퀴 아이콘)에서 Separate Procedures and Function(프로시저 및 함수 분리) 옵션을 켜면 즉시 적용됩니다.

SQL Server에는 scala 및 테이블 함수에 대한 전용 노드가 있습니다. PostgreSQL의 경우 트리거 함수용 노드가 있습니다.

트리거, 키 및 색인에 대한 별도의 노드

새로운 데이터베이스 트리 옵션인 Show Constraints and Triggers in the Schema(스키마에서 제약 및 트리거 표시)는 데이터베이스 탐색기에서 트리거, 키 및 색인을 고유한 개별 노드로 지정합니다.

 

이 기능이 왜 유용한가요?

  • 빠른 검색을 사용하여 하나의 스키마 내에서 객체를 찾을 수 있습니다.
  • 테이블 노드 바로 아래에 열이 표시됩니다. 이렇게 하려면 Show Empty Groups(빈 그룹 표시) 옵션이 해제되어 있어야 합니다.

데이터베이스 객체의 자연 정렬 순서

데이터베이스 탐색기 설정에서 Sort Alphabetically(알파벳순 정렬) 옵션을 해제하면 객체에 자연 정렬이 적용됩니다.

Sort Alphabetically(알파벳순 정렬)를 해제했을 때의 결과는 다음과 같습니다.

Sort Alphabetically(알파벳순 정렬)를 해제했을 때의 결과는 다음과 같습니다.

그리고 Sort Alphabetically(알파벳순 정렬)를 선택했을 때의 결과는 다음과 같습니다.

내부 검사

기본 내부 검사 CockroachDB

CockroachDB는 이번 릴리스에서 완전히 지원됩니다. DataGrip은 더 이상 JDBC 기반 내부 검사에 의존하지 않고, 대신 기본 검사를 사용합니다.

 

이는 JDBC 기반 내부 검사보다 훨씬 빠릅니다. 또한 이전 버전에서는 role, deftypecheck 제약 조건을 전혀 내부 검사할 수 없었습니다. 이제 내부 검사할 수 있는 전체 객체 목록에는 database, role, privilege, schema, sequence, deftype, table, view, mat view, index, column, constraints가 포함됩니다. 현재 알려진 이슈로는 partitions가 아직 내부 검사되지 않는 것이 있습니다.

pg_catalog에 대한 가상 외래 키 PostgreSQL

얼마 전에 가상 외래 키 생성 메커니즘을 발표한 바 있습니다. 이제 이 메커니즘에 따라 pg_catalog도 가상 외래 키의 적용을 받습니다. 그 결과 몇 가지가 개선되었습니다.

첫째, JOIN 자동 완성으로 시스템 테이블을 쿼리할 때 도움이 됩니다.

둘째, 시스템 테이블에서 데이터로 탐색할 수 있습니다.

테이블스페이스 Oracle

테이블스페이스, 데이터 파일 및 임시 파일에 대한 지원을 추가했습니다. 이제 이러한 부분에 내부 검사가 적용됩니다.

 

DDL 생성에도 포함됩니다.

연결된 서버 SQL Server

연결된 서버의 객체에 대해 메타데이터를 사용할 수 없기 때문에 아직 완전히 지원되지는 않습니다. 연결된 서버는 데이터베이스 탐색기에 표시되며 생성에 필요한 DDL을 만들 수 있습니다.

데이터 에디터

선택 항목 접기

데이터 에디터의 컨텍스트 라이브 템플릿

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

추가 정렬 옵션

최근, 추가 정렬을 위해 Alt+Click을 도입했습니다. 그러나 클릭 사용을 선호하는 경우 이 동작을 사용자 지정할 수 있습니다.

선택 항목 접기

열 추가/삭제 MongoDB

이제 MongoDB 컬렉션에 열을 추가할 수 있습니다. 이 액션을 통해 컬렉션의 문서에 새 필드를 추가할 수 있습니다.

 

Delete column(열 삭제)를 실행하면 표시된 페이지뿐만 아니라 전체 컬렉션에 걸쳐 데이터가 삭제됩니다.

선택 항목 접기

CSV 파일에서 열 추가/이름 변경

UI 데이터 에디터의 도움으로 이제 CSV 파일에서 열을 추가 및 제거할 수 있습니다.

쿼리를 콘솔에 복사

데이터 에디터에서 작업할 때 WHEREORDER BY 필드에 복잡한 절을 사용하는 경우가 있을 수 있습니다. 결과 쿼리로 계속 작업하려면 톱니바퀴 아이콘 아래에 있는 새 액션인 Copy Query to Console(쿼리를 콘솔에 복사)을 사용하세요. 그러면 디폴트 콘솔에서 쿼리가 열립니다.

선택 항목 접기

외래 키로 탐색할 때 First row(첫 번째 행) 옵션 제거

보다 빠른 탐색을 위해 First row(첫 번째 행) 옵션을 제거했습니다. 팝업이 표시되지 않고, 참조하거나 참조되는 모든 행을 표시하는 테이블로 이동합니다.

탐색에서 외래 키의 정규화

다른 스키마의 객체를 가리키는 외래 키가 있고 이러한 객체의 이름이 같은 경우, 이러한 외래 키가 외래 키 탐색 UI에서 정규화된 것으로 표시됩니다.

품질 개선

DBE-12545: ORDER BY 필드의 크기가 저장됩니다.

DBE-13055: 표준 시간대가 있는 값에 대해 표준 시간대가 항상 표시됩니다.

DBE-9814: Oracle DATE 형식 값은 시간이 설정되지 않은 경우 시간을 표시하지 않습니다.

DBE-12679: Oracle DATE 필드로 필터링할 수 있습니다.

DBE-12716: DB2 binary, blob, char for bit datavarchar for bit data 필드로 필터링할 수 있습니다.

가져오기/내보내기

가져오기 후 테이블로의 링크 알림

가져오기를 마치면 새 테이블에 대한 링크가 알림에 나타납니다.

품질 개선

DBE-13259: 숫자가 아닌 값이 있는 경우 숫자 필드 내보내기가 더 이상 실패하지 않습니다.

DBE-11370, DBE-13139, DBE-12536: PostgreSQL, Redshift, Exasol, Hive, Clickhouse, DB2 및 HSQL에 대한 가져오기가 더 빨라졌습니다.

탐색

내비게이션 바에서 Enter 키의 동작

내비게이션 바의 동작이 이제 더 간단해졌습니다. Enter 키를 누르면 항상 노드가 확장됩니다.

 

이전에는 Enter 키를 누를 때 테이블의 경우 데이터가 열리고 데이터 소스의 경우 콘솔이 열렸습니다.

노드를 여는 대신 내비게이션 바의 객체에서 탐색하려는 경우, 다음 탐색 단축키를 사용할 수 있습니다.

  • DDL 열기: Ctrl+B
  • 데이터 열기: F4
  • 데이터베이스 트리에서 선택: Alt+Shift+B

Go To 팝업의 시그니처

이제 함수, 프로시저 또는 연산자를 검색할 때 DataGrip이 Go To(이동) 창에 시그니처를 표시합니다. 이 기능은 오버로드가 심할 때 도움이 됩니다.

일반

UI 현지화

이번 버전부터 DataGrip UI가 중국어, 한국어일본어로 완전히 현지화되어 보다 편리하게 이용할 수 있습니다. 현지화된 UI는 번들로 포함되지 않은 언어 팩 플러그인으로 제공되며, DataGrip에 쉽게 설치할 수 있습니다. 이미 150만 명이 넘는 사용자가 부분적으로 현지화된 EAP 언어 팩 버전을 사용하기 시작했습니다. 완전히 현지화된 환경을 지금 이용해보세요!

프로젝트의 새 위치

DataGrip에서 이제 프로젝트가 기본적으로 다른 모든 IntelliJ 기반 IDE와 같은 위치에 놓여집니다. 즉, 사용자의 홈 폴더에 있는 DataGripProjects 하위 폴더에 들어갑니다.

 

DataGrip의 프로젝트에는 데이터 소스, 콘솔 및 스크래치 파일, 연결된 폴더가 모여져 있습니다. 이전에는 구성 폴더에 저장되어 있었기 때문에 IDE를 업데이트할 때마다 IDE 설정과 함께 프로젝트가 복사되었습니다.

이로 인해 데이터 소스 목록이 비어 있는 경우가 있었습니다. 이 문제는 해결되었으며 이제 DataGrip이 다른 IDE와 동일하게 작동합니다.

프로젝트 마이그레이션의 오류로 인해 첫 번째 EAP 빌드를 사용한 일부 사람들이 즐겨찾기, 북마크, 실행 구성 또는 가상 외래 키에 대한 데이터를 잃어버렸을 수 있습니다. 이를 복구하려면 이전 버전에서 다시 마이그레이션을 해 주세요. 자세한 내용은 DBE-13410에서 확인하실 수 있습니다.

설정

뒤로 및 앞으로 버튼

이들 버튼을 사용하면 Settings(설정) 창에서 더 쉽게 탐색할 수 있고 위치를 잃어버리지 않습니다.

고급 설정

Preferences/Settings(환경 설정/설정)의 새 노드로 Advanced Settings(고급 설정)를 추가했습니다. 여기에는 특정 사용 사례에 대한 몇 가지 옵션이 IDE의 도구별로 편리하게 그룹화되어 있습니다 대부분의 설정은 Registry(레지스트리)에서 이전되었지만 일부는 새로운 것들입니다.

몇 가지 주목할만한 설정:

  • Distraction-free(집중력 분산 방지) 모드에서 왼쪽 여백 추가.
  • Comment with Line Comment(줄 주석으로 주석 추가) 액션을 사용한 후 캐럿이 아래로 이동하도록 설정.
  • 탭을 두 번 클릭하는 동작을 사용자 지정.

Show scratch files(스크래치 파일 표시) 액션

새로운 Show Scratch Files(스크래치 파일 표시) 액션(Find Action(액션 찾기)을 통해 찾을 수 있음: Cmd+Shift+A)을 선택하면 팝업에 스니펫과 함께 스크래치 목록이 표시됩니다. Recent Locations(최근 위치) 팝업과 동일한 UI로 빠른 검색과 삭제가 가능합니다.

Services(서비스) 도구 창 팝업 관리

쿼리가 데이터를 반환하지 않고 Services(서비스) 도구 창이 이미 숨겨져 있는 경우, 창을 표시할 필요가 없습니다. 이제 Services(서비스) 도구 창이 표시되게 하는 작업을 직접 정의할 수 있습니다.

품질 개선

DBE-12079: PostgreSQL 내부 검사를 업데이트했습니다. 새로운 내부 검사의 주요 효과는 더 이상 중복되는 객체가 없다는 것입니다!

DBE-13164: 가상 외래 키를 사용하여 JOIN 문을 입력할 때 더 멈춤 현상이 발생하지 않습니다.

DBE-194931: 이제 빈 스크래치 파일이 자동으로 제거됩니다.