DataGrip 2019.2의 새로운 기능

서비스 도구 창

이제 JetBrains의 모든 IDE에는 Services(서비스)라는 새로운 도구 창이 생겼습니다. DataGrip에서는 이 창에서 모든 연결을 관찰 및 관리할 수 있습니다.

모든 연결은 해당하는 데이터 소스에서 고유한 노드를 가집니다. 아이콘 위에 작은 녹색 불빛이 켜져 있으면 연결이 라이브 상태임을 의미합니다. 컨텍스트 메뉴를 사용해 간편하게 연결을 닫을 수 있습니다.

모든 서비스 유형을 노드로 보거나 뷰를 변경해서 탭으로 볼 수 있습니다. 도구 모음에서 Show in New Tab 액션을 사용하거나, 간단히 필요한 노드를 Services 도구 창의 제목 표시줄 위로 드래그하세요.

그러면 쿼리 결과가 Services 뷰에서 해당 연결의 특정 콘솔에 연결됩니다.

중요! Services 도구 창의 기본 단축키는 Alt+8입니다.

트리 숨기기

트리 숨기기

Services 트리를 보고 싶지 않을 경우(즉, 이전 상태로 돌아가고 싶을 경우), 기어 아이콘을 클릭하면 숨길 수 있습니다.

쿼리 라이브 타이머

또, Services 도구 창에서는 수많은 유저가 요청했던 또 다른 기능인 쿼리 라이브 타이머를 제공합니다. 쿼리를 실행하는 연결의 오른쪽에서 소요된 시간을 확인할 수 있습니다.

Docker

Docker

또한, Docker 플러그인을 사용할 경우 해당하는 서비스가 이 도구 창에 표시됩니다.

전체 텍스트 검색

이제 데이터의 위치를 모르더라도 데이터를 검색할 수 있습니다. 이 작업을 수행하려면 검색하려는 데이터 소스, 데이터 소스 그룹 또는 별도의 테이블을 선택하고 컨텍스트 메뉴에서 Full-text search(전체 텍스트 검색)를 실행하세요. 물론, 이 기능에 대한 단축키(Ctrl+Alt+Shift+F)도 있습니다.

문자열을 입력할 수 있는 대화상자가 표시되며 검색할 데이터 소스 목록을 확인하고 검색 옵션을 설정할 수 있습니다.

또한, DataGrip에서 데이터 검색을 위해 실행할 특정 구문들도 표시됩니다.

검색을 실행한 후에는 열 수 있는 결과들이 표시됩니다.

결과를 클릭하면 데이터 에디터가 열립니다. 필터는 데이터가 발견된 위치의 문자열만 표시하도록 미리 정의됩니다. 열 수가 너무 많아 데이터를 찾을 수 없을 경우 데이터 에디터에서 텍스트 검색(Ctrl+F)을 사용해 보세요.

일부 데이터베이스에서는 색인이 생성된 열에서만 검색하도록 선택할 수 있습니다. 이 모드를 사용하려면 Search in 드롭다운 메뉴에서 Only columns with full-text search indexes를 선택하세요.

  • PostgreSQL에서 쿼리는 where col @@ plainto_tsquery('query')입니다.
  • MySQLMariaDB에서 쿼리는 where match(col) against ('query' in natural language mode)입니다.
  • Oracle에서는 context, ctxrule, ctxcat 색인이 사용됩니다(존재할 경우).
  • SQL Server에서 fulltext 색인이 있는 열이 있을 경우, DataGrip이 WHERE CONTAINS(col, N'text')를 사용해 쿼리를 생성합니다.
  • SQLite에서 DataGrip은 where col MATCH 'text'라는 쿼리를 생성합니다.

All columns 모드를 선택하면 검색에서 LIKE 연산자를 지원하지 않는 열(예: JSON 유형의 열)을 조회합니다. 이 열의 값은 미리 문자열로 변환됩니다.

Cassandra에서는 OR 조건이 데이터베이스에서 지원되지 않기 때문에 DataGrip이 하나의 테이블에 대해 여러 개의 쿼리를 생성합니다.

데이터 에디터

페이지 크기를 쉽게 변경

페이지 크기를 쉽게 변경

이제 데이터베이스에서 검색하고 싶은 줄의 수를 정의하려면 결과 집합의 도구 모음에서 이 작업을 수행할 수 있습니다.

결과 탭의 이름 지정 가능

결과 탭의 이름 지정 가능

