프로젝트 관리

1. 프로젝트 설정

선행 사항

프로젝트 설정시 사용할 템플릿 팩이 있어야 합니다.

Code Genie 메인 화면에서,

(1) 우측 상단의 SWITCH PROJECT 버튼을 클릭하여 확장시킨 후
(2) Project Bookmarks... 버튼을 클릭하여 Project Bookmarks 창을 엽니다.

  • NEW PROJECT : 신규 프로젝트를 설정합니다.
  • IMPORT PROJECT : 디렉토리에서 기존 프로젝트를 선택합니다.

1-1. Project Config

namedescription
Location프로젝트 경로
Templates템플릿 팩 관리에서 설정한 템플릿 팩을 선택 합니다.
Templates Variables템플릿 팩 선택시 템플릿 팩 변수가 노출되며, 기본 값 대신 다른 값으로 변경할 수 있습니다.

1-2. Audit Table

namedescription
Audit Table해당 프로젝트의 여러 커넥션, 여러 스키마 중 메인 사용자 테이블을 지정 합니다. 지정한 테이블 또는 엔티티를 템플릿 본문에서 사용할 수 있습니다. 커넥션이 설정된 기존 프로젝트의 경우만 노출되며, 신규 프로젝트 생성시에서는 생성 후 수정 팝업에서 재설정할 수 있습니다.
Field Names For CreationField Names For Modification테이블에 대응되는 엔티티의 등록자, 등록일시, 수정자, 수정일시에 해당되는 필드명에 해당 됩니다. 해당 필드명 존재 여부에 따른 별도 처리를 템플릿 본문에 사용할 수 있습니다.

1-3. 프로젝트 상세 이동

신규 프로젝트 생성 또는 기존 프로젝트 IMPORT 시 프로젝트 목록이 나타납니다.
해당 아이콘 클릭 또는 상단 탭 클릭시 프로젝트 상세로 이동 합니다.

2. 프로젝트 상세

2-1. 프로젝트 설정 수정

1. 톱니바퀴 버튼을 클릭해 1-1. Project Config 팝업을 조회하여 수정할 수 있습니다.

2-2. 커넥션 추가

상단 2. + CONNECTION을 클릭합니다.

DB 커넥션 정보를 입력합니다.
TEST CONNECTION 클릭 후 해당 커넥션의 스키마 목록에서 연결할 스키마를 선택할 수 있습니다.

Table Renamer는 엔티티 이름을, Column Renamer는 엔티티의 필드 이름을 재설정하는 기준 입니다.
해당 커넥션 내에 모두 설정되며, Column Renamer의 경우 각 엔티티의 Column Renamer에서 재설정할 수 있습니다.

커넥션 저장 후 커넥션 별, 스키마 별, 테이블 리스트가 노출 됩니다.

2-3. 커넥션 리로드

해당 DB 커넥션에 해당되는 실제 테이블이 변경된 경우 3. 리로드 버튼을 클릭해주세요. 데이터베이스 메타데이터를 재조회하게 됩니다.
특정 테이블만 리로드하고 싶은 경우 해당 테이블 상세의 리로드 버튼을 이용해주세요.

2-4. 커넥션 수정

커넥션 정보를 수정하거나 전역 Renamer를 수정하고 싶은 경우 4. 커넥션 수정 버튼을 클릭해주세요.

2-5. 선택 엔티티 템플릿 전체 설치

테이블 옆 체크박스 선택시 5. INSTALL 버튼이 활성화 됩니다. 선택한 테이블에 대한 엔티티를 입한 템플릿을 전체 설치 합니다.

2-6. 테이블 리포트 (테이블 정의서)

6. REPORT 버튼 클릭시 스키마를 선택하여 테이블 리포트를 다운로드할 수 있습니다.

3. 엔티티 설정

테이블 선택시 상세 엔티티를 설정할 수 있습니다.

3-1. Entity Configuration

namedescription
Name클래스 이름
Sub Package name해당 엔티티가 설치될 패키지 이름
Alias테이블 별칭
Extends Class엔티티 클래스가 상속할 부모 클래스
Implements Interface List엔티티 클래스가 구현할 인터페이스
Annotation List엔티티 클래스에 적용할 어노테이션
Use Business Key특정 컬럼을 PK로 지정하고자 하는 경우 활성화하여 해당 컬럼의 business key를 활성화 합니다.
Use Custom IdPK가 시퀀스나 자동 증가 값이 아닌 커스텀 설정인 경우 활성화
Use Mark As Delete삭제 여부 컬럼 지정
Sequence Name해당 테이블에서 사용되는 시퀀스 이름

3-2. Column Renamer

해당 커넥션 전체에 영향을 미치는 Column Renamer 대신 해당 엔티티에만 설정하고 싶은 경우 사용 합니다.

3-3. Attributes Configuration

해당 테이블의 컬럼과 각각에 대응되는 엔티티 필드에 대한 설정 입니다.

  • 각 필드의 일반적인 타입 대신 커스텀 타입(Enum)을 지정하고 싶은 경우 USER JAVA TYPE을 설정 합니다.
  • 특정 컬럼에 별도 설정(암호화나 typeHandler 지정)을 하고 싶은 경우 Meta Attributes에 추가 해주세요.

4. 템플릿 변환 결과

테이블의 엔티티 설정이 끝마쳤다면 드디어 템플릿을 설치할 수 있습니다!
velocity 문법을 정상적으로 작성했다면 해당 화면에서 템플릿 결과를 확인할 수 있습니다.
왼쪽 체크박스를 이용해 특정 템플릿만 설치하거나 전체 템플릿 설치, 이 템플릿만 설치를 통해 템플릿을 설치주세요.

5. .genie 디렉토리 구조

코드지니를 통해 프로젝트를 설정했다면 .genie라는 디렉토리가 생성된 것을 확인할 수 있습니다.
이 디렉토리는 신규 프로젝트 설정시 생성되며, 해당 디렉토리 존재 여부에 따라 기존 프로젝트로 판단됩니다.
디렉토리 구조는 아래와 같습니다.

namedescription
project-config.json대상 프로젝트 전역으로 사용할 설정이 들어갑니다.
프로젝트 아이디, 프로젝트 이름, 템플릿 변수, audit table, 컨버팅 필드
connections대상 프로젝트에는 여러 DB 커넥션을 설정할 수 있으며, 각 커넥션 별 디렉토리가 해당 디렉토리 아래에 생성 됩니다.
0_iflex각 DB 커넥션에 관한 정보가 들어갑니다. 형태는 [커넥션 아이디]_[커넥션 이름] 이며, 커넥션 아래에 설정한 스키마 디렉토리가 생성 됩니다.
connections.json각 DB 커넥션에 관한 설정 파일
iflexdb해당 커넥션에서 설정한 스키마 입니다. 해당 디렉토리 아래에 [테이블 이름].json 형태의 엔티티 설정 파일이 생성 됩니다.

함께 작업하는 팀원이 있는 경우

엔티티 설정이나 프로젝트 설정 등은 모든 팀원과 함께 공유되어야 합니다.
리모트 저장소에 이 디렉토리를 포함해주세요.