용어집
NeoSQL 가이드와 화면에 자주 등장하는 핵심 용어의 의미를 한곳에 모았습니다.
프로젝트 타입
- Account Project (계정 프로젝트)
- 클라우드를 통해 ERD·SQL 정의를 실시간으로 동기화하는 협업용 프로젝트입니다. 로컬과 서버가 양방향으로 동기화되어 팀원의 변경이 자동 반영되며, 로그인이 필요합니다. 외부 DB 직접 접속이 필요한 경우에는 데스크톱 앱 사용이 권장됩니다.
- Local Project (로컬 프로젝트)
- 모든 프로젝트 데이터를 이 PC 안에만 저장하는 데스크톱 전용 프로젝트입니다. 서버로 동기화되지 않아 로그인 없이도 사용할 수 있으며, 공유·멤버 권한·DDL 승인 같은 계정 기능은 제공하지 않습니다. 계정 프로젝트로의 타입 전환은 지원하지 않습니다.
ERD · 스키마
- ERD (Entity Relationship Diagram)
- 데이터베이스의 테이블, 컬럼, 관계를 시각적으로 표현한 다이어그램입니다. NeoSQL은 ERD를 중심으로 테이블 설계, DB 적용, 가져오기를 수행합니다.
- Forward Engineering (DB 적용 · 정방향)
- ERD에서 정의한 테이블·컬럼·관계 정보를 DDL로 변환해 실제 데이터베이스에 반영하는 작업입니다. 신규 생성과 변경분 적용을 모두 포함합니다.
- Reverse Engineering (가져오기 · 역방향)
- 기존 데이터베이스 또는 DDL 파일에서 테이블 구조와 관계를 읽어 들여 ERD로 자동 변환하는 작업입니다. 가져온 ERD는 일반 ERD와 동일하게 편집하고 다시 DB로 적용할 수 있습니다.
- DDL Import (DDL 가져오기)
- CREATE TABLE·ALTER TABLE·CREATE INDEX 문장을 직접 붙여넣거나 .sql·.txt 파일을 드롭해 ERD로 변환하는 기능입니다. DB에 접속하지 않고도 Reverse Engineering과 같은 결과를 얻을 수 있으며, 대상 스키마에 같은 이름의 테이블이 있으면 해당 항목은 가져오기에서 제외됩니다.
- Identifying · Non-Identifying Relationship (식별 · 비식별 관계)
- 관계선을 그릴 때 선택하는 두 가지 FK 모델입니다. 식별 관계는 부모의 PK가 자식의 PK 일부로 들어가 부모 없이는 자식이 존재할 수 없고(예: 주문 ↔ 주문상세), 비식별 관계는 부모의 PK가 자식의 일반 컬럼으로 들어가 자식이 독립된 PK를 유지합니다(예: 회원 ↔ 주문).
- Generated Column (생성 컬럼 · 가상 컬럼)
- 값을 직접 입력하지 않고 SQL 표현식으로 계산되는 컬럼입니다. 조회 시점에 계산하는 VIRTUAL과 계산 결과를 저장해 두는 STORED 방식이 있으며 지원 범위는 DBMS마다 다릅니다. 생성 컬럼으로 지정하면 일반 기본값과 자동 증가 설정은 함께 사용할 수 없습니다.
- Schema Revision (스키마 리비전)
- ERD를 저장할 때마다 자동으로 만들어지는 스냅샷입니다. 과거 시점의 ERD로 복원하거나 두 리비전 사이의 변경 내역을 비교할 수 있습니다.
- Schema Compare (스키마 비교)
- 두 ERD 또는 ERD와 실제 데이터베이스의 스키마 차이를 나란히 비교해 추가·변경·삭제된 테이블·컬럼·관계를 확인하는 기능입니다. 필요한 차이만 골라 Forward Engineering 으로 반영할 수 있습니다.
- Rename 매칭
- 스키마 비교에서 이름만 바뀐 테이블·컬럼을 "삭제 + 추가" 대신 RENAME DDL로 처리하도록 서로 짝지어 주는 설정입니다. 매칭하지 않으면 DROP 후 재생성으로 표현되어 기존 데이터가 사라지므로, 운영 환경을 동기화할 때 특히 중요합니다.
커넥션
- Profile (연결 프로필)
- DB 커넥션의 위험도를 분류하는 라벨입니다. None / Confirm / Read-only 중 선택하며, Confirm은 DDL이나 WHERE 절 없는 DML을 실행하기 전에 확인 다이얼로그를 띄우고, Read-only는 SELECT 이외의 모든 변경 SQL을 차단합니다.
- Watermark (워터마크)
- 커넥션 프로필을 기준으로 ERD 캔버스와 SQL Editor 배경 전체에 반투명하게 표시되는 라벨입니다. 활성화하면 Prod·Staging 같은 환경 식별자가 작업 화면 전체에 표시되어, 지금 어떤 환경에서 작업 중인지 한눈에 알 수 있고 운영 DB에서의 실수를 방지합니다.
- Public Connection · Private Connection (공개 · 비공개 커넥션)
- 팀원과 공유할 수 있는 커넥션과 본인만 사용하는 커넥션의 구분입니다. localhost나 SQLite처럼 다른 사람이 접속할 수 없는 연결 정보는 자동으로 Private으로 분류되며, Public을 Private으로 바꾸면 그 커넥션을 쓰던 팀 ERD가 개인 ERD로 전환됩니다. Web App에서는 Private 커넥션을 만들거나 사용할 수 없습니다.
- Schema Mapping · Prefix (스키마 매핑 · 접두어)
- 커넥션에서 노출할 데이터베이스 스키마를 선택하고, 필요하면 테이블 이름 앞에 스키마명을 접두어로 붙이는 설정입니다(예: `users` 대신 `public.users`). 접두어는 서로 다른 스키마에 같은 이름의 테이블이 있을 때 이를 구분하는 데 유용합니다.
- Renamer (이름 변환 규칙)
- Reverse Engineering으로 가져올 때 테이블명·컬럼명을 자동 변환하는 규칙입니다. 정규식 치환과 대소문자 형식 변환(snake_case·camelCase 등)을 테이블과 컬럼에 각각 여러 개 등록할 수 있고 목록 순서대로 적용됩니다. Forward Engineering에는 적용되지 않습니다.
- Table Template (테이블 템플릿)
- 커넥션별로 정의해 두는 기본 컬럼 목록입니다. ERD에서 새 테이블을 추가하면 템플릿의 컬럼이 자동으로 포함되므로, created_at·updated_at 같은 공통 감사 컬럼을 모든 테이블에 일관되게 유지할 수 있습니다.
- Custom JDBC Driver (커스텀 드라이버)
- NeoSQL에 번들된 기본 드라이버 대신 사용자가 .jar 파일을 직접 업로드해 등록하는 JDBC 드라이버입니다. 특정 버전이나 사내 전용 드라이버가 필요할 때 사용하며, 데스크톱 모드에서만 등록할 수 있습니다.
- Gallery (갤러리)
- 공개로 발행된 ERD를 모아 둔 공간입니다. 다른 사용자의 ERD를 둘러보고 자신의 프로젝트로 복제해 학습하거나 재사용할 수 있습니다.
- Embed Viewer (임베드 뷰어)
- 갤러리에 공개한 ERD를 iframe으로 블로그·기술 문서·사내 위키 같은 외부 페이지에 삽입해 보여 주는 읽기 전용 뷰어입니다. 테이블 목록 검색과 DDL 조회를 제공하며, 패널·미니맵·컨트롤 표시 여부와 처음 보여 줄 위치를 URL 옵션으로 지정할 수 있습니다.
SQL Editor
- Danger Guard (위험 가드)
- SQL 실행 직전에 위험한 문장을 검사해 경고하는 안전장치입니다. DROP TABLE·TRUNCATE 같은 스키마 삭제 명령은 Critical, WHERE 절 없는 UPDATE·DELETE는 Warning으로 분류해, 실행 전 확인 다이얼로그를 띄워 우발적인 데이터 손실을 막습니다.
- Transaction · Auto-commit (트랜잭션 · 자동 커밋)
- SQL 변경 사항을 언제 확정할지 제어합니다. Auto-commit이 켜져 있으면 각 문장이 실행 직후 자동으로 커밋되고, 꺼져 있으면 사용자가 직접 COMMIT으로 확정하거나 ROLLBACK으로 되돌리며 트랜잭션을 제어합니다.
- Parameterized Query (바인드 파라미터)
- `:이름` 형식의 바인드 변수를 포함한 쿼리입니다. NeoSQL이 실행 시점에 변수를 감지해 모달로 각 값을 입력받으며, 입력값은 자동으로 타입 변환되고 저장되어 다음 실행에서 재사용할 수 있습니다.
- Execution Plan (실행 계획 · EXPLAIN)
- 데이터베이스가 쿼리를 어떻게 실행할지 보여 주는 시각화로, PLAN 버튼으로 엽니다. 실행 경로를 트리로 그리고 단계별로 색을 구분(예: Full Scan 주황, Key Lookup 초록)해 성능 병목을 찾을 수 있으며, DBMS별 해석 가이드를 제공합니다.
- Max Rows · Load More (최대 행 제한 · 추가 로드)
- 한 번에 가져올 결과 행 수의 상한(기본 200행)과, 상한을 넘었을 때 다음 페이지를 이어서 불러오는 기능입니다. 결과가 잘리면 상태 바에 (truncated) 표시와 함께 Load More 버튼이 나타납니다. 편집 모드에서 저장하지 않은 변경이 있을 때 추가 로드를 하면 그 변경은 사라집니다.
- Data Edit (결과 그리드 편집)
- SELECT 결과 그리드에서 값을 직접 고쳐 INSERT·UPDATE·DELETE 하는 편집 모드입니다. 변경은 즉시 반영되지 않고, 생성될 SQL을 미리보기로 확인한 뒤 일괄 적용합니다.
- Snippet (스니펫)
- 자주 쓰는 SQL을 이름·연결 DB·기본 스키마와 함께 저장해 두고 목록에서 다시 불러오는 기능입니다. 실행 히스토리가 자동으로 쌓이는 기록이라면, 스니펫은 사용자가 직접 골라 보관하는 SQL 모음입니다.
협업 · 권한
- Roles (Owner / Manager / DBA / Member)
- 프로젝트 멤버에게 부여하는 4가지 역할입니다. Owner는 프로젝트 생성자(한 명)로 멤버 초대·삭제·소유권 이관까지 모든 권한을 가지며, Manager는 멤버·설정 관리를 위임받은 역할, DBA는 DDL 승인자(approver)로 지정될 수 있는 역할, Member는 일반 협업자입니다. 공유·커넥션·DDL 제한 등 세부 권한은 역할별 체크박스 조합으로 별도 설정합니다.
- Personal ERD · Team ERD (개인 ERD · 팀 ERD)
- 온라인 모드의 두 가지 ERD 종류입니다. 개인 ERD는 본인에게만 보이고 팀원에게 노출되거나 동기화되지 않으며, 팀 ERD는 프로젝트 멤버 전원이 공유하고 실시간으로 양방향 동기화됩니다. 커넥션의 공개/비공개 설정이 종류를 결정하며, 커넥션을 비공개로 전환하면 팀 ERD가 개인 ERD로 변환됩니다.
- Invite Status (초대 상태)
- 프로젝트 초대의 진행 상태입니다. PENDING(대기), ACCEPTED(수락 완료), EXPIRED(만료), CANCELLED(취소) 네 가지 값을 가지며, 수락 전까지는 초대를 취소할 수 있고 만료된 초대는 다시 발송해야 합니다.
- DDL Approver · DDL Restriction (DDL 승인자 · DDL 제한)
- 프로젝트 안에서 DDL(CREATE/ALTER/DROP) 실행을 제한하고, 지정된 DDL 승인자(보통 DBA 역할)의 승인을 받아야만 적용되도록 하는 기능입니다. 운영 DB의 우발적 스키마 변경을 막기 위해 사용합니다.
계정 · 구독
- Workspace (워크스페이스)
- 하나의 구독 플랜을 여러 사용자가 함께 사용하는 단위입니다. 플랜을 결제한 소유자가 멤버를 초대하면, 멤버는 소유자 플랜의 기능과 한도로 직접 프로젝트를 만들 수 있습니다. 프로젝트별 협업 권한(역할)과는 별개의 개념입니다.
- Seat (좌석)
- 워크스페이스에 초대할 수 있는 멤버 수로, 구독 플랜에 따라 결정됩니다. 활성 멤버와 수락 대기 중인 초대가 좌석을 차지하며, 소유자 본인과 정지된 멤버는 좌석을 차지하지 않습니다.
- License Key (오프라인 라이선스 키)
- 오프라인 모드에서 인증에 사용하는 키입니다. 마이페이지의 슬롯에서 직접 발급하며, 발급 시 등록한 JDBC URL로만 접속할 수 있고 유효 기간은 30일입니다. 데스크톱 앱이 주기적으로 유효성을 검사해 만료되면 자동으로 로그아웃됩니다.
- Plan Cleanup (플랜 정리)
- 낮은 플랜으로 다운그레이드했을 때 새 한도를 넘는 프로젝트·멤버·커넥션·스키마 중 계속 사용할 대상을 고르는 절차입니다. 선택하지 않은 리소스는 삭제되지 않고 비활성 상태로 보존되므로, 나중에 상위 플랜으로 올리면 다시 사용할 수 있습니다.
AI · MCP
- MCP (Model Context Protocol)
- Claude, Codex, Gemini 같은 AI 어시스턴트가 NeoSQL의 테이블 정의와 SQL 실행 기능을 도구처럼 호출할 수 있게 해 주는 표준 프로토콜입니다. NeoSQL의 MCP 서버가 도구 목록을 노출하면 AI 클라이언트가 이를 받아 사용합니다.
- NL2SQL (자연어 → SQL)
- 자연어 질문을 AI로 SQL 쿼리로 변환하는 기능입니다. NeoSQL의 내장 AI Assistant 또는 MCP 클라이언트가 필요한 데이터베이스 스키마 정보를 활용하므로, 테이블이나 컬럼 이름을 정확히 몰라도 원하는 데이터를 자연어로 요청할 수 있습니다.
- Provider Key (AI Provider API Key)
- AI Assistant가 LLM을 호출할 때 사용하도록 사용자가 등록하는 API 키입니다. 계정 프로젝트는 암호화된 계정 키를, 로컬 프로젝트는 OS 보안 저장소의 기기 로컬 키를 사용합니다.
- AI DB 컨텍스트
- 메시지를 보낼 때 선택하는 Connection·Database·Schema 범위입니다. 선택 항목은 해당 요청에서 AI가 발견하거나 DB Tool로 접근할 수 있는 엄격한 allowlist이며, 다음 요청 전에 바꿀 수 있습니다.
- SQL 실행 정책 (Execution Policy)
- AI가 만든 SQL의 실행 여부를 대상 Connection 단위로 제어합니다. 실행 경로가 있는 SELECT는 응답 후 자동 실행되고, DML·DDL은 각각 데이터·스키마 변경 자동 적용 설정을 따릅니다. UNKNOWN SQL은 실행하지 않습니다.
- Tool Approval (도구 승인)
- AI가 실제 행을 읽는 제한된 SELECT를 수행하기 전에 사용자가 허용하는 절차입니다. ‘이후 조회 자동 승인’은 같은 프로젝트 런타임의 후속 요청과 다른 Chat에도 유지될 수 있으며, 최종 SQL의 실행 정책과는 별개입니다.
- AI SQL 카드
- AI가 생성한 SQL을 문장별로 보여 주고 실행, 편집기 열기, 복사를 제공하는 Chat 안의 카드입니다. 실행 결과는 카드에서 확인하며 편집기 열기는 일반 SQL Editor의 편집 가능한 사본을 만듭니다.
docs.referenceGlossary.codegen.title
- docs.referenceGlossary.codegen.templateTerm
- docs.referenceGlossary.codegen.templateDef
- docs.referenceGlossary.codegen.languageProfileTerm
- docs.referenceGlossary.codegen.languageProfileDef
- docs.referenceGlossary.codegen.velocityTerm
- docs.referenceGlossary.codegen.velocityDef
- docs.referenceGlossary.codegen.draftVersionTerm
- docs.referenceGlossary.codegen.draftVersionDef
보안
- Zero-Knowledge Encryption (영지식 암호화)
- 사용자 패스프레이즈에서 파생된 키로만 자격증명을 복호화하는 추가 보호 레이어입니다. 서버에는 평문 키가 저장되지 않으며, 패스프레이즈를 분실하면 데이터 복구가 불가능합니다.
- Standard Encryption (표준 암호화)
- AES-256-GCM 기반의 자격증명 암호화 방식이며, 데이터 키(DEK)는 KMS Envelope Encryption 으로 보호됩니다. 별도 설정 없이 모든 사용자에게 기본 적용됩니다.
- DEK (Data Encryption Key)
- DB 접속 정보 같은 민감 데이터를 직접 암호화하는 키입니다. 사용자·자원 단위로 분리 생성되며, 평문 형태로는 어디에도 저장되지 않고 KMS Envelope Encryption 으로 한 번 더 감싸서 보관됩니다.
- KMS Envelope Encryption
- 클라우드 KMS(Key Management Service) 의 마스터 키로 DEK 를 다시 한 번 암호화해 저장하는 방식입니다. 마스터 키는 KMS 밖으로 나가지 않으며, DEK 가 필요할 때마다 KMS 에 unwrap 을 요청해 평문 키를 잠깐만 메모리에 두기 때문에 데이터베이스가 유출되더라도 자격증명이 곧바로 풀리지 않습니다.
- Column Masking (민감정보 마스킹)
- 주민등록번호·연락처·계좌번호처럼 노출되면 안 되는 값을 컬럼 단위 또는 정규식 패턴 단위로 지정해 두고, 마스킹 대상 역할로 접속한 팀원에게는 서버에서 가린 채 내려보내는 기능입니다. 실제 값은 클라이언트로 전달되지 않습니다.