코드 생성하기
Code Generator 는 프로젝트의 테이블 스키마를 기반으로 Entity, Service, Repository, 화면 코드 등 반복적으로 작성하는 소스코드를 자동으로 생성하는 기능입니다. 어떤 코드를 어떤 형태로 생성할지는 템플릿팩(Template Pack)에 정의된 내용에 따라 결정됩니다.
템플릿팩
템플릿팩은 "스키마를 기반으로 어떤 코드를 어떤 방식으로 생성할지 정의한 설정 모음"입니다. 생성되는 결과물은 템플릿팩에 포함된 다음 요소에 의해 결정됩니다.
- 템플릿 — 생성할 파일의 종류를 정의합니다. 예를 들어 Entity, Repository, DTO, Service, CRUD 화면 등을 각각 하나의 템플릿으로 구성할 수 있습니다.
- 타입 매핑 — 데이터베이스 컬럼 타입을 생성할 소스 코드 언어의 타입으로 변환하는 규칙을 설정합니다. 예를 들어 VARCHAR는 Java에서는 String, TypeScript에서는 string으로 변환됩니다.
- 설치 경로 — 생성된 파일을 프로젝트의 어느 경로에 어떤 파일명으로 둘지, 또는 기존 파일의 어느 위치에 코드 조각을 끼워 넣을지를 템플릿마다 정합니다.
- 변수 — 패키지명·엔티티 이름처럼 코드에 들어갈 값을 전역·테이블·필드 단위 변수로 받아, 프로젝트마다 다르게 채워 넣습니다.
템플릿팩은 다음 세 가지 방법으로 사용할 수 있습니다. 1. store에 공개된 팩을 그대로 사용 (프로젝트 설정에서 Add Template Pack) 2. store에 공개된 팩을 clone 후 수정하여 사용 3. 팀 또는 프로젝트의 코딩 컨벤션에 맞는 템플릿팩을 직접 제작하여 사용할 수 있습니다 또한 하나의 프로젝트에서 여러 템플릿팩을 사용하여 여러개의 소스코드를 생성할 수 있습니다.
전체 흐름
코드 생성은 세 단계로 이루어집니다. 최초 1회 설정 이후에는 프로젝트의 좌측 트리에서 테이블을 우클릭하여 소스 코드를 생성할 수 있습니다.
| 단계 | 위치 | 하는 일 |
|---|---|---|
| 1. 팩 추가 | 프로젝트 설정 → Code Generator 탭 | 템플릿팩을 추가하고 코드 설치 위치(Location)와 전역 변수를 설정합니다. |
| 2. 테이블 설정 (선택) | 테이블 상세 → Code Generator 탭 | 엔티티 이름, 타입 매핑 등 테이블별 설정을 다듬습니다. |
| 3. 생성 | 사이드바 트리 → 테이블 우클릭 | "소스코드 생성..." 을 클릭하여 미리보기를 확인하고 설치하거나 다운로드합니다. |
한 프로젝트에 여러 팩을 동시에 추가할 수 있습니다. 예를 들어 Java 백엔드 팩과 TypeScript 프론트엔드 팩을 함께 추가해두면 한 번의 소스코드 생성으로 두 언어의 코드가 모두 생성됩니다.
템플릿팩 추가
프로젝트 설정(Project Configuration)의 Code Generator 탭에서 시작합니다.
Code Generator 탭 열기
프로젝트 설정을 열고 "Code Generator" 탭으로 이동합니다. 처음 설정하는 경우 "Enable Code-Generator" 스위치를 켜서 설정 화면을 표시합니다.

템플릿팩 추가
[+ Add Template Pack] 버튼을 누르면 Template Pack Store 가 열립니다. 공개(Public) 팩과 내가 멤버로 참여 중인 비공개(Private) 팩이 함께 표시되며, 카드의 [Add] 버튼으로 프로젝트에 추가합니다.


Location 지정 (데스크탑)
생성된 코드가 자동 설치될 로컬 프로젝트의 루트 디렉토리를 지정합니다. 데스크탑 앱에서만 설정할 수 있고, 웹에서는 설치 대신 ZIP 다운로드를 사용합니다.

같은 팩 여러 번 추가와 Alias
같은 팩을 한 프로젝트에 두 번 이상 추가할 수도 있습니다 — 모듈마다 변수 값을 다르게 줄 때 유용합니다. 각 팩 탭의 Alias 입력으로 이 프로젝트 안에서만 쓰는 이름을 붙일 수 있습니다.

