엔지니어링

리버스 엔지니어링과 포워드 엔지니어링으로 데이터베이스와 ERD를 동기화하는 방법을 안내합니다.

리버스 엔지니어링

기존 데이터베이스의 테이블을 ERD로 가져옵니다. 별도의 리버스 엔지니어링 버튼 없이, 커넥션에 연결하면 좌측 사이드바에 테이블 목록이 표시되며 원하는 테이블을 ERD 캔버스로 드래그 앤 드롭하여 추가합니다.

드래그 앤 드롭으로 추가

1

커넥션 연결

좌측 사이드바에서 데이터베이스 커넥션에 연결하면 해당 데이터베이스의 테이블 목록이 트리 구조로 표시됩니다.

2

테이블 선택

가져올 테이블을 클릭하여 선택합니다. Ctrl(Cmd) + 클릭으로 여러 테이블을 다중 선택할 수 있습니다.

3

ERD 캔버스로 드래그

선택한 테이블을 ERD 캔버스 영역으로 드래그 앤 드롭합니다. 테이블의 컬럼, 인덱스, FK 등 메타데이터가 자동으로 로드되고 관계선이 표시됩니다.

테이블 드래그 앤 드롭
Tip

여러 테이블을 한 번에 드롭하면 세로 방향으로 자동 배치됩니다.

컨텍스트 메뉴로 추가

드래그 앤 드롭 외에, 사이드바에서 테이블을 우클릭하여 "ERD에 추가" 메뉴를 선택하는 방법도 있습니다. 이 경우 테이블이 현재 뷰포트 중앙에 배치됩니다.

컨텍스트 메뉴로 ERD에 추가

참고: ERD에 이미 추가된 테이블은 중복 추가되지 않으며, 커넥션 또는 스키마가 다른 테이블은 추가할 수 없습니다.

포워드 엔지니어링

ERD에서 설계하거나 수정한 테이블 구조를 DDL로 변환하여 실제 데이터베이스에 반영합니다. 대상 DBMS(MySQL, PostgreSQL, Oracle 등)에 맞는 DDL 구문이 자동으로 생성됩니다.

데이터베이스 반영

1

테이블 변경

ERD에서 테이블을 새로 생성하거나, 기존 테이블의 컬럼·인덱스·FK 등을 수정합니다. 변경 사항이 있는 테이블은 변경 표시가 나타납니다.

2

데이터베이스 반영 실행

변경된 테이블을 선택한 후 "데이터베이스 반영" 버튼을 클릭합니다. 여러 테이블을 다중 선택하여 한 번에 반영할 수도 있습니다(우클릭 → "변경사항 데이터베이스 반영").

3

DDL 미리보기 및 실행

변경 사항 요약과 생성된 DDL 스크립트가 미리보기로 표시됩니다. 내용을 확인한 후 "실행" 버튼을 클릭하면 데이터베이스에 적용됩니다.

DDL 미리보기 및 실행

생성되는 DDL 유형

변경 유형에 따라 다음과 같은 DDL이 자동 생성됩니다.

변경 유형생성 DDL
새 테이블CREATE TABLE (컬럼, PK, FK, 인덱스 포함)
컬럼 추가/수정/삭제ALTER TABLE ADD/MODIFY/DROP COLUMN
인덱스 추가/삭제CREATE INDEX / DROP INDEX
FK 추가/삭제ALTER TABLE ADD/DROP CONSTRAINT
테이블 이름 변경ALTER TABLE RENAME TO
테이블 삭제DROP TABLE

참고: DDL은 하나의 트랜잭션으로 실행됩니다. 하나라도 실패하면 전체가 롤백되어 데이터베이스 일관성이 보장됩니다. 실행 완료 후에는 데이터베이스에서 스키마를 다시 읽어 ERD와 자동 동기화됩니다.

주의: 컬럼 삭제나 데이터 타입 변경 등 파괴적인 변경이 포함된 경우 별도 경고가 표시됩니다. 운영 환경에서는 반드시 백업 후 실행하세요.

변경 요약

DDL 미리보기 모달 상단에 변경사항 요약 정보가 표시됩니다.

항목설명
New Tables신규 생성 테이블 수 (CREATE TABLE)
Deleted Tables삭제 대상 테이블 수 (DROP TABLE)
Modified Tables변경된 기존 테이블 수 (ALTER TABLE)
Columns Added추가된 컬럼 수
Columns Modified수정된 컬럼 수 (타입, 기본값, NULL 여부 등)
Columns Deleted삭제된 컬럼 수
Columns Reordered순서가 변경된 컬럼 수

변경사항 추적

NeoSQL은 스냅샷 기반으로 스키마 변경사항을 자동 추적합니다. 테이블과 컬럼의 원본 상태를 스냅샷으로 저장하고, 현재 상태와 비교하여 변경된 부분만 DDL로 생성합니다.

📸

스냅샷 비교

원본 상태(테이블명, 스키마, 코멘트, PK, FK, 인덱스 등)를 스냅샷으로 보관하고, 현재 상태와 비교하여 변경된 필드만 DDL로 생성합니다.

🔍

컬럼 단위 추적

컬럼별로 이름, 타입, 기본값, NULL 여부, Auto Increment, 코멘트, 순서 변경을 각각 감지합니다.

🔄

자동 분류

신규, 삭제, 수정 상태를 자동 판별하여 CREATE / DROP / ALTER 중 적절한 DDL을 생성합니다.

DDL 생성 순서

ALTER TABLE DDL은 데이터베이스 안정성을 위해 다음 순서로 생성됩니다.

1

테이블 이름 변경

테이블명이 변경된 경우 RENAME을 먼저 실행합니다.

2

테이블 레벨 변경

테이블 코멘트, FK 추가/삭제, 인덱스 추가/삭제, 엔진/문자셋 변경(MySQL/MariaDB) 등을 처리합니다.

3

컬럼 이름 변경

컬럼명이 변경된 경우 ADD/MODIFY 전에 RENAME COLUMN을 먼저 실행합니다.

4

컬럼 추가 → 수정 → 삭제

ADD COLUMN(순서대로), MODIFY COLUMN, DROP COLUMN 순서로 실행합니다.

DBMS별 DDL 생성

NeoSQL은 연결된 DBMS에 맞는 DDL 문법을 자동으로 생성합니다. 동일한 스키마 변경이라도 DBMS에 따라 적절한 구문이 적용됩니다.

항목MySQL / MariaDBPostgreSQLOracleSQL Server
식별자 인용백틱 (`)큰따옴표 (")인용 없음대괄호 ([])
자동 증가AUTO_INCREMENTSERIAL / BIGSERIALSEQUENCEIDENTITY
테이블 코멘트COMMENT '...'COMMENT ON TABLE미지원Extended Properties
컬럼 순서 변경AFTER / FIRST 지원미지원 (재생성)미지원미지원
추가 옵션ENGINE, CHARSET, COLLATION--Filegroup
Tip

지원 DBMS: MySQL, MariaDB, PostgreSQL, Oracle, SQL Server, SQLite, H2. DBMS는 커넥션 설정 시 자동 감지되며, 해당 Dialect에 맞는 DDL이 생성됩니다.