본문으로 건너뛰기

사전

사전 탭은 다이어그램의 명명 표준을 세 사전에 담으며, 각 사전은 스프레드시트처럼 편집하는 시트 하나에 들어 있습니다.

  • Domains: 이름이 붙은 데이터 타입. VARCHAR(100)에 붙인 Name이 그 예입니다. 도메인에 연결된 컬럼은 그 도메인의 데이터 타입을 가집니다.
  • Words: 논리명을 이루는 표준 단어. 각 단어에는 물리명에서 그 단어 대신 쓰는 약어가 있으며, Customer와 CUST가 그 예입니다.
  • Terms: 논리명 전체. 각 용어에는 그 용어가 정해 주는 물리명과 도메인이 있으며, Customer Name과 CUST_NM이 그 예입니다.

테이블이나 컬럼의 논리명에서 이 사전을 바탕으로 물리명이 생성되며, 컬럼의 용어는 그 컬럼을 도메인에 연결할 수도 있습니다. 물리명 생성 항목을 참고하세요.
네 번째 시트인 Checks는 논리명 속의 금칙어처럼, 사전이 다이어그램의 이름과 타입, 그리고 사전 자체에서 찾아낸 문제를 나열합니다. 검사 시트 항목을 참고하세요.

탭 열기​

툴바에서 Code Generator와 Settings 사이에 있는 책 아이콘 버튼인 Dictionary 탭으로 전환하거나, 빠른 검색의 Tab에서 Dictionary를 선택합니다.
사전 탭을 다이어그램이 열리는 탭으로 정할 수도 있습니다. 잠금 문서의 Canvas Type을 참고하세요.

다른 시트를 고르기 전까지 탭은 Domains 시트로 열립니다.
탭을 열 때마다 시트는 마지막으로 두었던 선택과 스크롤 위치로 돌아오며, 처음 열 때는 첫 번째 셀이 선택된 상태로 열립니다. 시트의 그리드가 키보드 포커스를 가져가므로, 바로 입력하거나 화살표 키를 쓸 수 있습니다.

표시 중인 시트와 각 시트의 검색, 선택, 스크롤 위치, 열 너비는 사용자 한 사람만의 것입니다.
이 중 어느 것도 파일에 저장되거나, Undo 히스토리에 기록되거나, 공동 편집자와 공유되지 않습니다. 에디터가 열려 있는 동안에는 탭을 전환해도, 같은 에디터에 다른 문서를 불러와도 유지됩니다.

시트​

위쪽 막대에는 Domains, Words, Terms, Checks의 네 시트 버튼이 있으며, 표시 중인 시트의 버튼이 눌린 상태로 표시됩니다. 각 버튼은 이름 옆에 개수를 표시합니다. 검색과 상관없이 그 시트가 가진 행의 수이며, Checks에서는 검사의 수를 수준에 따른 색으로 표시합니다. 검사 시트 항목을 참고하세요.
그다음에는 검색 입력란이 있습니다. 검색 항목을 참고하세요. Domains, Words, Terms에서는 읽기 전용 에디터가 아닐 때 막대 끝에 Add Row, Delete Rows, Import CSV, Export CSV의 네 도구가 있습니다. 행 추가와 삭제와 CSV 가져오기와 내보내기 항목을 참고하세요.
좁은 창이나 텍스트가 긴 표시 언어에서는 막대가 여러 줄로 줄바꿈되므로, 모든 버튼을 계속 누를 수 있습니다.

그리드 아래의 상태 줄은 4 rows처럼 검색 후 남은 행의 수를 세고, 선택이 행을 하나라도 포함하는 동안에는 1 selected처럼 선택이 포함하는 행의 수도 셉니다. 두 범위가 함께 포함하는 행은 한 번만 세므로, 이 수는 Delete Rows가 삭제할 행의 수와 같습니다.
왼쪽의 행 번호는 시트에 표시된 순서대로 1부터 행을 셉니다. 읽기 전용 셀은 Checks의 모든 셀과 읽기 전용 에디터의 모든 셀이며, 검사가 표시한 곳을 제외하고 회색 배경으로 그려집니다.
읽기 전용 에디터가 아니면, 비어 있는 Domains, Words, Terms 시트에 Import a CSV file or add a row가 표시됩니다.

각 시트의 열은 다음 순서로 놓입니다.

시트열
DomainsDomain, Category, Data Type, Description
WordsWord, Abbreviation, English Name, Description, Synonyms, Forbidden Words
TermsTerm, Physical Name, Domain, Description, Synonyms
ChecksType, Target, Detail

각 셀의 역할은 다음과 같습니다.

  • 도메인의 Data Type은 VARCHAR(100)이나 NUMERIC(15,2)처럼 컬럼 타입으로 쓰며, 그 도메인에 연결된 모든 컬럼이 이 타입을 가집니다. 도메인과 데이터 타입 항목을 참고하세요.
  • 단어의 Abbreviation은 물리명에서 그 단어 대신 쓰는 값입니다. 단어로 조합 항목을 참고하세요.
  • 단어의 Synonyms와 Forbidden Words에는 같은 대상을 가리키는 다른 단어를 쉼표로 구분해 나열합니다. 각 항목은 앞뒤 공백이 제거되며, 빈 항목은 버려지고, 단어 자신과 같은 항목은 무시됩니다. 이 중 하나를 쓰는 논리명으로는 물리명이 조합되지 않으며, Checks 시트가 그 논리명을 지적하고 대신 쓸 단어를 알려 줍니다. 검사별로 찾는 내용 항목을 참고하세요.
  • 용어의 Term은 논리명 전체이며, Physical Name은 그 논리명이 생성하는 이름입니다. 용어로 생성 항목을 참고하세요.
  • 용어의 Domain은 그 용어가 연결한 도메인의 이름을 표시하며, 연결한 도메인이 없거나 연결한 도메인이 그 뒤 삭제되었다면 비어 있습니다. 용어의 도메인 항목을 참고하세요.
  • Category, English Name, 각 Description, 용어의 Synonyms는 참고용 값입니다. 아무것도 바꾸지 않으며, 어떤 검사도 이 값을 읽지 않습니다.

오른쪽에서 왼쪽으로 쓰는 표시 언어에서는 막대, 그리드 메뉴, 상태 줄이 좌우로 뒤집히지만, 시트와 용어의 도메인 목록은 왼쪽에서 오른쪽 방향을 유지합니다.

물리명 생성​

사전은 테이블이나 컬럼의 논리명으로 물리명, 즉 Schema SQL과 Code Generator가 쓰는 이름을 생성할 수 있습니다. 먼저 Term이 그 논리명인 용어를 찾으며, 없으면 단어의 약어로 이름을 조합합니다.
예를 들어 단어 Customer (CUST), Name (NM), Number (NO), Order (ORD), Date (DT)가 있고, 용어 Customer Number의 물리명이 CUST_NO, 도메인이 데이터 타입 INT인 Number라면 다음과 같습니다.

  • 논리명 Customer Number는 컬럼의 이름을 CUST_NO로 정하고, 컬럼을 Number에 연결하며, 타입을 INT로 정합니다.
  • Order Date는 ORD_DT로 조합됩니다.
  • 논리명이 Customer인 테이블의 이름은 CUST가 됩니다.

Words 시트와 Terms 시트가 모두 비어 있으면 아무것도 생성되지 않습니다.

이름이 생성되는 때​