전역 변수 입력
템플릿팩에 전역 변수(Global Variables)가 선언되어 있다면 팩 탭 아래에 Templates Variables 폼이 나타납니다. 기본 패키지명처럼 프로젝트 전체에서 공통으로 쓰이는 값을 입력하는 곳입니다.
어떤 변수를 입력해야 하는지는 팩마다 다릅니다. 입력 폼은 해당 템플릿팩에 선언된 정의(라벨·기본값·필수 여부)에 따라 자동으로 노출되며, 필수 변수를 모두 입력하여야 저장이 가능합니다.

참고: 설정할 변수·모듈이 없는 팩은 "이 템플릿팩은 설정할 항목(모듈·변수)이 없습니다" 라고 표시됩니다. 이 경우 별도의 설정없이 템플릿 팩을 추가만 하면 바로 사용할 수 있습니다.
팩 버전과 업그레이드
프로젝트는 템플릿팩을 추가한 시점의 특정 버전에 연결되어 코드를 생성합니다. 이후 새로운 버전이 배포되더라도 기존 프로젝트에는 자동으로 적용되지 않으며, 사용자가 직접 업그레이드를 수행한 경우에만 최신 버전이 적용됩니다.
업그레이드
프로젝트에 추가한 템플릿 팩의 제작자가 새로운 버전을 배포하는 경우 프로젝트 설정의 템플릿 팩 탭에 "새 버전이 있습니다" 알림과 [업그레이드] 버튼이 나타납니다. 업그레이드 버튼을 클릭하면 기존 템플릿 팩의 내용이 새 버전으로 덮어쓰여집니다.

라이브 (내 편집본)
직접 생성했거나 클론한 팩, 또는 편집 권한이 있는 팩에는 "라이브 (내 편집본)" 배지가 표시됩니다. 이 경우 배포된 버전 대신 내 편집본이 프로젝트에 반영되며, 변경 사항을 저장하면 내 프로젝트에서 바로 확인할 수 있습니다. 저장과 배포의 차이 및 다른 사용자에게 변경 사항을 공유하는 방법은 저장과 배포 문서를 참고하세요.

테이블별 설정
템플릿팩이 추가된 프로젝트의 테이블 상세 페이지에는 Code Generator 탭이 노출됩니다. 이 탭에서 코드 생성 시 사용될 테이블별 정보를 입력할 수 있습니다. 필수 입력 항목을 제외한 모든 항목은 선택 입력 사항이며, 미입력 시 기본값이 적용됩니다.

엔티티 설정 (모든 팩 공통)
엔티티 이름·별칭·설명과 Soft Delete 설정을 입력합니다. 이 값들은 추가된 모든 팩이 공유하며, 각 항목은 다음과 같습니다.
| 항목 | 설명 |
|---|---|
| 이름 (Name) * | 엔티티의 논리 이름으로, 생성될 클래스·파일명의 기준이 되며, 케이스 변형(lowerCamel·snake_case·kebab-case 등)이 이 값에서 미리 계산되어 템플릿에 제공됩니다. |
| 별칭 (Alias) * | 생성되는 SQL·쿼리에서 이 엔티티(테이블)를 가리키는 짧은 테이블 별칭입니다. 기본값은 엔티티 이름의 대문자 이니셜을 소문자로 만든 값이며(예: UserAccount → ua, User → u), 직접 수정할 수 있습니다. |
| 설명 (Description) | 엔티티에 대한 설명으로, 생성 코드의 클래스 주석 등에 활용됩니다. |
| Soft Delete | 데이터 삭제 시 물리 삭제 대신 플래그 또는 삭제 일시 컬럼을 사용한 논리 삭제 적용 여부를 설정합니다. 활성화하면 관련 설정 항목이 표시되며, 비활성화하면 해당 설정 값이 모두 초기화됩니다. |
| └ 삭제 플래그 컬럼 | 삭제 여부를 나타내는 컬럼입니다. 문자·불리언·숫자 타입 컬럼만 목록에 나타납니다. |
| └ 삭제 값 / 미삭제 값 | 플래그 컬럼이 불리언이 아닐 때만 입력합니다. 삭제·미삭제 상태를 나타내는 값을 직접 지정합니다 (예: 'Y' / 'N', 1 / 0). |
| └ 삭제 일시 컬럼 | 삭제된 시각을 기록하는 컬럼입니다. 날짜·시간 또는 문자 타입 컬럼만 목록에 나타납니다. |
| └ 날짜 포맷 | 삭제 일시 컬럼이 문자 타입일 때만 입력합니다. 현재 커넥션 DBMS 의 날짜함수 포맷 스타일로 저장 형식을 지정하며, 생성 SQL 에 그대로 사용됩니다 (예: MySQL %Y-%m-%d, Oracle YYYY-MM-DD). |
팩별 상세 설정
아래에는 팩별 탭이 표시됩니다. 탭마다 그 팩이 선언한 엔티티 변수 폼과 필드(컬럼) 그리드가 나타나며, 입력 값은 팩별로 따로 저장됩니다.
| 항목 | 설명 |
|---|---|
| 타입 | 팩의 언어 프로필이 DB 타입을 대상 언어 타입으로 자동 매핑합니다 (예: BIGINT → java.lang.Long). 드롭다운에서 다른 타입을 고르거나 Enter 로 직접 입력해 바꿀 수 있습니다. |
| NAME (필드명) | DB 컬럼명을 변환 규칙(Column Renamer)에 따라 필드명으로 바꾼 값입니다. 테이블 단위로 규칙을 조정하거나 직접 수정할 수 있습니다. |
| META | 이 팩에서만 사용하는 필드별 메타 속성(key-value)을 추가합니다. |
| 초기화 | 행 초기화 버튼으로 renamer 를 다시 적용하고 해당 팩에서 수정한 내용을 되돌립니다. |
소스코드 생성
사이드바 트리에서 테이블을 우클릭하고 "소스코드 생성..." 을 선택하세요. Ctrl/Cmd 클릭 또는 Shift 클릭으로 여러 테이블을 선택한 상태에서 우클릭하면 한 번에 생성합니다.

