ST-Company Contact Email: stc_ahn@naver.com
Contents

Templates


Modeler에서 정의된 정보를 바탕으로 Template을 작성하고 코드를 생성합니다. 상단에 리스트 중 좌측은 Modeler에서 만든 ColumnNode의 아이디와 해당 노드의 항목 개수(컬럼 수) 및 사용된 테이블 정보를 표시합니다. 우측 리스트는 Modeler에서 테이블 간에 연결된 Relations의 정보를 표시합니다. 좌측 [ ] 버튼으로 해당 내용을 간략하게 볼 수 있습니다. 그 아래 Common Variables가 있고 가운데는 템플릿 편집기, 가장 아래 결과 창이 있습니다. 결과 창은 Generate 된 코드를 표시하며 읽기 전용입니다.
Common Variables 또는 템플릿 편집기에 문자를 입력하면 자동으로 Generate 되며 결과 창에 코드가 비정상적으로 표시될 경우 [Generate] 버튼을 눌러 수동으로 Generate 할 수 있습니다.
[GenerateAll] 버튼은 모든 탭을 Generate 하며, [Rename] 버튼은 탭의 이름을 변경할 때 사용됩니다. [SQL]로 표시된 버튼은 편집기의 문자 색상을 특정 언어 스타일로 변경할 수 있습니다.

변수 선언 및 사용


[New] 버턴으로 새 탭을 추가할 수 있습니다. 상단 Common Variables는 모든 탭에서 사용 가능한 변수(공통 변수)를 선언하는 데 사용됩니다. 변수 선언은 name : value 형태이며 콤마(,)로 한 줄에 여러 개의 변수를 선언할 수 있습니다. 변수의 값은 Trim 처리됩니다. 템플릿 편집기에서 코드 작성 시 [Ctrl] + [Space]로 자동완성 기능을 사용할 수 있습니다.


템플릿 편집기에서 변수를 선언할 때는 declare의 약자인 d/ 키워드를 사용합니다. 변수 입력은 중괄호{}로 묶어 사용합니다. 위 그림의 결과 창에서 정의된 변수가 정상적으로 Generate 된 걸 확인할 수 있습니다.


선언되지 않은 변수는 일반 문자로 취급됩니다. 위 그림의 결과 창에서 {temp} 선언되지 않아 일반 문자 처리되었으며 Common Variables에서 선언된 변수는 정상적으로 처리되었습니다.


변수는 중복 선언이 불가능합니다. Common Variables 창을 좌측 [ ] 버튼으로 닫으면 선언된 공통 변수가 간략히 표시되는데 이미 name 이란 변수가 선언돼 있어서 아래 오류 리스트에 해당 내용이 표시된 상태입니다. 오류 리스트는 문제가 발생했을 때만 표시되고 오류를 수정하면 자동으로 사라집니다.

루프 키워드


Modeler에서 생성한 ColumnNode의 항목들을 출력하는 키워드입니다. option의 약자인 o/ 로 시작되며 id는 ColumnNode의 아이디를 입력합니다. id 자동 완성을 지원합니다.


body의 약자 b/ 로 루프될 항목의 기본 형태를 정의합니다. 해당 줄에서 자동 완성 항목은 공통 변수, 일반 변수, 특수 변수(아래 설명) 그리고 ColumnNode의 항목(DB 컬럼)의 정보입니다. 아래 표는 ColumnNode의 컬럼 정보입니다.

루프 영역 자동 완성 컬럼 설명 예시1 예시2
{TABLE_NAME} 테이블 명 SYS_USER SYS_CODE_GROUP
{TABLE_ALIAS} 테이블 약어 SU SCG
{COLUMN_NAME} 컬럼 명 USER_ID SORT_ORDER
{COLUMN_DATA_TYPE} 컬럼 데이터 타입(사이즈 제외) VARCHAR2 INT
{COLUMN_DATA_TYPE_FULL} 컬럼 데이터 타입(사이즈 포함) VARCHAR2(30) INT
{COLUMN_DATA_TYPE_FOR_CS} DB 데이터 타입을 C#, Java 데이터 타입으로 변환한 값 string int
{COLUMN_DATA_TYPE_FOR_MODEL} C#으로 변환된 값 중 null이 될 수 없는 타입에 null 허용 string int?
{COLUMN_ORDER} 컬럼 순서 1 4
{COLUMN_COMMENT} 컬럼 코멘트 사용자 ID 정렬 순서
{COLUMN_DATA_TYPE_FOR_CS}, {COLUMN_DATA_TYPE_FOR_MODEL}의 결과 값은 [실행 파일 폴더\Options\dataType.json] 파일에서 설정 가능합니다.


