Skip to content

기획서

Znero edited this page Nov 28, 2024 · 2 revisions

프로젝트 개요

프로젝트 개요


피처 리스트

메인 기능

  • 쿼리 실행 : 쉘 단위로 쿼리를 작성하고 실행해서 결과를 출력할 수 있다.
  • 쿼리 결과 : 쿼리 작성 결과를 보여준다.

서브 기능

  • ERD 보기 : 현 ERD를 보여준다.
  • Table 추가 : 테이블을 GUI를 통해 만들고 추가할 수 있음
  • Table 수정 : 테이블을 GUI를 통해 수정할 수 있음
  • Data 추가 : 조건에 따른 대량의 레코드 데이터 추가

부가 기능

  • 로그인: 사용자가 로그인을 할 수 있다.
  • 실행결과 저장 : 이전 실행 결과들을 계속 볼 수 있다.
  • 링크 공유 : 해당 데이터베이스 링크를 통해 다른 유저에게 공유할 수 있다.
  • 데이터베이스 선택: 사용자가 여러 데이터베이스를 관리할 수 있다.
  • csv파일 추가: csv 파일을 추가해 레코드를 추가할 수 있다.
  • 쿼리 플랜 시각화: 쿼리 플랜(explain) 시각화가 가능하다. (data grip)
  • 외부 DB 구조 import: 외부 DB 구조 import 기능
  • 쿼리 성능 개선 제안: AI를 활용한 쿼리 성능 개선 방안을 제시한다. (6주 이후 추가 예정)



메인 기능

쿼리 실행

쉘을 실행할 수 있다.

  1. 사용자가 쉘에 쿼리를 입력한다.
  2. 왼쪽의 실행버튼을 눌러 쿼리 실행 요청을 서버로 보낸다.

쿼리 결과 출력

쉘 실행 결과를 보여준다.

  1. 서버에서 쿼리 처리를 완료한 뒤 클라이언트로 결과를 보낸다.
  2. 클라이언트는 출력 결과를 결과창에 띄워준다.

테이블 보기

현 테이블을 보여준다.

  • 테이블이 변경되면, 해당 변경사항이 업데이트 된다.
  • 테이블 표기 데이터 : PK(primary key), IDX(index), FK(foreign key),AI(auto increment), NN(not null)
    • 제약조건 정보를 표기
    • FK 의 경우, 연동된 테이블의 컬럼명을 표기 (ex: user.id)
main




서브 기능

Table 추가 / 수정

테이블을 GUI를 통해 만들고 추가하거나 수정할 수 있음

  1. 사용자가 Table 버튼을 클릭한다.
  2. 좌측에 창이 열리면서 테이블 추가 / 수정 기능에 접근할 수 있다.
  • 추가 버튼 : 테이블 열(column)을 추가할 수 있다.
  • 삭제 버튼 : 삭제하고 싶은 열을 선택하고 클릭시 해당 열이 삭제된다.
  • 쿼리 생성 버튼 : 클릭시 유저가 GUI를 통해 만든 테이블에 해당하는 쿼리를 생성해 쉘에 넣어줌

쿼리 생성시 받는 인수

  • 테이블 이름
  • 컬럼명 (name)
  • 제약 조건 : PK(primary key), UQ(unique), AI(auto increment), NN(not null)
  • 컬럼타입 (type)
// 컬럼 타입
TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, BIT(1), FLOAT, DOUBLE, DECIMAL(10,0), 
CHAR(255), VARCHAR(255), TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, 
BINARY(1), VARBINARY(255), TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB, 
JSON, DATE, DATETIME, TIMESTAMP, TIME, YEAR
table tool table tool(add table)


Data 추가

조건에 따른 대량의 레코드 데이터 추가

참고 레퍼런스: Mockaroo

  1. 사용자가 Data 버튼을 클릭한다.
  2. 좌측에 창이 열리면서 데이터 추가 기능에 접근할 수 있다.

[기본 버튼]

  • 추가 버튼 : 데이터 열(column)을 추가할 수 있다.
  • 삭제 버튼 : 삭제하고 싶은 열을 선택하고 클릭시 해당 열이 삭제된다.
  • 데이터 생성 버튼 : 클릭시 유저가 GUI를 통해 만든 데이터에 해당하는 쿼리를 생성해 쉘에 넣어줌

[데이터 관련 버튼]

  • Type : 해당 데이터가 어떤 형식인지 선택할 수 있다.
    • 기본 도메인: 이름, 국가, 도시, 이메일, 전화번호, 성별, Boolean
    • 커스텀 가능: Number(min, max), Enum(최대 10개, 무조건 string)
  • Blank : null이 들어갈 확률을 조정할 수 있다.
  • Formula : 필드 값을 다른 필드 값에 기반해 동적으로 계산해야 하는 경우에 계산식을 추가
  • Rows: 총 행이 몇개 인지 작성
  • Include CREATE TABLE : 테이블 생성 쿼리를 추가할지에 대한 여부
data tool data tool (success)



레퍼런스

MySQLWorkBench

KakaoTalk_Photo_2024-11-17-13-19-43

Clone this wiki locally