결과 탭의 또 다른 멋진 개선 사항으로, 이름을 지정할 수 있는 기능이 추가되었습니다. 간단히 쿼리 앞에 주석을 사용하세요.

결과 탭의 이름 지정 가능

 

특정 주석만 탭 이름이 되도록 하려면 설정에서 Treat text as title after(이후 텍스트를 제목으로 취급) 필드를 사용해 접두어를 지정하세요. 그러면, 해당 단어 다음에 오는 단어만 제목으로 사용됩니다.

데이터베이스 트리 뷰

빠른 테이블 백업

빠른 테이블 백업

예전에는 드래그 앤 드롭으로 테이블을 복사할 수 있었지만, 동일한 스키마로 복사할 때는 작동하지 않았습니다. 사실 이 기능은 중요한 데이터를 조작하기 전에 빠르게 테이블의 백업을 생성하려고 할 때 매우 유용할 수 있습니다. 이제 이 기능이 구현되었습니다.

빠른 그룹 생성

빠른 그룹 생성

이제 데이터베이스 탐색기에서 그룹을 생성할 때에도 드래그 앤 드롭을 사용할 수 있습니다.
새로운 그룹을 생성하려면 한 데이터 소스를 다른 데이터 소스로 드래그하기만 하세요.
데이터 소스를 기존의 그룹에 넣으려면 해당 그룹으로 드래그하세요.

라이브 연결

라이브 연결

2019.2 버전부터 작은 녹색 불빛이 데이터 소스에 라이브 연결이 있는지를 표시합니다.

강제 새로고침

강제 새로고침

Force Refresh(강제 새로고침)라는 새로운 액션을 데이터 소스 또는 스키마에서 사용할 수 있습니다. 이 액션은 DataGrip이 캐시한 데이터 소스 정보를 지우고, 처음부터 새로고침을 수행합니다.

검색 및 탐색에서 데이터 소스별 필터링

GoTo(이동) 팝업에서 객체를 찾을 때 목록에 여러 개의 비슷한 객체가 존재하는 경우가 있습니다. 이러한 상황은 프로덕션, 스테이징, 테스트 등과 같은 미러가 많이 있을 때 자주 발생합니다.

DataGrip 2019.2에서는 특정 데이터 소스 또는 데이터 소스 그룹 중에서 검색하려는 위치를 선택할 수 있습니다.

이 기능은 Find In Path(경로 검색)에도 적용되며 이는 다른 객체의 DDL에서 소스 코드를 검색할 때 매우 유용합니다.

코딩 지원

페이지 크기를 쉽게 변경

시스템 카탈로그의 객체

거의 모든 데이터베이스에는 시스템 카탈로그가 있습니다. 이것은 관계형 데이터베이스 관리 시스템이 테이블 및 열에 대한 정보, 기본 제공 함수 등의 스키마 메타데이터를 보관하는 장소입니다.

이 카탈로그의 객체는 코딩 지원을 제공하는 데 필요합니다. 코드 완성 기능에 도움이 되며 해당 객체가 사용된 코드는 빨간색으로 표시되지 않습니다.

이전에 코딩 지원에서 시스템 카탈로그를 사용할 수 있는 유일한 방법은 데이터베이스 탐색기에 추가하는 것이었습니다. 사실 DataGrip은 데이터베이스에서 동일한 방식으로 카탈로그 객체 정보를 검색했었으나 시간이 걸렸습니다. 데이터베이스 탐색기에서도 이 정보를 볼 수 있었지만 딱히 확인해야 하는 내용은 아니었습니다.

이제 이러한 유형의 스키마는 스키마 선택기에서 번개 아이콘으로 표시되고, 이제 이를 체크하지 않을 경우, DataGrip은 내부 검사와 표시를 하지 않습니다. 하지만, 코딩 지원에서 해당 객체에 관한 정보를 사용합니다. 이 작업이 가능하도록 DataGrip은 각 데이터베이스의 시스템 카탈로그에 관한 내부 데이터를 사용합니다.

일부 데이터베이스의 시스템 카탈로그 예시:

  • PostgreSQL: pg_catalog, information_schema
  • SQL 서버: INFORMATION_SCHEMA
  • Oracle: SYS, SYSTEM
  • MySQL: information_schema
  • DB2: SYSCAT, SYSFUN, SYSIBM, SYSIBMADM, SYSPROC, SYSPUBLIC, SYSSTAT, SYSTOOLS
페이지 크기를 쉽게 변경

인텐션 액션 및 빠른 수정