물리명은 논리명이 기록되는 다음 시점에 생성됩니다.

  • 캔버스에서, 편집을 시작할 때와 다른 논리명으로 논리명 셀의 편집모드가 Enter, Tab, Escape, 다른 곳 클릭으로 닫힐 때. 키를 하나씩 입력하는 동안에는 논리명만 기록됩니다. 논리명 입력 문서를 참고하세요.
  • 셀 아래 목록에서 용어를 고르는 즉시. 용어명 자동완성 문서를 참고하세요.
  • 붙여넣기가 논리명 셀에 값을 쓸 때. Column 복사/붙여넣기 문서를 참고하세요.
  • 찾기와 바꾸기가 일치 항목 하나 또는 전부의 논리명을 바꿀 때.
  • 코딩 에이전트가 논리명을 설정할 때.

물리명이 비어 있거나 물리명 자체가 생성된 이름일 때만 생성됩니다. 직접 입력한 이름 항목을 참고하세요.
용어 선택, 붙여넣기, 바꾸기는 논리명과 그로부터 생성된 내용을 Undo 한 단계로 기록합니다. 캔버스에서 편집모드가 닫힐 때 생성된 이름은 입력 뒤에 별도의 단계로 기록됩니다. 첫 번째 Undo는 생성된 이름을 용어가 가져온 도메인, 타입과 함께 되돌리고, 입력한 논리명은 남겨 둡니다.

나중에 저절로 다시 생성되는 일은 없습니다. 단어의 Abbreviation이나 용어의 Physical Name, Domain을 바꾸거나 단어나 용어를 새로 추가해도 이미 생성된 이름은 그대로이므로, 이때는 물리명 다시 생성을 사용하세요. 도메인의 Data Type은 예외입니다. 바뀐 값이 곧바로 그 도메인의 컬럼에 반영됩니다.

용어로 생성​

먼저 Terms 시트에서 Term이 논리명과 같은 용어를 찾습니다. 앞뒤 공백과 유니코드 조합 형태는 무시하지만 대소문자를 구분하므로, customer number는 Customer Number와 일치하지 않습니다. 이름이 같은 용어가 둘이면 시트에서 앞에 있는 용어가 쓰입니다.

  • 용어는 Physical Name을 정해 주며, 그 값이 비어 있는 동안에는 아래와 같이 용어의 단어로 이름이 조합되면 그 이름을 정해 줍니다.
  • 컬럼이라면 용어는 자신의 Domain이 Domains 시트에 있는 동안 컬럼을 그 도메인에 연결하기도 하며, 이로써 컬럼이 도메인의 데이터 타입을 가집니다. 컬럼 연결 항목을 참고하세요. 용어가 이름을 정해 주지 않을 때도 연결합니다. 도메인이 없는 용어는 아무 연결도 해제하지 않습니다.
  • 테이블은 용어의 물리명만 가져갑니다.

단어로 조합​

일치하는 용어가 없으면 단어로 이름을 조합합니다.

  1. 논리명을 공백, _, -, ·, /에서 나누며, 나뉜 경계를 넘는 단어는 없습니다.
  2. 각 조각을 왼쪽부터 읽으며, 매 위치에서 Words 시트에 Word, 이음동의어, 금칙어로 등록된 가장 긴 텍스트를 취하고, 뒤로 돌아가지 않습니다. 단어 가입, 가입일, 일자가 있으면 가입일자는 가입일과 자로 읽혀 자가 미등록 단어로 남고, 가입 일자는 가입과 일자로 읽힙니다. 대소문자를 구분하므로 member는 단어 Member가 아닙니다.
  3. 물리명은 ORD_DT처럼 각 단어의 Abbreviation을 입력된 그대로 _로 이은 것입니다. 이름이 같은 단어가 둘이면 시트에서 앞에 있는 단어의 약어가 쓰입니다. 길이 제한은 없으며, Code Generator의 Table Name Case와 Column Name Case는 관여하지 않습니다.

모두 조합되거나 전혀 조합되지 않습니다. 어느 한 구간이라도 이음동의어나 금칙어, 또는 어떤 단어에도 없는 텍스트이거나, 어떤 단어의 Abbreviation이 비어 있으면 이름은 조합되지 않고 물리명은 그대로 남습니다.

직접 입력한 이름​

사전은 물리명이 비어 있거나 그 물리명 자체를 사전이 채운 경우에만 물리명을 채웁니다. 에디터는 이 상태를 테이블과 컬럼마다 기억하지만, 캔버스에는 아무것도 표시되지 않습니다.

  • 사용자가 쓴 이름은 직접 입력한 이름이 됩니다. 이름 셀에 입력하기, 찾기와 바꾸기로 테이블이나 컬럼 이름 바꾸기, 컬럼의 이름 셀에 붙여넣기, 코딩 에이전트의 이름 바꾸기가 여기에 해당합니다. 나중에 논리명을 쓰면 이름은 그대로 두고 논리명만 기록하며, 도메인도 연결하지 않습니다.
  • 비어 있는 이름은 항상 생성되므로, 이름을 지우면 다시 사전이 생성하는 이름으로 되돌아갑니다.
  • 아무것도 생성하지 않는 논리명은 물리명과 그 상태를 그대로 둡니다. 비어 있는 이름은 비어 있는 채로 남고, 생성된 이름은 그 이름을 유지하며 계속 사전이 생성하는 이름으로 남습니다.
  • 새 테이블이나 컬럼은 이름이 비어 있는 상태로 시작하므로, 처음 쓰는 논리명으로 이름이 생성됩니다. 관계가 추가하는 foreign key 컬럼은 키의 이름을 따라 이름이 지어지며 직접 입력한 이름으로 취급됩니다. Foreign Key 컬럼 이름 문서를 참고하세요.
  • Schema SQL, GraphQL, DBML, AML의 Import나 Import and Add로 가져온 이름과, 사전 탭이 생기기 전의 릴리스로 만든 다이어그램의 이름은 직접 입력한 이름으로 취급되므로, 나중에 논리명을 써도 아무것도 생성되지 않습니다.
  • 복제한 테이블, 드래그 핸들로 다른 테이블로 옮긴 컬럼, 복사한 테이블의 붙여넣기, JSON 파일의 Import and Add는 각 이름의 상태를 유지합니다. 선택한 테이블에 새 컬럼으로 붙여넣은 컬럼은 직접 입력한 이름으로 취급되며, 붙여넣은 이름이 비어 있고 논리명으로 이름이 생성될 때만 예외입니다.
  • 물리명 다시 생성은 가져온 이름을 포함해 직접 입력한 이름을 다시 사전이 생성하는 이름으로 되돌립니다.

이름이 같은 두 컬럼​

생성될 이름을 같은 테이블의 다른 컬럼이 이미 가지고 있으면, 그 컬럼에는 아무것도 생성되지 않습니다. 컬럼은 이름, 상태, 도메인 연결을 유지하며 논리명만 기록됩니다. 이름은 foreign key 컬럼 이름과 마찬가지로 대소문자와 앞뒤 공백을 무시하고 비교합니다.
테이블 전체에 대한 Replace All이나 Derive Physical Names Again처럼 한 번의 변경으로 두 컬럼이 같은 이름을 갖게 될 때는, 테이블에서 앞에 있는 컬럼이 그 이름을 가져갑니다.
예를 들어 MBR_NO를 키로 하는 members의 자기 참조는 MBR_NO_2를 추가하며, 이 컬럼은 논리명 Member Number를 복사합니다. Derive Physical Names Again은 이 컬럼의 이름을 MBR_NO로 정하려 하지만 그 이름은 키가 가지고 있으므로, 컬럼은 MBR_NO_2를 유지합니다.
테이블에는 이런 규칙이 없습니다. 두 테이블에 같은 이름이 생성될 수 있습니다.