모달 왼쪽에는 프로젝트에 추가된 모든 팩의 템플릿 트리가, 오른쪽에는 선택한 템플릿의 변환 결과 미리보기가 표시됩니다. 여러 테이블을 선택했다면 상단의 "미리보기 테이블" 선택으로 테이블을 바꿔가며 확인할 수 있습니다.

| 버튼 | 동작 |
|---|---|
| 선택 템플릿 설치 | 체크한 템플릿의 결과 파일을 Location 아래 경로에 바로 생성합니다. 데스크탑 앱에서 Location 이 설정된 경우에만 활성화됩니다. |
| 선택 템플릿 다운로드 | 체크한 템플릿의 결과를 ZIP 으로 다운로드합니다. 웹에서도 사용할 수 있습니다. |
| Preview 다시적용 | 테이블 설정을 바꾼 뒤 미리보기를 다시 렌더링합니다. |
| 태그 필터 · 전체 선택 | 템플릿이 많을 때 태그로 거른 뒤 보이는 템플릿을 한 번에 체크합니다. |
참고: 설치 시 파일별 동작(덮어쓰기 여부, 읽기 전용 생성, git add)은 템플릿에 정의된 Installation 규칙을 따릅니다. 미리보기에서 결과물을 직접 손본 뒤 "이 템플릿만 설치" 로 하나씩 설치할 수도 있습니다.
공개 팩 활용
좌측 메뉴의 템플릿 팩 화면에서 [Store] 버튼을 누르면 공개된 팩들을 둘러볼 수 있습니다. 프로젝트에 추가(Add)하는 것 외에 두 가지 활용 방법이 있습니다.

| 동작 | 의미 |
|---|---|
| Clone | 템플릿팩을 내 소유의 복사본으로 생성합니다. 복제된 템플릿팩은 원본과 독립적으로 관리되며, 자유롭게 수정할 수 있습니다. 공개 템플릿팩을 기반으로 팀이나 프로젝트의 코딩 컨벤션에 맞는 템플릿팩을 만들 때 사용합니다. |
| Favorite | 템플릿팩을 읽기 전용으로 즐겨찾기에 추가합니다. 즐겨찾기에 추가한 템플릿팩은 수정할 수 없으며, 원본 제작자가 새 버전을 배포하면 해당 버전으로 업데이트할 수 있습니다. 템플릿을 수정하려면 Clone을 통해 내 소유의 템플릿팩으로 복제한 후 편집 가능합니다. |
템플릿팩을 수정하지 않고 그대로 사용할 경우에는 Clone이나 Favorite를 사용할 필요 없이, 프로젝트 설정에서 [+ Add Template Pack]을 통해 바로 추가하여 사용할 수 있습니다.
