DEVGRIZZLY / DB DEVELOPER TOOLS

DB Developer Tools 사용자 설명서

DevGrizzly가 만든 Google Sheets 부가기능으로, 데이터 표에서는 INSERT 같은 SQL을 만들고 테이블 정의표에서는 DDL, Java VO, MyBatis 코드를 생성할 수 있습니다.

DATA MODE · 실제 데이터 → SQL SCHEMA MODE · 테이블 정의 → 개발 코드

01 / OPEN

Google Sheets에서 도구 열기

  1. 1

    DB Developer Tools를 설치한 Google 계정으로 스프레드시트를 열거나 새로고침합니다.

  2. 2

    상단 메뉴에서 “DB 개발자 도구 → 도구 열기”를 선택합니다. 영어 환경에서는 “DB Developer Tools → Open tools”로 표시됩니다.

  3. 3

    오른쪽 사이드바에서 언어, 모드(DATA 또는 SCHEMA), DBMS, 기능을 선택합니다.

  4. 4

    시트에서 범위를 바꿀 때마다 “범위 새로고침”을 눌러 사이드바 상단의 선택 범위를 갱신합니다.

DATA

실제 데이터 행을 SQL로

첫 행은 컬럼 Header, 둘째 행부터는 실제 값입니다. INSERT, UPDATE, DELETE, MERGE/UPSERT, SELECT, IN CONDITION, 컬럼명 변환을 지원합니다.

SCHEMA

테이블 정의를 개발 코드로

첫 행은 COLUMN_NAME, DATA_TYPE 같은 Schema Header이고 둘째 행부터는 컬럼 정의입니다. DDL, Java DTO/VO, MyBatis, SQL CRUD를 지원합니다.

02 / DATA MODE

INSERT 생성 예제

DATA 모드는 화면에 보이는 표 그대로 값을 읽어 DBMS에 맞는 SQL Literal로 변환합니다. 문자열의 작은따옴표는 이스케이프되고, 빈 셀은 NULL로 처리되며, Sheets 날짜 셀은 DBMS에 맞는 날짜 표현식으로 변환됩니다.

1. 시트를 이렇게 작성합니다

USER_IDUSER_NMAGEACTIVE_YN
U001Jane Kim30Y
U002Hong Gil-dong(빈 셀)N
1

첫 행에 컬럼명을 입력합니다

모든 Header 셀은 비어 있지 않아야 하고 컬럼명이 중복되면 안 됩니다.

2

둘째 행부터 실제 데이터를 입력합니다

숫자와 날짜는 가능하면 Sheets의 숫자·날짜 셀 형식을 사용하세요. 빈 셀은 NULL로 처리됩니다.

3

Header와 데이터 행을 함께 선택합니다

예제에서는 A1:D3 전체를 선택합니다. 선택을 바꾼 뒤에는 사이드바의 “범위 새로고침”을 누르세요.

2. 사이드바 옵션을 선택합니다

모드
DATA
DBMS
PostgreSQL
기능
INSERT
테이블명
TB_USER
INSERT 방식
Multi-row
NULL 컬럼 포함
체크

3. 생성 결과를 확인하고 복사합니다

PostgreSQL · INSERT
INSERT INTO TB_USER (
    USER_ID,
    USER_NM,
    AGE,
    ACTIVE_YN
) VALUES
    ('U001', 'Jane Kim', 30, 'Y'),
    ('U002', 'Hong Gil-dong', NULL, 'N');
다른 옵션

“한 행씩”을 선택하면 각 데이터 행마다 INSERT 문 하나를 만듭니다. “NULL 컬럼 포함”을 끄면 빈 값인 컬럼은 해당 행의 INSERT 컬럼 목록에서 제외됩니다. Oracle에서 Multi-row를 선택하면 INSERT ALL 문법이 사용됩니다.

03 / SCHEMA MODE

DDL 생성 예제

SCHEMA 모드는 실제 데이터가 아니라 테이블의 컬럼 정의를 읽습니다. 첫 행의 Header 이름으로 각 속성을 인식하므로, 아래 표처럼 정리하면 가장 안정적입니다.

지원하는 Schema Header

COLUMN_NAME필수

DB 컬럼명. 예: USER_ID

DATA_TYPE필수

DB 타입. 예: VARCHAR, NUMBER(20,5), TIMESTAMP

LENGTH선택

문자·바이너리 길이. 예: 100

PRECISION선택

숫자 전체 자릿수. 예: 20

SCALE선택

숫자 소수 자릿수. 예: 5

PK선택

기본키이면 Y, 아니면 N. 복합 PK는 여러 행에 Y

NULLABLE선택

NULL 허용이면 Y, NOT NULL이면 N. PK는 자동으로 NOT NULL

COMMENT선택

컬럼 설명. COMMENT SQL과 Java Field Comment에 사용

Header는 대소문자를 구분하지 않습니다. COLUMN_NAME/컬럼명, DATA_TYPE/데이터타입, COMMENT/설명 같은 별칭도 인식합니다. 운영 문서에는 위 영문 Header를 권장합니다.