물리명 다시 생성​

단어의 Abbreviation이나 용어의 Physical Name, Domain을 바꾼 뒤에는 Derive Physical Names Again을 사용하세요. 이런 변경만으로는 아무 이름도 바뀌지 않습니다. 이 기능은 대상이 되는 이름을 직접 입력한 이름까지 포함해 다시 사전이 생성하는 이름으로 되돌리고, 위의 규칙대로 다시 생성합니다. ERD 탭에서만, 읽기 전용 에디터가 아닐 때 다음 위치에서 제공됩니다.

  • 테이블 컨텍스트 메뉴의 Focus on this table이나 Focus on selected tables 바로 다음. 테이블이 두 개 이상 선택된 테이블 중 하나인 동안에는 테이블의 어디를 마우스 오른쪽 클릭하든 Derive Physical Names Again이 선택된 테이블 모두를 대상으로 합니다. 그 밖의 경우에는 컬럼 행을 마우스 오른쪽 클릭하면 그 컬럼만 대상으로 하는 Derive Physical Name Again이, 헤더를 마우스 오른쪽 클릭하면 테이블의 이름과 모든 컬럼을 대상으로 하는 Derive Physical Names Again이 표시됩니다.
  • 캔버스 컨텍스트 메뉴의 Name View 바로 다음. 다이어그램의 모든 테이블과 컬럼을 대상으로 하는 Derive Physical Names Again입니다. 다이어그램에 테이블이 없는 동안에는 표시되지 않습니다.
  • 빠른 검색. 포커스된 컬럼, 포커스된 테이블, 선택한 테이블, 다이어그램 전체에 대한 항목으로 표시됩니다.

Words 시트에서 Number의 약어를 NO에서 NUM으로 바꿔도 다이어그램의 물리명은 MBR_NO와 PAY_NO로 남고, 캔버스 메뉴의 Derive Physical Names Again으로 MBR_NUM과 PAY_NUM으로 바뀌는 동안 용어가 정해 주는 ORD_NO는 그대로 남는 모습

대상이 되는 테이블과 컬럼 중 논리명이 있는 것은 모두 다시 생성됩니다. 컬럼은 용어가 정해 주는 도메인과 그 도메인의 타입도 함께 가지며, 이 타입은 관계 데이터 타입 동기화가 켜져 있는 동안 관계를 따라 퍼집니다.
논리명이 없는 테이블이나 컬럼과, 새 이름을 같은 테이블의 다른 컬럼이 가지고 있는 컬럼은 건드리지 않습니다. 이름이 같은 두 컬럼 항목을 참고하세요. 이들은 각각 이름과, 직접 입력한 이름인지 사전이 생성한 이름인지의 상태를 유지하며, 컬럼은 도메인 연결도 유지합니다.
지금 아무것도 생성하지 않는 논리명은 물리명을 그대로 두지만 다시 사전이 생성하는 이름으로 되돌리므로, 다음에 쓰는 논리명으로 이름이 생성됩니다.
바꾸는 이름, 연결, 타입이 몇 개든 Undo 한 단계입니다. 아무것도 바꾸지 않을 때만 단계를 기록하지 않으며, 직접 입력한 이름을 다시 사전이 생성하는 이름으로 되돌리는 것은 그 이름이 이미 사전이 정해 주는 값과 같더라도 변경으로 칩니다.

용어 자체의 Physical Name은 바뀐 단어로 다시 조합되지 않으므로, 다시 생성하기 전에 용어를 고치세요.

도메인과 데이터 타입​

도메인에 연결된 컬럼은 도메인의 Data Type을 가집니다. 컬럼을 연결하면 곧바로 그 타입이 됩니다.
Domains 시트에서 편집, 붙여넣기, 가져오기로 바꾸든 공동 편집자나 코딩 에이전트가 바꾸든, 도메인의 Data Type이 바뀌면 그 도메인에 연결된 모든 컬럼이 같은 단계에서 새 타입을 가집니다. 관계 데이터 타입 동기화가 켜져 있는 동안에는 타입을 직접 입력해 바꿀 때와 마찬가지로 각 변경이 관계를 따라 이어지며, 꺼져 있는 동안에는 연결된 컬럼만 바뀝니다.
도메인의 이름을 바꾸면 컬럼의 도메인 셀에 표시되는 이름만 바뀝니다.

Domains 시트에서 바꾼 타입은 그로 인해 바뀐 컬럼 타입과 함께 그 시트에서 되돌립니다. 사전 시트 문서를 참고하세요.
ERD 탭에서 컬럼을 도메인에 다시 연결하거나 도메인에 연결된 컬럼을 되살리는 Undo나 Redo는 컬럼이 도메인의 현재 타입을 갖게 합니다. 다른 타입을 되돌려 놓는 Undo나 Redo는 컬럼의 연결을 해제합니다.

컬럼 연결​

컬럼은 다음 방법으로 도메인에 연결됩니다.

  • View Option → Domain으로 표시되는 컬럼의 도메인 셀에서, 또는 Logical Names 보기에서는 도메인 셀을 대신하는 타입 셀에서 도메인 고르기. 도메인 셀 문서를 참고하세요.
  • 용어가 도메인을 정해 주는 논리명. 용어로 생성 항목을 참고하세요. 이름이 생성되는 동안에만 일어나므로, 직접 입력한 이름이나 생성될 이름을 다른 컬럼이 가지고 있는 컬럼에서는 일어나지 않습니다.
  • 대상이 되는 각 컬럼을 그 용어의 도메인에 연결하는 Derive Physical Name Again이나 Derive Physical Names Again.
  • 관계. foreign key 컬럼은 키의 타입, 논리명과 함께 키의 도메인을 복사합니다. 식별 관계 문서를 참고하세요. serial 키처럼 복사본이 다른 타입을 갖게 되는 키는 도메인을 넘겨주지 않습니다.
  • 테이블 복제나 드래그 핸들로 다른 테이블로 옮기기. 둘 다 연결을 유지합니다. 복사한 테이블이나 컬럼의 붙여넣기는 이 다이어그램에 그 도메인이 있고 도메인이 여전히 복사한 컬럼의 타입을 가질 때만 연결을 유지하므로, 다른 다이어그램에서 복사한 것은 연결되지 않은 채 붙여넣어집니다. 테이블, 메모 복사/붙여넣기 문서를 참고하세요. Import and Add는 어떤 컬럼도 연결하지 않습니다.
  • 도메인 셀에 붙여넣은 도메인 이름. Column 복사/붙여넣기 문서를 참고하세요.

연결 해제​

  • 연결된 컬럼의 DataType 셀에 타입을 입력하거나 제안을 받아들이면, 타입이 도메인의 타입과 달라지는 순간 컬럼의 연결이 해제되며 컬럼은 입력한 타입을 유지합니다. DataType 자동완성 문서를 참고하세요. 도메인의 타입을 다시 입력해도 다시 연결되지 않으므로, 대신 도메인 셀에서 도메인을 고르세요. DataType 셀에 붙여넣기와 코딩 에이전트의 타입 변경도 같은 방식으로 연결을 해제합니다.
  • 관계 데이터 타입 동기화가 켜져 있는 동안에는, 자신만의 도메인에 연결된 foreign key처럼 타입 변경이 닿는 컬럼 중 새 타입이 자신의 도메인 타입과 다른 컬럼이 모두 같은 단계에서 연결 해제됩니다. 컬럼 매핑도 타입을 바꾸는 컬럼의 연결을 같은 방식으로 해제합니다.
  • 도메인 셀에서 None을 고르면 컬럼의 연결이 해제되며 타입은 유지됩니다.
  • 용어의 Domain을 바꾸거나 지우거나 용어를 삭제해도 어떤 컬럼도 바뀌지 않습니다.

