QueryPie, 새롭게 제안하는 SQL IDE

QueryPie 개발기 #2: QueryPie의 타겟과 핵심 요구 사항

Brant Hwang
QueryPie
Published in
8 min readJan 16, 2019

--

지난 글에서 여러 IDE들을 비교하며, 기존 IDE에서 경험한 아쉬움을 개선한 새로운 Cross-Platform Database IDE인 QueryPie 를 개발하게 된 배경을 소개했습니다.

오늘의 글에서는 개인적인 문제제기에서 시작된 QueryPie 개발 프로젝트의 애플리케이션 개발에 앞서, 어떻게 목표 고객을 정의했고 그에 따라 기술적인 요구사항을 구성하였는지 소개하겠습니다.

QueryPie라는 이름을 정하게 된 배경

본격적인 내용을 풀어놓기 전에, 이 프로젝트가 왜 QueryPie라는 이름을 갖게 되었는지 말씀드리고자 합니다. 개발하는 서비스 또는 제품의 이름을 중간과정이나 개발 후에 정하는 경우도 많습니다. 그러나 “내가 그의 이름을 불러주었을 때, 그는 나에게로 와서 꽃이 되었다.”는 유명한 시의 구절처럼 저는 프로젝트를 시작하기 앞서 이름을 정하는 것을 좋아합니다. 뭔가 처음부터 프로젝트에 더 큰 애정을 갖게 되는 것 같달까요.

평소 Database를 다루는 것을 어려워하는 모습들을 보며, 많은 사람들이 데이터베이스를 쉽고 빠르게 다룰 수 있게 돕고 싶다는 생각이 컸습니다. 그리하여 ‘누워서 떡먹기’와 같은 의미인 ‘Piece of Cake’, ‘Easy As Pie’ 라는 표현이 이러한 철학과 어울린다는 디자인 팀의 의견을 받아들였습니다.

CakeDB, Cakery, QueryPy, Querify 등의 수많은 후보가 있었습니다. 그 가운데 SQL IDE라는 제품 특성을 연상하기 좋고, Pie라는 친숙한 사물을 활용하여 디자인 및 브랜딩의 이슈를 수월하게 해결할 수 있을 것이라는 기대 하에 “QueryPie”를 애플리케이션의 이름으로 정했습니다.

QueryPie의 목표 고객

데이터의 중요성이 커지며 데이터 기반 협업이 활발해졌다(이미지 출처: pixabay)

데이터베이스를 사용하는 사람들은 매우 다양한 배경을 가지고 있습니다. DBA, 개발자, SQL 튜너와 같은 엔지니어부터, 데이터의 중요성이 부각되는 최근에는 기획자, 마케터, 데이터사이언티스트까지 많은 인력들이 데이터베이스에 직접 접속하여 데이터를 다루고 있습니다.

QueryPie팀은 데이터베이스 산업과 사용자 층의 새로운 트렌드를 반영하여 아래와 같이 QueryPie의 목표 고객을 정의하였습니다.

(1) 공통 사항

  • 조직 내 구성원들이 Mac, Linux, Windows 등 여러 OS를 활용
  • 데이터를 기반으로 활발하게 협업하고 중요 의사 결정을 진행
  • 특정 부서가 아닌 다양한 부서의 구성원들이 직접 데이터베이스 접속 정보를 가지고 데이터를 추출, 편집 및 분석함
  • 클라우드 기반의 데이터베이스 주로 사용

(2) 개발 조직

  • 데이터베이스 개체(테이블, 뷰, 함수 등)를 생성 / 관리하는 개발자
  • 데이터 추출을 위한 SQL 구문 작성 및 실행이 데이터베이스 업무의 대부분인 웹/응용 프로그램 개발자

(3) 비 개발 조직 (기획, 마케팅, 데이터사이언스)

  • 개발 조직의 도움 없이 SQL을 활용해 필요한 데이터를 추출 및 분석
  • 데이터베이스에 저장된 데이터를 활용하여 담당 업무 및 협업 진행

마케터에게 데이터 활용이 요구되는 트렌드를 다룬 기사: The Rise Of The Data-Driven Marketer: Why It’s Beneficial And How To Hire One

QueryPie의 핵심 요구 사항 구성

위의 목표 고객을 기반으로 QueryPie의 핵심 요구 사항을 크게 두 가지 분류로 정리하였습니다.

(1) 데이터베이스 IDE로서의 확장 기능 제공

많은 IDE들이 기본적으로 제공하는 기능에 더하여, 사용자가 데이터 작업을 더욱 편리하게 수행하여 업무 생산성을 높일 수 있는 확장 기능을 탑재하고자 합니다.

  • 강력한 SQL 자동 완성 기능
  • 멀티 라인 SQL 실행
  • 간단한 데이터 내보내기/가져오기 (멀티 포맷 지원)
  • 간결하고 직관적인 UI
  • 빠른 애플리케이션 실행속도와 안정성