1. 시트를 이렇게 작성합니다

COLUMN_NAMEDATA_TYPELENGTHPRECISIONSCALEPKNULLABLECOMMENT
USER_IDVARCHAR30YNUser ID
USER_NMVARCHAR100NNUser name
AGEINTEGERNYAge
CREATED_ATTIMESTAMPNNCreated at

A1:H5 전체를 선택합니다. DATA_TYPE에 VARCHAR(30), NUMBER(20,5)처럼 길이·정밀도를 직접 적고 LENGTH/PRECISION/SCALE을 비워도 됩니다.

2. 사이드바 옵션을 선택합니다

모드
SCHEMA
DBMS
PostgreSQL
기능
CREATE TABLE
테이블명
TB_USER
테이블 설명
User
컬럼명 원본 대소문자 유지
해제

3. 생성 결과를 확인합니다

PostgreSQL · CREATE TABLE
CREATE TABLE TB_USER (
    USER_ID VARCHAR(30) NOT NULL,
    USER_NM VARCHAR(100) NOT NULL,
    AGE INTEGER,
    CREATED_AT TIMESTAMP NOT NULL,
    CONSTRAINT PK_TB_USER PRIMARY KEY (USER_ID)
);
DBMS 변환

같은 정의표를 Oracle, PostgreSQL, MySQL, MariaDB, Microsoft SQL Server 중 하나로 생성하면 VARCHAR2/VARCHAR, NUMBER/NUMERIC/DECIMAL, CLOB/TEXT 같은 타입이 대상 DBMS에 맞게 변환됩니다. 실제 반영 전에는 팀의 타입·제약조건 규칙과 결과를 반드시 검토하세요.

04 / DEVELOPMENT CODE

Java VO / MyBatis

DDL과 같은 SCHEMA 표를 그대로 재사용합니다. COLUMN_NAME은 camelCase Java 필드로 변환되고, DATA_TYPE은 선택한 DBMS 기준의 Java/JDBC 타입으로 매핑됩니다.

JAVA DTO / VO

Java VO 만들기

  1. SCHEMA 모드에서 정의 범위를 선택하고 새로고침합니다.
  2. 기능은 JAVA DTO / VO, 종류는 VO를 선택합니다.
  3. Package에 com.example.user.vo, Class Name에 UserVo처럼 입력합니다.
  4. Lombok은 @Data, @Getter / @Setter, 사용 안 함 중에서 선택합니다. 사용 안 함이면 getter/setter가 직접 생성됩니다.
  5. Field Comment를 켜면 COMMENT 값이 JavaDoc으로 포함됩니다.
MYBATIS

Mapper XML 만들기

  1. 필요한 기능 하나 또는 MYBATIS FULL CRUD를 선택합니다.
  2. 테이블명 TB_USER, Class Name UserVo와 Package를 입력합니다.
  3. MyBatis Result는 DTO / VO 또는 Map 중에서 선택합니다.
  4. Full CRUD에서는 Mapper Namespace를 생략하면 Class Name과 Package에서 자동 생성됩니다.
  5. UPDATE, DELETE, MERGE/UPSERT에는 SCHEMA 표에 PK=Y인 컬럼이 반드시 필요합니다.

SCHEMA 모드 기능 선택 가이드

CREATE TABLE

테이블 생성 DDL

COMMENT SQL

테이블·컬럼 설명 SQL

FULL SQL CRUD

DBMS별 SELECT/INSERT/UPDATE/DELETE/UPSERT SQL 묶음

MYBATIS FULL CRUD

resultMap과 CRUD Mapper XML 전체

ALL GENERATE

DDL, COMMENT, Java, MyBatis, SQL CRUD 전체 결과

05 / TROUBLESHOOTING

자주 막히는 부분

생성 버튼이 비활성화됨

시트에서 범위를 선택한 뒤 “범위 새로고침”을 누르고, 테이블명·PK 컬럼·Class Name 등 현재 기능의 필수 입력값을 채우세요.

Header와 데이터가 필요하다는 오류

DATA 모드는 첫 행 Header와 한 행 이상의 데이터를 함께 선택해야 합니다.

COLUMN_NAME 또는 DATA_TYPE을 찾을 수 없음

SCHEMA 모드의 첫 행에 두 필수 Header가 포함되어 있는지 확인하세요. 공백과 밑줄은 허용되지만 같은 의미의 Header를 중복해서 넣으면 안 됩니다.

PK 관련 오류

DATA UPDATE·DELETE·UPSERT는 사이드바의 PK 컬럼에 실제 Header명을 입력해야 합니다. SCHEMA MyBatis UPDATE·DELETE·UPSERT는 시트의 PK 열에 Y인 컬럼이 필요합니다.

Java 타입이 Object로 생성됨

지원 목록에 없는 DB 타입은 안전하게 Object로 생성되고 경고가 표시됩니다. DBMS와 DATA_TYPE 표기를 확인한 뒤 필요한 경우 직접 타입을 조정하세요.