도메인 삭제​

도메인의 행을 삭제해도 그 도메인의 컬럼은 타입을 유지하며 연결도 남습니다. 컬럼에는 도메인이 표시되지 않으며, Domains 시트에 도메인이 하나라도 남아 있는 동안 Checks 시트가 각 컬럼에 대해 Unknown domain을 나열합니다. Domains 시트에서 삭제를 되돌리면 연결이 다시 표시됩니다.
도메인이 없는 동안 이런 컬럼에 도메인의 타입과 다른 타입을 입력하면 연결이 완전히 해제되며, 도메인 셀에서 None을 골라도 마찬가지입니다.
파일을 저장할 때 이런 연결은 제외되므로, 다이어그램을 다시 열면 그 컬럼들은 연결이 해제된 상태입니다.

삭제된 도메인에 연결된 용어는 Domain 셀이 비어 있으며, 그 셀에 Unknown domain 표시가 붙습니다. 셀에서 Delete나 Backspace를 누르면 연결이 해제됩니다. 용어의 도메인 항목을 참고하세요.

검사 시트​

Checks 시트는 사전의 검사가 사전 자체와 다이어그램의 테이블, 컬럼에서 찾아낸 내용을 나열합니다. 검사는 읽기만 할 뿐, 아무것도 바꾸지 않습니다.
각 검사는 그 검사가 읽는 시트에 행이 있는 동안에만 실행되며, 단어 검사는 Words 시트에 이름이 있는 단어가 있는 동안에만 실행되므로, 사전이 비어 있는 다이어그램에서는 아무것도 나열되지 않습니다.

Logical Names 보기에서 Customer Num은 빨간색, Order Stat은 호박색으로 그려지고, Checks 시트가 빨간색 개수와 함께 두 이름의 검사 세 개를 나열하며, Forbidden word 행을 더블 클릭하면 다이어그램의 Customer Num으로 돌아가고, 이를 Member Number로 다시 입력하면 검사가 하나 남는 모습

세 열은 모두 읽기 전용입니다.

  • Type은 검사의 이름입니다. 검사별로 찾는 내용 항목을 참고하세요.
  • Target은 단어, 용어, 도메인을 그 이름으로, 테이블을 테이블 이름으로, 컬럼을 table.column 형태로 가리킵니다. 테이블과 컬럼은 이름 표시에 따른 이름으로 표시되며, 현재 보기에 이름이 표시되지 않는 곳은 unnamed가 됩니다.
  • Detail은 멤버 → 회원처럼 검사가 찾은 내용과, → 뒤에 사전이 대신 제안하는 내용을 표시하며, 제안이 여러 개이면 쉼표로 잇습니다. — → NUMERIC(15)처럼 비어 있는 쪽은 —로 표시됩니다.

단어의 검사가 먼저 나오고, 그다음 용어와 도메인의 검사, 그다음 테이블별로 각 테이블과 그 컬럼의 검사가 나옵니다.
목록은 공동 편집자와 코딩 에이전트의 편집을 포함해 모든 편집이 반영될 때마다, 그리고 이름 표시를 전환할 때마다 바로 갱신됩니다.
Checks 버튼의 개수는 오류인 검사가 하나라도 있으면 빨간색, 모두 경고이면 호박색, 검사가 없으면 흐린 색입니다.

행은 편집, 추가, 삭제, 정렬, 가져오기, 내보내기를 할 수 없습니다. 막대에는 도구가 표시되지 않고, 마우스 오른쪽 클릭으로 그리드 메뉴가 열리지 않으며, Undo와 Redo는 아무 동작도 하지 않습니다. 검색, 선택, 복사는 다른 시트에서와 같이 동작합니다.

행에서 Enter를 누르거나 더블 클릭하면 그 행이 가리키는 대상으로 이동합니다.

  • 단어, 용어, 도메인: 탭이 그 시트를 표시하며, 검사가 읽는 셀인 이름이나 용어의 Domain이 선택되고 그 행이 보이는 영역의 맨 위에 옵니다. 시트의 검색이 그 행을 숨기고 있으면 검색이 지워집니다. 그 뒤 삭제된 행으로는 이동하지 않습니다.
  • 테이블이나 컬럼: ERD 탭이 열리며, 그 테이블만 선택되고 검사가 읽는 셀에 포커스가 갑니다. 이 셀은 이름, 논리명, 도메인 셀이며, 행에 그 셀이 그려지지 않으면 그 자리에 그려지는 셀입니다. 캔버스가 키보드 포커스를 가져가며, 화면은 이동 후 화면 위치의 규칙에 따라 움직입니다.

머리글, 열 가장자리, 스크롤바, 행 아래 빈 곳을 더블 클릭하면 아무 데로도 이동하지 않습니다.
코딩 에이전트는 erd_list_checks로 같은 검사를 같은 순서로 나열합니다. 사전 검사 문서를 참고하세요.

나머지 세 시트는 검사가 읽는 셀, 즉 이름이나 용어의 Domain을 옅은 색 배경 위의 빨간색이나 호박색 텍스트로 표시합니다.

  • 빨간색: 같은 시트의 다른 행에도 있는 이름, 삭제된 도메인에 연결된 용어의 Domain, 금칙어를 쓰는 Term.
  • 호박색: 이음동의어나 미등록 단어를 쓰는 Term.

한 셀에 여러 수준이 겹치면 더 높은 수준의 색을 씁니다. 이 표시는 읽기 전용 에디터에서도 나타나며, Checks 시트 자체에는 색이 칠해지지 않습니다. ERD 캔버스의 표시는 캔버스의 표시 항목을 참고하세요.

검사별로 찾는 내용​

Type수준찾는 내용Detail의 예
Duplicate name오류같은 시트의 다른 행에도 있는 Word, Term, Domain. 해당하는 행이 모두 나열됩니다.Member
Unknown domain오류Domains 시트에 도메인이 있는 동안, 삭제된 도메인에 여전히 연결된 컬럼이나 용어삭제된 도메인의 이름
Forbidden word오류논리명이나 Term 중에서 어떤 단어가 Forbidden Words에 나열한 구간커스터머 → 고객
Unregistered word경고테이블이나 컬럼의 논리명, 또는 Term 중에서 어떤 단어에도 없는 구간자
Synonym경고어떤 단어가 Synonyms에 나열한 구간멤버 → 회원
Physical name mismatch경고논리명은 용어와 일치하지만 물리명이 그 용어가 정해 주는 이름과 다른 테이블이나 컬럼mbr_no → MBR_NO
Domain type mismatch경고DataType이 연결된 도메인의 Data Type과 다른 컬럼INT → NUMERIC(15)
  • 이름은 앞뒤 공백을 제거하고 대소문자를 구분해 비교하므로 Member와 member는 서로 다른 이름이며, 비어 있는 이름은 중복으로 치지 않습니다. 시트는 두 행에 같은 이름을 주는 편집을 거부하므로, Duplicate name은 두 공동 편집자가 동시에 행 이름을 정할 때처럼 두 편집이 엇갈린 경우나, 다른 곳에서 편집한 파일에서만 나타납니다.
  • 단어 검사는 단어로 조합과 같은 방식으로 이름을 읽으며, 서로 다른 구간을 이름마다 한 번씩 나열합니다. Forbidden word와 Synonym은 그 구간을 나열한 단어를 제안합니다.
  • Physical name mismatch는 앞뒤 공백을 제거한 이름을 용어의 Physical Name과, 그 값이 없으면 용어의 단어로 조합한 이름과 비교하며, 용어가 이름을 정해 주지 않으면 아무것도 표시하지 않습니다. 키의 논리명을 복사한 foreign key 컬럼은 members_id → MBR_ID처럼 자신의 이름이 용어의 이름과 다를 때마다 이 검사가 표시됩니다. 다른 컬럼이 그 이름을 가지고 있지 않다면 Derive Physical Name Again으로 고칠 수 있습니다.
  • 연결된 컬럼은 항상 결국 도메인의 타입을 가지므로, 에디터 하나에서의 편집으로는 Domain type mismatch가 생기지 않습니다. 한 공동 편집자가 컬럼을 연결하는 동안 다른 공동 편집자가 그 도메인의 타입을 바꿀 때나, 다른 곳에서 작성한 파일에서 생길 수 있습니다. 컬럼의 도메인 셀에서 도메인을 다시 고르면 컬럼이 그 타입을 가지며, None을 고르면 연결이 해제됩니다. 삭제된 도메인에 대한 연결은 Unknown domain으로만 표시됩니다.