b/ 키워드에 {COLUMN_NAME}를 입력한 결과입니다. 템플릿 편집기의 첫 번째 줄 "b/ {COLUMN_NAME}"은 해당 정보의 값을 출력하고 두 번째 줄 "b/"는 출력 후 줄 바꿈을 의미합니다.


s/(start 약자), e/(end 약자) 키워드로 루프의 시작 라인과 마지막 라인의 내용을 기본(b/) 라인과 다르게 생성할 수 있습니다.

일반 영역 특수 변수


Modeler에서 생성한 Table과 Relation을 사용해 SQL FROM 문을 생성합니다. ColumnNode의 ID를 기준으로 생성되며 해당 노드가 단일 테이블의 컬럼 정보만 가지고 있을 경우 단순 FROM 문(FROM SYS_USER) 두 개 이상의 테이블과 해당 테이블들 간에 Relation이 존재할 경우 FROM + JOIN 문을 생성합니다. 두 테이블의 직접적인 Relation이 존재하지 않더라도 이행적 관계(A -> B, B -> C)가 존재하면 JOIN 문 생성이 가능합니다.


{__tabName}으로 현재 탭 이름을 변수로 사용할 수 있습니다. {__tabNameUpper}와 {__tabNameLower}로 각각 모두 대문자, 모두 소문자로 변환하여 사용할 수도 있습니다.


ColumnNode의 정보를 루프 키워드(o/ s/ b/ e/)가 아닌 행 인덱스와 컬럼명으로 변수처럼 출력할 수 있습니다. {id: [ColumnNode의 ID], [Row 인덱스], [컬럼]}으로 위 그림처럼 사용 가능합니다.


해당 기능을 사용할 때 ColumnNode의 행 수를 넘어가면 오류가 발생합니다.

루프 영역 특수 변수


루프 영역 안에서 {row}로 행 번호를 출력할 수 있습니다.


c/ 키워드로 특정 조건에 만족할 때 다른 형태로 출력되도록 템플릿을 작성할 수 있습니다. c/ 키워드 뒤에 조건을 입력하고 아래에 루프 키워드(s/ b/ e/)로 입력 후 해당 조건일 때 출력될 내용을 작성하면 해당 조건일 때의 내용을 출력합니다.
루프 영역 안에서 {crow}로 해당 조건을 만족하는 그룹별 행 번호를 출력할 수 있습니다.

조건문



if/ elseif/ else/ endif/ 키워드로 조건문을 만들 수 있습니다. if/, elseif/ 뒤에 조건을 입력 후 해당 조건을 만족하면 아래 영역을 출력합니다. 모든 조건을 만족하지 않을 때 else/ 아래 영역을 출력합니다. 현재 중첩 if 문은 사용할 수 없습니다.

템플릿 스타일 설정


상단 가장 오른쪽 메뉴를 클릭하면 편집기의 문자 색상을 특정 언어 스타일로 변경할 수 있습니다. 해당 스타일 정보는 [실행 파일 폴더\Styles]에서 설정할 수 있습니다. 기본적으로 cs.json, sql.json 파일로 구성돼 있으며 사용자 정의 json 파일을 추가해 새로운 스타일을 만들어 적용할 수 있습니다.

조회 프로시저 샘플


ColumnNode(id: selectParams)로 파라미터를 생성했습니다. 파라미터의 첫 번째 행은 앞 쪽에 콤마(,)가 출력되지 않도록 s/ 키워드의 내용과 b/ 키워드의 내용을 다르게 작성했습니다.


ColumnNode(id: selectList)로 SELECT 문의 항목을 생성했습니다. 아래 FROM 문을 생성하기 위해 {from id:selectList} 사용했습니다. WHERE 문은 ColumnNode(id: selectList)로 생성했고 첫 번째 행은 조건 앞에 WHERE, 그 외의 줄은 AND로 각각 다르게 출력되도록 s/ b/ 키워드를 사용했습니다.

내용 바로 가기