우선, 빠른 수정이 검사 툴팁에 통합되었습니다. DataGrip이 문제 해결 방법을 알고 있는 경우, 경고를 마우스로 가리키기만 하면 바로 해결책을 확인할 수 있습니다. 문제를 해결하려면 툴팁의 좌측 하단 모서리에 있는 링크를 클릭하거나 Alt+Shift+Enter를 누르기만 하면 됩니다.

Alt+Enter는 가능한 모든 빠른 수정 목록을 확인하는 데 여전히 사용할 수 있습니다.

또한, 몇 가지 새로운 검사가 도입되었습니다.

불필요한 CASE 사용 위치

사용자가 CASE 문을 사용할 때 DataGrip이 이를 더 읽기 쉽게 변환할 수 있는지 분석합니다.

IF로 변환:

 

COALESCE로 변환:

GROUP BY를 DISTINCT로 변환하기

GROUP BY를 DISTINCT로 변환하기

인텐션 액션이 하나 더 추가되었습니다. 이제 SELECT 절의 모든 열이 GROUP BY 절에서 제공된 경우 GROUP BYDISTINCT로 변환할 수 있습니다.

잠재적인 문자열 잘림 경고

잠재적인 문자열 잘림 경고

변수에 값을 할당할 때 IDE가 문자열의 길이를 탐지하여 예상되는 문자열 잘림을 알려줍니다.

SQL 에디터

Move Caret to Next Word(다음 단어로 캐럿 이동)의 동작을 제어하는 새로운 옵션이 추가되었습니다

다음 단어로 캐럿 이동의 동작을 제어하는 새로운 옵션

Move Caret to Next Word(다음 단어로 캐럿 이동) 액션의 기본 동작이 변경되어, DataGrip이 캐럿을 현재 단어의 끝으로 이동시킵니다.

Preferences(환경 설정)/Settings(설정) | Editor(에디터) | General(일반)에서 캐럿 이동 액션의 동작을 변경할 수 있습니다.

보통 WindowsLinux에서는 Ctrl+방향키, Mac에서는 Opt+방향키를 눌러서 이 액션을 실행합니다. 운영 체제마다 기본 동작이 서로 다릅니다. Datagrip에서는 Windows와 유사한 동작이 Mac과 유사한 동작으로 변경되었습니다.

이전 작동 방식:

현재 작동 방식:

GROUP BY를 DISTINCT로 변환하기

현재 구문 선택

이제 새로운 액션 Select current statement(현재 구문 선택)를 사용할 수 있습니다. Find Action(액션 검색)(Ctrl+Shift+A)에서 이용하거나 단축키를 할당할 수 있습니다.

잠재적인 문자열 잘림 경고

큰 숫자 접기

큰 숫자의 가독성을 향상시키려면 단축키 Ctrl + - 를 사용해 숫자를 접으세요.

기타 변경 내용

  • DataGrip 2019.2는 기본적으로 OpenJDK 11의 인증되지 않은 포크인 JetBrains Runtime 11을 기반으로 실행됩니다.
  • 테이블의 주석을 트리 뷰로 보려면 View(보기) | Appearance(외관)로 이동한 후 Descriptions in Tree Views(트리 뷰의 설명) 옵션을 전환하세요.
  • [Cassandra] 이제 set, list, map, tuple, udt, inet, uuid 및 timeuuid 열을 편집할 수 있습니다.
  • 이제 새로운 결합 항목(IS NULLIS NOT NULL)이 코드 완성에 포함되었습니다.
  • Jump outside closing bracket/quote with Tab(Tab을 사용해 닫는 괄호/따옴표 밖으로 이동) 옵션이 기본적으로 활성화됩니다.
  • Surround a selection with a quote or brace(따옴표 또는 중괄호로 선택 항목 감싸기) 옵션이 기본적으로 활성화됩니다.
  • Introduce alias(별칭 삽입)가 리팩터링 메뉴에 추가되었습니다.
  • DataGrip이 PostgreSQL 12와 호환됩니다. DBE-8384
  • 이전에 읽기 전용 모드에서 작업할 때 약간의 불일치가 있었습니다. 읽기 전용 모드에서 업데이트 쿼리를 실행하려고 하면 IDE가 IDE 수준 모드만 비활성화하고, JDBC 모드는 비활성화하지 않았습니다. DBE-8145 하지만, 이제 둘 다 비활성화되므로 정말로 필요한 경우 이 쿼리를 실행할 수 있습니다.