캔버스의 표시​

ERD 캔버스는 검사가 지적한 이름을 그 검사의 색으로 씁니다.

  • 테이블 헤더나 컬럼 행의 논리명 셀은 논리명이 금칙어를 쓰면 빨간색이고, 그렇지 않고 이음동의어나 Words 시트에 없는 단어를 쓰면 호박색입니다.
  • 헤더나 행의 물리명 셀은 논리명과 일치하는 용어가 다른 물리명을 정해 주면 호박색입니다.

표시되는 셀은 이 두 종류뿐이며 도메인 셀이나 DataType 셀은 표시되지 않으므로, 컬럼의 Unknown domain과 Domain type mismatch는 Checks 시트에만 나타납니다.
셀은 그 셀이 그리는 내용에 대해서만 표시됩니다. Physical Names 보기는 물리명만, Logical Names 보기는 논리명만 표시할 수 있으며, Both Names 보기는 각 셀을 그 셀의 검사에 따라 표시합니다. 이름 표시 문서를 참고하세요. 빈 셀은 플레이스홀더 색을 유지하며, 사전이 비어 있으면 아무것도 표시되지 않습니다.
색이 지정된 테이블 그룹에 속한 테이블의 헤더에서는 그룹 색 위에서 읽을 수 있을 때만 표시의 색이 유지되며, 그렇지 않으면 이름은 헤더 자체의 검은색이나 흰색이 됩니다.

표시는 읽기 전용 에디터를 포함해 ERD 캔버스, Time Travel, 자동 배치 미리보기에 나타납니다. Visualization 탭, Diff Viewer의 양쪽 화면, 내보낸 이미지에는 표시가 그려지지 않습니다.
표시는 이름의 변경이든 단어, 용어, 도메인의 변경이든 모든 변경을 즉시 따라갑니다.

검색​

검색 입력란에는 Search가 표시되며, 읽기 전용 에디터를 포함해 네 시트 모두에 나타납니다. 각 시트는 자체 검색을 가집니다.
검색 대상 셀 중 하나가 그 텍스트를 포함하면 행이 일치하며, 대소문자, 유니코드 조합 형태, 검색어 앞뒤의 공백은 무시합니다. 일치 항목이 두 셀에 걸치는 일은 없습니다. 검색 대상 셀은 다음과 같습니다.

  • Domains: Domain, Data Type, Description.
  • Words: Word, Abbreviation, English Name, Description.
  • Terms: Term, Physical Name, Description.
  • Checks: 표시 언어로 표시된 세 열 모두.

새로 검색하면 선택이 첫 번째 셀로 가고 맨 위로 스크롤됩니다.
입력란에 텍스트가 있는 동안에는 툴팁에 Clear search가 표시되는 x 버튼이 입력란을 비우고 커서를 입력란에 둡니다. 입력란에서 Escape를 눌러도 비워집니다.
입력란에서 Ctrl + Z (Windows/Linux) or ⌘ + Z (Mac)는 시트가 아니라 입력한 텍스트를 되돌리며, 행 추가와 삭제의 행 키는 텍스트 키로 동작합니다.
빈 행은 어떤 검색과도 일치하지 않으므로, Add Row와 행 삽입은 먼저 검색을 지웁니다. 가져오기는 검색을 유지합니다.

선택과 이동​

그리드는 스프레드시트와 같은 방식으로 선택합니다.

  • 클릭하면 셀이 선택되고, 드래그하면 범위가 선택되며 시트 가장자리에서는 스크롤됩니다. Shift + click은 활성 셀부터 선택을 확장하고, Ctrl + click (Windows/Linux) or ⌘ + click (Mac)은 범위를 하나 더 추가합니다.
  • 열 머리글은 그 열을, 행 번호는 그 행을, 왼쪽 위 모서리는 Ctrl + A (Windows/Linux) or ⌘ + A (Mac)와 마찬가지로 모든 셀을 선택합니다.
  • Mac에서는 Ctrl + click이 마우스 오른쪽 클릭입니다. 그리드 메뉴 항목을 참고하세요.

키보드 조작은 다음과 같습니다.

  • 화살표 키는 한 셀씩 이동하며, Ctrl (Windows/Linux) or ⌘ (Mac)를 누른 채 화살표 키를 누르면 그 방향의 시트 가장자리로 이동합니다.
  • Home과 End는 행의 첫 번째 셀과 마지막 셀로 이동하며, Ctrl이나 ⌘와 함께 누르면 시트의 첫 번째 셀과 마지막 셀로 이동합니다.
  • Page Up과 Page Down은 한 화면 분량의 행만큼 이동합니다.
  • 위의 키를 Shift와 함께 누르면 이동하는 대신 선택을 확장합니다.
  • Tab과 Shift + Tab은 오른쪽과 왼쪽으로, Shift + Enter는 위로 이동합니다. Enter만 누르면 셀을 편집합니다. 셀 편집 항목을 참고하세요.

Undo나 공동 편집자의 삭제로 선택 아래의 행이 사라지면, 선택은 남은 행 안으로 당겨집니다.

열 머리글의 오른쪽 가장자리를 드래그하면 열 너비가 조절되고, 가장자리를 더블 클릭하면 화면에 보이는 행 중 가장 넓은 텍스트에 열 너비가 맞춰집니다. 열 너비를 조절하는 키는 없습니다.

셀 편집​

선택한 셀에서 바로 입력하면 기존 값이 입력한 내용으로 바뀝니다. Enter, F2, 더블 클릭은 현재 값을 그대로 둔 채 커서를 끝에 놓고 편집합니다.
셀에는 한 줄만 들어가므로, 셀에 붙여넣은 탭이나 줄바꿈은 공백이 됩니다.

  • Enter는 편집 내용을 기록하고 아래로, Tab은 기록하고 오른쪽으로 이동합니다. Shift와 함께 누르면 위나 왼쪽으로 이동합니다.
  • 다른 곳을 클릭하거나 키보드 포커스가 그리드를 벗어나도 기록됩니다.
  • Escape는 편집을 취소합니다.

Words 시트에서 셀에 NUM을 덮어 입력하고 Enter를 누른 뒤, ⌥ + Enter로 행을 삽입해 Tab으로 채우고, 그리드 메뉴에서 Word 기준으로 정렬한 다음, ord를 검색하고 Esc로 검색을 비우는 모습