(2) 데이터베이스 협업을 위한 보안 및 관리 기능

데이터를 직접 활용하는 비 개발 조직 및 구성원의 숫자가 늘고, 이로 인해 데이터베이스 접속 정보 및 권한을 소유한 인원이 늘어나고 있습니다. 데이터 협업을 안전하게 지원하고자 Database IDE의 기능에 더하여 데이터베이스 보안 및 계정관리의 기능을 새롭게 추가하려 합니다.

  • QueryPie.com 계정 기반의 데이터베이스 접속 정보 관리
  • 사용자 별 / 개체 별 데이터베이스 접근제어 (Read-Only, 특정 테이블만 접근 허용 등)
  • 데이터베이스 접근 / SQL 실행 기록 추적
  • 클라우드 기반 SQL 및 SQL 실행 결과 공유

위의 요구사항 중 마지막 3가지는 일반적인 Database IDE에서는 제공하지 않는 서비스 입니다. 그러나 저 스스로가 데이터베이스 도구를 사용하면서 고민해왔던 문제였기에 QueryPie의 핵심 서비스로 포함시켰습니다.

보통 스타트업이나 중소기업은 데이터베이스 서버가 둘 셋에서 수 십개 정도 되고, 큰 회사의 경우는 수 백, 수 천대가 넘는 경우가 있습니다. 접속할 때마다 매 번 Host, Port, ID, Password를 입력해야 하고, 저장해 놓았다 할 지라도 컴퓨터를 바꾸거나 포맷할 경우에는 유지가 되지 않습니다.

또한 스타트업의 경우에는 마케터나 기획자가 데이터베이스에 접근해서 직접 데이터를 보는게 일반적인데 이 과정에서 데이터베이스 접속정보가 모두 노출될 뿐 만 아니라 잘못된 SQL을 실행하거나 미숙한 테이블 조작으로 서비스 전체에 장애를 야기할 수 있습니다.

QueryPie와 QueryPie Protocol

이 문제를 해결하기 위해 QueryPie는 이메일 계정 기반으로 로그인만 하면 사용자가 포함된 조직의 데이터베이스 접속 정보를 암호화하여 QueryPie에 전달하고, ReadOnly 같은 권한을 제어할 수 있으며, 사용자가 언제, 어디서, 어떤 SQL을 실행했는지 모두 추적할 수 있는 QueryPie Protocol 이라는 제품과 함께 동작하도록 설계되었습니다.

따라서 데이터베이스 관리자가 QueryPie.com에 접속하여 데이터베이스 정보만 입력하면 나머지 구성원은 접속정보 없이도 QueryPie 계정을 통해 허가된 데이터베이스에 안전하게 접근할 수 있습니다.

개발중인 QueryPie Protocol에서 데이터베이스 접속 정보를 등록하는 모습

QueryPie 개발의 향후 Roadmap

QueryPie를 데이터베이스를 다루는 모든 스타트업과 중소기업에 필수적인 소프트웨어로 발돋움시키는 것이 목표입니다. QueryPie를 활용하여 개발 조직은 어떤 도구보다도 빠르게 애플리케이션에 필요한 데이터베이스를 구성 및 관리하고 SQL을 실행하며, 비 개발 조직은 안전하게 데이터베이스에 접속하여 원하는 데이터를 분석하고 시각화해 이를 통해 대시보드를 구성하고 공유할 수 있습니다.

게다가 QueryPie를 통해 데이터베이스에 전달되는 모든 행동(접속 기록, 실행 쿼리 등)은 블록체인 상에 투명하게 기록되기 때문에 높은 수준의 데이터베이스 보안 감사가 가능합니다. 또한 사용자의 평소 데이터베이스 접근 패턴과 SQL 실행 패턴을 학습하여 이상징후가 감지되면 관리자에게 경고를 사전에 보낼 수 있는 데이터베이스 FDS(Fraud Detection System)까지 제공됩니다. 따라서 기업이 준수해야 하는 다양한 개인정보보호 조치에 대한 법적 규제사항을 충족시킬 수 있습니다.

지난 해 페이스북은 대량의 개인 정보 유출 사고로 큰 논란을 야기했다

QueryPie는 업계 최고의 소프트웨어 엔지니어들이 만들고 있고, 세계 최고 수준의 제품으로 기획/개발되고 있습니다. QueryPie 개발팀과 QueryPie 개발에 사용된 수 많은 기술을 지속적으로 소개할 계획입니다.

2019년 2분기에는 Mac, Windows, Linux에서 동일한 경험을 제공하면서 가볍고 빠르게 동작하는 새로운 데이터베이스 도구인 QueryPie를 만나보실 수 있습니다.

영어-https://medium.com/p/4a3e4ce2f136/

--

--