올해 첫 번째 주요 릴리스이자 DataGrip 역사상 가장 주목할 만한 릴리스인 DataGrip 2021.1을 소개합니다. 2021.1 버전에서 그동안 안고 있던 문제를 하나 이상 해결하거나 좋아할 만한 새로운 기능을 발견하거나 둘 다 이루셨으면 좋겠습니다. 지금부터 자세히 살펴보겠습니다.
이 기능은 PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server, Sybase에서 사용할 수 있습니다.
객체를 수정할 때 권한 부여를 편집하기 위한 UI가 추가되었습니다.
데이터베이스 탐색기에서 Cmd/Ctrl+F6을 누르면 사용자를 호출할 수 있는 Modify user(사용자 수정) 창에 이제 객체에 권한을 추가할 수 있는 UI가 있습니다.
이 템플릿은 데이터베이스 탐색기에서 바로 간단한 구문을 생성하려는 사용자를 위한 솔루션입니다. 일반 라이브 템플릿은 간단한 쿼리를 빠르게 작성해야 하는 대부분의 경우에 사용할 수 있습니다. 그러나 사용자가 데이터베이스 탐색기의 컨텍스트에 있고 이미 필요한 객체에 집중하고 있는 경우, 해당 객체로 간단한 쿼리를 얻는 더 좋은 방법이 있다는 사실을 저희도 알고 있습니다.
또한 다른 많은 도구에서도 반복 작업을 줄이기 위해 이 메커니즘을 활용하므로 많은 사용자가 이미 익숙해져 있습니다.
다음은 메커니즘의 작동 원리를 보여주는 짧은 동영상입니다.
이 목록의 코드 스니펫 하나하나는 실제로 라이브 템플릿이지만 선택한 객체의 컨텍스트에서 생성할 수 있는 특수한 템플릿이기도 합니다. 예를 들어 Select first N rows from a table(테이블에서 처음 N개의 행 선택) 템플릿을 살펴보겠습니다.
라이브 템플릿 설정 페이지를 열고 필요한 템플릿을 찾습니다.
Select first N rows from a table(테이블에서 처음 N개의 행 선택)은 일반 템플릿처럼 보입니다(동일한 용도로 사용 가능). 이 특정 구문은 모든 데이터베이스에서는 사용할 수 없으므로 그에 해당하는 파생 언어가 이 템플릿에 설정됩니다. 이 템플릿을 데이터베이스 탐색기에서 적용할 수 있게 만드는 주요 차이점은 $table$ 변수에 사용되는 특수한 표현식 dbObjectName에 있습니다.
또한 고유한 템플릿을 추가하거나 기존 템플릿을 편집할 수도 있습니다.
Settings(설정)/Preferences(환경 설정) | Database(데이터베이스) | General(일반)에서 사용 중인 스크립트를 현재 콘솔로 생성할 것인지 새 콘솔로 생성할 것인지 선택하세요.
MongoDB 작업에 도움이 되는 중요한 기능을 추가했습니다. 이 버전부터 MongoDB 컬렉션의 데이터를 편집할 수 있습니다. 구문 미리보기도 이용할 수 있습니다.
또한 더 유연하게 편집할 수 있도록 UI에서 필드 유형을 변경하는 기능을 도입했습니다. 이 작업은 필드의 컨텍스트 메뉴 또는 값 에디터에서 수행할 수 있습니다.
데이터 정렬 기능을 다음과 같이 개선했습니다.
ORDER BY
필드는 WHERE
필드(예전 이름은 Filter)와 유사하게 작동합니다. 작업 중인 절을 입력하여 그리드의 쿼리에 적용하세요. 클라이언트 측에서 정렬을 사용하려는 경우(DataGrip은 쿼리를 다시 실행하지 않고, 대신 현재 페이지 내에서 데이터를 정렬), Sort via ORDER BY(ORDER BY를 통해 정렬)를 선택 해제합니다.
숫자 기본 키를 기반으로 사전 정의된 정렬로 테이블을 열 수도 있습니다. 이 설정은 Settings(설정)/Preferences(환경 설정) | Database(데이터베이스) | Data Views(데이터 뷰)에 있습니다.
데이터 에디터의 툴바를 새롭게 작업했습니다. Roll-back(롤백) 및 Commit(커밋) 버튼은 더 이상 자동 트랜잭션 모드에서 표시되지 않으며 Revert changes(변경 내용 되돌리기) 및 Find(찾기)라는 2개의 버튼이 새로 추가되었습니다.
이제 Settings(설정)/Preferences(환경 설정) | Database(데이터베이스) | Data Views(데이터 뷰)에 결과에 단 하나의 행만 있는 경우 해당 결과를 항상 전치할 수 있는 옵션이 있습니다.
탐색 작업을 단순화하고 다음 설정을 제거했습니다.
이러한 설정을 변경한 적이 없고 체크박스를 기본적으로 선택해 놓은 사용자에게 해당되는 2021.1의 주요 변경 내용은 다음과 같습니다. 이제 SQL의 객체에서 Go to declaration(선언으로 이동)(Ctrl/Cmd+B)을 호출하면 데이터베이스 트리가 아닌 DDL로 이동합니다.
또한 Select in database tree(데이터베이스 트리에서 선택) 액션에 단축키를 도입했습니다. Windows/Linux의 경우는 Alt+Shift+B이며 macOS의 경우는 Opt+Shift+B입니다.
이렇게 변경한 주된 이유는 각 액션을 사용하면 예상한 위치로 이동할 수 있도록 로직을 더 단순화하기 위해서입니다.
이제 커서를 객체 위에 놓으면 다음과 같이 탐색할 수 있습니다.
하지만 변화로 인해 일부 습관이 깨질 우려도 알고 있기에 이전 환경을 유지할 수 있는 방법도 제공합니다. 몇가지 팁은 다음과 같습니다.
database.legacy.navigate.to.code.from.tree
로 변경하여 이 동작을 되돌릴 수 있습니다. 저희가 확인한 데이터에 따르면 이러한 흐름을 사용하는 사용자는 매우 드물었습니다. 또한 객체와 관련하여 DDL을 열 때는 단축키를 사용하는 것을 추천드립니다. 이 새로운 흐름에서 더 이상 작동하지 않는 사용 사례가 있는 경우 알려주시기 바랍니다.
Azure Active Directory 대화형 인증이 지원됩니다. 이 기능을 활성화하면 브라우저가 자동으로 열리고 거기에서 로그인할 수 있습니다.
Redshift 2.x JDBC 드라이버가 이 버전부터 DataGrip 사용자에게 제공됩니다. 주요 개선 사항은 쿼리를 취소하는 기능입니다.
Google BigQuery 파생 언어에 대한 지원은 이전 릴리스에서 추가되었습니다. 이번 릴리스에서는 데이터베이스 내부 검사 및 코드 생성이 제대로 작동하고 더 이상 JDBC 드라이버의 기능에 좌우되지 않도록 지원을 확장했습니다.
이제 CockroachDB 스크립트로 작업하거나 해당 데이터베이스를 쿼리하는 SQL을 작성할 때 코드가 올바르게 강조 표시되고 쿼리를 실행하기 전에 모든 오류가 표시됩니다. 이는 향후 릴리스 중 하나에서 제공될 완벽한 CockroachDB 지원의 첫 단계입니다.
연결 창을 사용하기 편하게 다시 작업했습니다.
이제 URL 필드가 확장되므로 긴 URL을 더 간편하게 처리할 수 있습니다.
데이터 소스를 복사하고 붙여넣는 기능은 오래 전에 도입되었습니다. 2021.1부터는 세계에서 가장 유명한 단축키인 Ctrl/Cmd+C/X/V를 사용해 데이터 소스를 복사하고 잘라내고 붙여넣을 수 있습니다.
데이터베이스 탐색기의 디폴트 레이아웃이 변경되어, 전용 노드에서 비 주요 객체를 사용할 수 있습니다. 대부분의 경우 사람들은 테이블, 뷰, 루틴으로 작업하는 반면 사용자, 역할, 테이블스페이스, 외부 데이터 래퍼 및 기타 여러 유형의 객체를 확인하는 작업은 우선순위가 낮습니다. 따라서 이러한 부차적 객체는 이제 Server Objects(서버 객체)와 Database Objects(데이터베이스 객체)라는 두 노드 아래에 숨겨집니다.
이전 레이아웃으로 되돌리려면 톱니바퀴 아이콘 아래에 있는 설정에서 Group Database and Schemas(데이터베이스 및 스키마 그룹화)를 선택하면 됩니다.
Oracle을 사용하는 경우 다음을 포함하여 자동 생성된 객체를 트리에 표시하거나 숨길 수 있는 옵션이 추가되었습니다.
SQLite에서 함수, 모듈, 가상 열에 대한 내부 검사를 할 수 있습니다.
2021.1부터는 지원되지 않는 데이터베이스에 데이터 소스를 더 쉽게 추가할 수 있습니다. 이제 AWS Athena, Informix, Presto, SAP HANA, Google Cloud Spanner 등에 JDBC 드라이버가 제공됩니다. 데이터베이스 목록의 Other(기타) 섹션에서 이러한 데이터베이스를 찾아보세요.
그 외 몇가지 추가 개선 사항이 있습니다.
이러한 데이터베이스에 대한 지원은 제한적입니다. 지원 가능 여부는 주로 JDBC 드라이버의 기능과 DataGrip의 SQL 에디터의 SQL:2016 파생 언어 지원에 따라 다릅니다.
지원되지 않는 데이터베이스를 사용하기 위한 새로운 설정이 도입되었습니다. DataGrip에서 이러한 데이터베이스로 작업할 때는 SQL:2016 또는 Generic 파생 언어를 사용해야 합니다. Generic은 발견된 모든 오류가 강조 표시되지 않는다는 단 하나의 차이점을 제외하고 SQL:2016과 거의 같습니다.
설정에 액세스하려면 Settings(설정)/Preferences(환경 설정) | Database(데이터베이스) | General(일반) | Split a script for execution in Generic and ANSI SQL dialects(Generic 및 ANSI SQL 파생 언어로 실행하기 위해 스크립트 분할)로 이동합니다. 다음 값을 선택할 수 있습니다.
다음은 해결된 몇가지 문제입니다.
모호한 열 이름을 보고하는 검사가 더 스마트해져 이제 공통 테이블 표현식 내의 모든 열을 고려합니다.
이제 시스템 함수 및 프로시저가 정규화되지 않은 상태로 사용되어도 오류로 강조 표시되지 않습니다. 이러한 항목에서 탐색 및 코드 완성 기능도 작동합니다.
Thanks to the IntelliJ Platform, DataGrip now has support for the newline-delimited JSON Lines format used for working with structured data and logs. IDE는 .jsonl, .jslines, .ldjson 및 .ndjson 파일 형식을 인식합니다.
새로운 타이포그래피 설정을 통해 글꼴 스타일을 세세하게 조정할 수 있습니다. 2021.1 버전에서는 Settings(설정)/Preferences(환경 설정) | Editor(에디터) | Fonts(글꼴)에서 기본 글꼴 및 굵은 글꼴 스타일의 두께를 선택할 수 있습니다.
완전히 로드되지 않은 바이너리 데이터를 복사하면 다음과 같은 알림이 표시됩니다.
데이터가 잘리지 않도록 하려면 Settings(설정)/Preferences(환경 설정) | Database(데이터베이스) | Data Views(데이터 뷰) | Maximum number of bytes loaded per value(값당 로드되는 최대 바이트 수)에서 값을 높이세요.
Excel로 내보낼 때 결과 파일에는 별도의 시트에 쿼리가 포함됩니다.
CSV 파일을 가져올 때 아래와 같이 컨텍스트 메뉴에서 첫 번째 행이 헤더임을 명시하는 옵션을 사용할 수 있습니다.
이제 폴더를 드래그 앤 드롭하여 프로젝트에 첨부할 수 있습니다.
에디터를 수직으로 분할하는 탭이 여러 개 열릴 때마다 각 탭의 에디터 창을 두 번 클릭하여 최대화할 수 있습니다. 창을 원래 크기로 되돌리려면 다시 두 번 클릭하면 됩니다.
예전에 단축된 탭 이름이 도입되었지만 모두가 좋아하지는 않았으므로 더 다양한 옵션이 있는 설정을 마련했습니다.