값을 그대로 두는 편집은 아무것도 기록하지 않으며, 기록된 편집은 얼마나 입력했든 그 시트의 Undo 한 단계입니다.
편집 중이 아닐 때 Delete나 Backspace를 누르면 선택한 모든 셀이 한 단계로 비워집니다.
편집 중에는 Undo 키와 Redo 키가 셀에서 입력한 텍스트를 되돌리고 다시 실행하며, 행 키는 텍스트로 입력됩니다. 사전 탭의 키 항목을 참고하세요.
Checks의 모든 셀과 읽기 전용 에디터의 모든 셀은 읽기 전용이며 편집모드가 열리지 않습니다.

편집, 붙여넣기, 지우기 중 어느 한 행이라도 거부되면 그 작업은 하나도 저장되지 않으며, 오류 토스트가 행의 수를 세고 처음 세 개를 나열해 이유를 알려 줍니다.

  • 시트의 다른 행에 있는 이름, 또는 같은 붙여넣기의 다른 행이 쓰는 이름: Nothing saved: 1 row shares a name with another row (Member) 또는 Nothing saved: 2 rows share a name with another row (…). 이름은 앞뒤 공백을 제거하고 대소문자를 구분해 비교하므로 Member와 member는 다릅니다. 비어 있는 이름은 거부되지 않습니다.
  • Domains 시트의 어떤 도메인에도 없는 텍스트로 지정한 용어의 Domain: Nothing saved: 1 row names an unknown domain (…).
  • 편집하는 동안 공동 편집자가 삭제한 행: Nothing saved: the row was removed.

기록이 그 셀 밖까지 영향을 주는 경우도 있습니다.

  • Physical Name이 비어 있는 용어에 Term을 입력하면, 용어의 단어로 이름이 조합되는 경우 그 이름이 Physical Name에 들어갑니다. 단어로 조합 항목을 참고하세요. 이는 한 번만 일어나며, 나중에 단어가 바뀌어도 이름이 다시 조합되지 않습니다.
  • 도메인의 새 Data Type은 같은 Undo 단계에서 그 도메인에 연결된 모든 컬럼의 타입을 바꿉니다. 도메인과 데이터 타입 항목을 참고하세요.

용어의 도메인​

용어의 Domain 셀에서 Enter, F2를 누르거나 더블 클릭하면, Domain이 표시된 검색 입력란과 함께 셀 아래에, 또는 공간이 더 넓으면 셀 위에 목록이 열립니다.
목록에는 None과, 그 뒤로 이름이 있는 모든 도메인이 Domains 시트의 순서대로 표시되며, 강조는 용어가 연결한 도메인이나 None에서 시작합니다. 셀에서 문자를 입력하면 그 문자로 이미 검색된 목록이 열립니다.

  • 입력하면 대소문자를 무시하고 이름에 그 텍스트가 들어 있는 도메인으로 목록을 좁히며, None을 빼고 첫 번째 일치 항목을 강조합니다.
  • ↑와 ↓는 강조를 옮기며, 양 끝에서 반대쪽 끝으로 넘어갑니다.
  • Enter나 Tab은 강조된 행을, 클릭은 클릭한 행을 Undo 한 단계로 고릅니다. 용어는 이름이 같은 두 도메인 중 하나라도 정확히 고른 그 도메인에 연결되며, None은 연결을 해제합니다.
  • Escape나 바깥 클릭은 입력한 내용을 기록하지 않고 목록을 닫습니다.

Domains 시트에 이름이 있는 도메인이 없으면 목록 없이 입력란만 열립니다.
붙여넣은 텍스트는 그 이름으로 나열된 첫 번째 도메인에 연결하고, 빈 텍스트는 연결을 해제하며, 셀에 표시된 것과 같은 텍스트는 연결을 그대로 둡니다. 그 밖의 이름은 거부됩니다. 셀 편집 항목을 참고하세요. 셀에서 Delete나 Backspace를 누르면 삭제된 도메인과의 연결이라도 용어의 연결이 해제됩니다.

복사와 붙여넣기​

Ctrl + C (Windows/Linux) or ⌘ + C (Mac)는 선택 영역을 스프레드시트가 쓰는 방식대로 행마다 한 줄씩 탭으로 구분한 텍스트로 복사하므로, 스프레드시트에 셀로 붙여넣을 수 있습니다. 값 안의 탭이나 줄바꿈은 공백이 됩니다.
여러 범위는 같은 행을 포함하며 나란히 놓이거나, 같은 열을 포함하며 위아래로 놓일 때만 함께 복사됩니다. 그렇지 않으면 아무것도 복사되지 않으며 Nothing copied: the ranges share no rows or columns 오류 토스트가 표시됩니다.

Ctrl + V (Windows/Linux) or ⌘ + V (Mac)는 스프레드시트에서 복사한 셀처럼 탭으로 구분된 텍스트를 활성 셀부터 아래와 오른쪽으로 붙여넣습니다.

  • 따옴표는 텍스트로 붙여넣어지므로, 줄바꿈이 들어 있는 스프레드시트 셀은 하나의 셀로 붙여넣어지지 않습니다.
  • 값 하나는 선택한 모든 범위를 채웁니다.
  • 마지막 행을 넘는 행은 순서대로 새 행으로 추가되므로, 빈 시트에 붙여넣으면 시트가 채워집니다.
  • 마지막 열을 넘는 열은 제외되며, 나머지가 저장되면 Columns past the last one weren't pasted 토스트가 이를 알려 줍니다.
  • 여러 셀을 붙여넣으면 이어서 붙여넣은 블록이 선택됩니다.

붙여넣기는 추가된 행을 포함해 Undo 한 단계이며, 이름 중복이나 알 수 없는 도메인이 있으면 전체가 거부됩니다. 셀 편집 항목을 참고하세요.
100만 개가 넘는 셀에 대한 복사, 붙여넣기, 지우기는 아무 동작도 하지 않으며 Nothing done: the selection covers too many cells 오류 토스트가 표시됩니다.
잘라내기, 즉 Ctrl + X (Windows/Linux) or ⌘ + X (Mac)는 시트에서 아무 동작도 하지 않습니다. 이 탭에서의 복사와 붙여넣기는 다이어그램에 닿지 않으며, 셀 편집 중에는 셀 안의 텍스트에 동작합니다.

행 추가와 삭제​

Add Row는 시트 끝에 빈 행 하나를 추가합니다. 검색을 지우고 새 행의 첫 번째 셀을 선택하며 키보드 포커스를 그리드로 옮기므로, 바로 입력해 그 셀을 채울 수 있습니다.
Delete Rows는 어느 열에서든 선택이 포함하는 모든 행을 삭제하며, Undo 한 번으로 모두 원래 자리로 돌아옵니다. 툴팁에는 같은 동작을 하는 키가 표시됩니다.

키보드 포커스가 그리드에 있고 편집 중인 셀이 없을 때는 다음 키를 씁니다.

  • Alt + Enter (Windows/Linux) or ⌥ + Enter (Mac)는 선택이 포함하는 행 수만큼 선택 아래에 빈 행을 삽입합니다.
  • Alt + Shift + Enter (Windows/Linux) or ⌥ + Shift + Enter (Mac)는 그 행을 위에 삽입합니다.
  • Alt + Backspace 또는 Alt + Delete (Windows/Linux), ⌥ + Backspace 또는 ⌥ + Delete (Mac)는 선택이 포함하는 행을 삭제합니다.

이 키는 그리드 메뉴의 행 삽입, 행 삭제와 같은 동작을 합니다. 그리드 메뉴 항목을 참고하세요. 삽입은 검색을 지우고, 선택이 포함하는 첫 번째 행의 바로 위나 마지막 행의 바로 아래에 새 행을 놓습니다. 삽입은 새 행을 첫 번째 열에서 선택하고 그중 첫 행을 활성 상태로 두며, Undo 한 단계입니다.

이 키는 단축키 탭의 Add Column과 Remove Column 키 바인딩이므로, 호스트가 setKeyBindingMap으로 이 바인딩을 바꾸면 이 키도 함께 바뀝니다. Alt + Shift + Enter는 Add Column 키에 Shift를 더한 것으로, 그 탭에 별도의 행이 없습니다.
편집 중이거나 검색 입력란에서는 텍스트 키로 동작하므로, Mac에서 ⌥ + Backspace는 단어 하나를 지웁니다. Checks와 읽기 전용 에디터에서는 아무 동작도 하지 않습니다. 이 탭에서는 테이블의 컬럼을 추가하거나 삭제하지 않습니다.
Obsidian에서는 Obsidian 단축키가 같은 키를 쓰더라도 이 키가 탭에 전달됩니다.

한 번도 채우지 않은 행이나 모든 값을 비운 행은 시트에 표시되고 공동 편집자에게도 전달되지만, 파일에서는 제외되므로 다이어그램을 다시 열면 사라집니다.

그리드 메뉴​

Domains, Words, Terms에서 셀을 마우스 오른쪽 클릭하면 그리드 메뉴가 열립니다. 선택 밖의 셀이면 먼저 그 셀이 선택됩니다.
마지막 행 아래나 마지막 열 오른쪽을 마우스 오른쪽 클릭하면 현재 선택 그대로 메뉴가 열리므로, 빈 시트에서는 머리글 아래 어디에서나 열립니다. 메뉴 키나 Shift + F10은 활성 셀에 대한 메뉴를 엽니다.

  • Insert 1 row above, Insert 1 row below, Delete 1 row. Insert 3 rows above처럼 각각 선택이 포함하는 행의 수를 세며, 오른쪽에 키가 표시됩니다. 행 추가와 삭제 항목을 참고하세요.
  • Sort by <column>, ascending과 Sort by <column>, descending. Sort by Word, ascending처럼 마우스 오른쪽 클릭한 열의 이름이 들어갑니다. 정렬 항목을 참고하세요. 마지막 열 오른쪽에서는 표시되지 않습니다.
  • 막대의 버튼과 같은 동작을 하는 Import CSV와 Export CSV. CSV 가져오기와 내보내기 항목을 참고하세요.

빈 시트나 일치하는 항목이 없는 검색처럼 표시되는 행이 없으면 Insert 1 row below, Import CSV, Export CSV만 표시됩니다.
Checks와 읽기 전용 에디터에서는 대신 브라우저 자체의 메뉴가 열리며, 머리글이나 스크롤바를 마우스 오른쪽 클릭해도 마찬가지입니다.
메뉴는 항목을 고를 때, Escape를 누를 때, 탭의 다른 곳을 누를 때, 선택이나 시트가 바뀔 때, 그리고 사용자 자신이나 공동 편집자의 편집으로 시트의 행이 바뀔 때 닫힙니다.

정렬​

Sort by <column>, ascending과 Sort by <column>, descending은 보이는 순서만이 아니라 시트의 행 자체를 다시 정렬합니다. 새 순서는 파일에 저장되고 공동 편집자에게도 보이며 Export CSV도 이 순서를 따르고, Undo 한 번으로 이전 순서로 돌아갑니다.
행은 셀에 표시된 텍스트로, 용어의 Domain은 도메인의 이름으로 표시 언어의 정렬 순서에 따라 비교하며, 숫자는 값으로 비교하므로 2가 10보다 앞에 옵니다. 빈 셀은 어느 방향이든 맨 뒤로 가며, 비교 결과가 같은 행은 기존 순서를 유지합니다. 이미 그 순서인 시트를 정렬하면 아무것도 기록되지 않습니다.
검색은 그대로 유지되며, 선택도 그대로이므로 선택된 셀에는 이제 다른 행이 들어 있습니다.

CSV 가져오기와 내보내기​

Domains, Words, Terms는 각각 CSV 파일에서 가져오고 CSV 파일로 내보냅니다. 이 파일은 사전 탭 전용입니다. 캔버스 컨텍스트 메뉴의 Import와 Export는 이 파일을 읽지도 쓰지도 않습니다. 파일 가져오기와 내보내기 문서를 참고하세요.

가져오기​

막대나 그리드 메뉴의 Import CSV는 호스트의 가져오기 대화 상자가 아니라 브라우저 자체의 .csv 파일 선택기를 엽니다. 같은 파일을 다시 고르면 다시 가져옵니다.
파일은 어느 시트가 표시되어 있든 헤더가 가리키는 사전으로 들어가며, 그다음 탭이 그 시트를 표시하고 키보드 포커스를 그 그리드로 옮깁니다. 시트는 검색, 선택, 스크롤 위치를 유지하므로, 검색이 숨기는 행이나 화면 아래에 추가된 행은 보이지 않는 채로 남습니다.
파일은 BOM(바이트 순서 표시) 유무와 상관없이 UTF-8로 읽으며, 오래된 공공데이터 공통표준 파일처럼 올바른 UTF-8이 아니면 EUC-KR로 읽습니다.

툴바에서 사전 탭을 연 다음 Import CSV로 도메인, 단어, 용어를 가져오며, 파일마다 탭이 그 파일의 시트로 전환되고 추가된 내용을 알려 주는 모습

행은 다음과 같이 들어갑니다.

  • 이름이 있는 각 행은 시트에서 같은 이름의 행을, 파일에 열이 있는 필드에 한해 갱신합니다. 파일에 없는 열의 필드는 그대로 남습니다. 이름은 앞뒤 공백을 제거하고 대소문자를 구분해 비교합니다.
  • 시트에 없는 이름은 파일의 순서대로 시트의 마지막 행 뒤에 추가됩니다.
  • 가져오기는 행을 삭제하지 않습니다.
  • 이름이 비어 있는 행은 건너뜁니다. 파일에 같은 이름이 두 번 있으면 뒤의 행이 적용되고 앞의 행은 건너뛴 것으로 셉니다. 빈 줄은 행이 아닙니다.
  • 용어의 도메인은 이름으로 찾으며 그 이름의 첫 번째 도메인이 쓰이고, 어떤 도메인에도 없는 이름이면 용어는 연결되지 않으므로 도메인을 먼저 가져오세요.

가져오기 한 번은 그 시트의 Undo 한 단계입니다.
그다음 1 added · 1 updated · 2 skipped 같은 토스트가 표시됩니다. 시트의 행과 같은 행은 추가로도 갱신으로도 세지 않으므로, 같은 파일을 다시 가져오면 아무것도 바뀌지 않고 단계를 기록하지 않습니다.
파일의 용어가 다이어그램에 없는 도메인을 가리키면, 4 unknown domains: 연월일, 금액, 번호처럼 두 번째 줄에 처음 세 개가 표시됩니다.
헤더가 어떤 형식과도 맞지 않거나 두 형식에 맞는 파일은 아무것도 가져오지 않으며, Couldn't read this file as words, terms or domains 오류 토스트가 표시됩니다.

파일 형식​

각 사전은 두 가지 형식을 읽습니다. 첫 번째는 Export CSV가 쓰는 에디터 자체의 형식으로, 필드 이름이 헤더입니다.

사전헤더필수 열
단어name,abbreviation,englishName,description,synonyms,forbiddenWordsname, abbreviation
용어name,physicalName,domain,description,synonymsname, physicalName
도메인name,category,dataType,descriptionname, dataType

열의 순서는 상관없으며, 용어의 domain에는 도메인의 이름이 들어가고, 그 밖의 열은 무시됩니다. 헤더는 대소문자를 구분하며, 셀은 공백을 포함해 쓰인 그대로 읽습니다.

두 번째는 공공데이터 공통표준 파일의 형식입니다.

사전필수 열그 밖에 읽는 열
단어공통표준단어명공통표준단어영문약어명 (약어), 공통표준단어 영문명 (영문명), 공통표준단어 설명 (설명), 이음동의어 목록 (이음동의어), 금칙어 목록 (금칙어)
용어공통표준용어명공통표준용어영문약어명 (물리명), 공통표준도메인명 (도메인, 이름으로), 공통표준용어설명 (설명), 용어 이음동의어 목록 (이음동의어)
도메인공통표준도메인명, 데이터타입공통표준도메인분류명 (분류), 공통표준도메인설명 (설명), 데이터길이, 데이터소수점길이

도메인의 데이터타입, 데이터길이, 데이터소수점길이는 하나의 데이터 타입으로 합쳐집니다. NUMERIC(15,2), CHAR(8)처럼 되며, 길이가 없으면 DATE처럼 타입만 쓰고, 소수점 길이 0은 NUMERIC(15)처럼 생략됩니다.
이 파일에서는 셀의 앞뒤 공백이 제거되며, 개정 이력 같은 그 밖의 열은 무시됩니다.
어느 형식이든 헤더 이름의 공백은 상관없습니다.

내보내기​

막대나 그리드 메뉴의 Export CSV는 표시 중인 시트를 에디터 자체의 형식으로 저장합니다. 검색과 상관없이 모든 행을 시트 순서대로 쓰며, 용어의 도메인은 이름으로 쓰고 삭제된 도메인이면 비워 둡니다.
파일은 BOM이 있는 UTF-8이고 줄 끝은 CRLF이며, 따옴표, 쉼표, 줄바꿈이 들어 있는 필드만 따옴표로 묶습니다. 스프레드시트에서 열 수 있으며, 다시 가져오면 같은 행이 됩니다.
파일 이름은 <데이터베이스 이름>-<시간>-words.csv, -terms.csv, -domains.csv이며, 에디터의 다른 내보내기와 같은 방식으로 저장됩니다. 내보내기 문서를 참고하세요.

Checks에는 내보내기가 없으며, 읽기 전용 에디터에서는 가져오기와 내보내기를 제공하지 않습니다.

Undo와 Redo​

Domains, Words, Terms는 다이어그램의 히스토리와 별도로 각자의 Undo 히스토리를 가집니다. 이 탭에서는 Ctrl + Z와 Ctrl + Shift + Z (Windows/Linux) or ⌘ + Z와 ⌘ + Shift + Z (Mac), 그리고 툴바의 Undo와 Redo가 표시 중인 시트에 동작하며, 툴바에 Time Travel이 표시되지 않습니다. Checks에서는 아무 동작도 하지 않습니다.
ERD 탭의 Undo는 시트의 편집을 되돌리지 않습니다. 사전 시트 문서를 참고하세요.

사전 탭의 키​

키보드 포커스가 탭에 있는 동안에는 다음 에디터 단축키가 동작합니다. 단축키 문서를 참고하세요.

  • Search, 즉 Ctrl + K (Windows/Linux) or ⌘ + K (Mac)는 빠른 검색을 엽니다.
  • Toggle Explorer, 즉 Ctrl + F (Windows/Linux) or ⌘ + F (Mac)는 ERD 탭으로 전환하고 탐색기를 검색 상태로 엽니다.
  • Undo와 Redo는 표시 중인 시트에 동작합니다. Undo와 Redo 항목을 참고하세요.
  • Add Column과 Remove Column은 행을 삽입하고 삭제합니다. 행 추가와 삭제 항목을 참고하세요.

용어의 도메인 목록을 포함해 셀 편집 중에는 Search와 Toggle Explorer가 아무 동작도 하지 않으므로, 입력한 텍스트가 사라지지 않습니다.

그 밖의 에디터 단축키는 모두 탭 안에 머물며 캔버스에 전달되지 않습니다. Alt + N (Windows/Linux) or ⌥ + N (Mac)은 테이블을 추가하지 않으며, Delete와 Backspace는 캔버스에서 아무것도 삭제하지 않습니다.
대신 그리드 자체의 키가 시트에 동작합니다. Enter는 셀을 편집하고, Delete와 Backspace는 선택한 셀을 비우며, Ctrl + A (Windows/Linux) or ⌘ + A (Mac)는 모든 셀을 선택하고, Escape는 편집을 취소하거나 그리드 메뉴를 닫거나 검색 입력란을 비웁니다. 복사, 잘라내기, 붙여넣기도 탭 안에 머뭅니다. 복사와 붙여넣기 항목을 참고하세요.

읽기 전용 에디터​

readonly 에디터에서도 탭이 열리며 모든 시트가 표시됩니다.
시트 전환, 검색, 선택, 스크롤, 열 너비 조절, 복사는 평소처럼 동작하며, Checks에서 Enter나 더블 클릭으로 검사 대상으로 이동하는 것도 마찬가지입니다. 검사의 표시도 나타납니다.

어떤 셀에도 편집, 붙여넣기, 지우기를 할 수 없으며, 검사가 표시하지 않은 모든 셀은 읽기 전용 배경으로 그려집니다.
Add Row, Delete Rows, Import CSV, Export CSV는 숨겨지고, 행 키는 아무 동작도 하지 않으며, 마우스 오른쪽 클릭하면 브라우저의 메뉴가 열립니다. 빈 시트에는 안내 문구가 표시되지 않으며, 툴바에 Undo와 Redo가 표시되지 않습니다.

공동 편집자와 파일​

다이어그램 파일에는 정렬한 순서를 포함한 시트 순서대로 단어, 용어, 도메인이 저장되며, 값이 하나도 없는 행은 제외됩니다.
파일에는 각 테이블과 컬럼의 논리명, 각 물리명이 사전이 생성한 이름인지 여부, 그리고 도메인이 시트에 있는 동안 각 컬럼의 도메인 연결도 저장됩니다. 검사와 표시는 이 값들로부터 계산되며 저장되지 않습니다.

공동 편집 세션에서는 정렬과 삽입을 포함한 서로의 사전 편집이 반영되는 즉시 각 에디터에 표시됩니다. 각 에디터는 자신의 시트, 검색, 선택을 유지하며, 시트 히스토리에는 자신의 편집만 들어갑니다.
그사이 공동 편집자가 삭제한 행에 대한 편집이나 붙여넣기는 아무것도 저장하지 않으며, Nothing saved: the row was removed 토스트가 표시됩니다.
사전 탭이 생기기 전 릴리스의 에디터는 논리명, 도메인 연결, 사전 없이 다이어그램을 저장합니다. 릴리스 혼용 문서를 참고하세요.

Schema SQL, GraphQL, DBML, AML의 Import는 사전을 유지하고, JSON의 Import는 사전을 파일의 사전으로 바꾸며, Import and Add는 사전을 하나도 가져오지 않습니다. 외부 파일 가져오기 문서를 참고하세요.
코딩 에이전트는 MCP 서버를 통해 단어, 용어, 도메인을 편집하고, 논리명과 도메인을 설정하고, 물리명을 다시 생성하고, 검사를 나열합니다. 사전과 사전 검사 문서를 참고하세요. CSV 파일을 다루는 도구는 없습니다.