Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

프로퍼티타입 (PropertyType)

노트타입의 개별 속성을 정의

Value Type(valueType)

각 프로퍼티타입의 유형을 정의

기본형 : STRING, INT, LONG, DOUBLE, BOOLEAN, DATE

Java의 기본형에 1:1로 매핑되는 유형이며, DB의 경우는 정확하게 매핑되는 유형이 없는 경우는 유사한 유형으로 매핑 ex) INT형은 Oracle의 경우 그냥 NUMBER로 매핑

TEXT

STRING형과 비교하면 줄바꿈 문자등이 포함되어 일반적으로 textarea를 이용하여 입력을 받는 형태를 의미하며 DB의 TEXT(mysql)나 CLOB(oracle) 등으로 매핑되어 저장

FILE

FILE형은 해당 프로퍼티타입에 fileHandler(기본값은 default) 설정을 통하여 파일 저장 방식을 지정할 수 있으며, fileHandler를 변경하여 저장 방식을 커스터마이징 할 수 있다.

DefaultFileHandler는 다음과 같이 application.yml에 file.default.path에 설정된 경로에 tid/pid/yyyymm/dd/UUID.파일확장자 형태로 파일을 저장하며, {“contentType”: “jpeg”, “storePath” : “tid/pid/201707/11/daidafeildiadag.jpg”, “fileName”: “test.jpg”, “fileSize” : 233} 같은 형태로 fileValue를 관리한다.

file:
  default:
    path: /resource/backend/files

CODE

CODE형은 Java의 enum과 같이 선택할 수 있는 값을 제공하는 유형이며, 프로퍼티타입의 code 속성으로 다음과 같이 설정한다.

"code": [{"value": "node", "label": "Node"}, {"value": "data", "label": "Data"}, {"value": "logic", "label": "Logic"}, {"value": "path", "label": "Path"}]

REFERENCE

REFERENCE는 다른 노드에 대한 ID를 저장하여 Relation을 정의하는 유형이다. 이를 위하여 다음과 같은 추가적인 속성을 설정한다.

  • referenceType : 참조할 노드 타입 지정

  • filter : 참조 대상 노드를 선택하기 위한 조건이 필요한 경우 이를 Parameter Query 형태의 filter로 설정, 이 경우 해당 REFERENCE를 뒤한 code API를 호출하면 필터링된 코드 목록 리턴

REFERENCE형에 대한 저장시에 대상 노드타입의 idable이 하나 이상이면 id1>id2 와 같은 형태로 ID가 생성되기 때문에 이런 경우를 고려하여 refId라는 추가적인 값을 가지게 된다. 따라서 REFERENCE형에 대한 API에서는 다음과 같은 형태로 리턴된다.

{

"refId": "event>tid",

"value": "tid",

"label": "NodeType ID"

}

이런경우 indexable이 true라면 기본 PID로는 refId가 인덱싱되고, PID_label 필드로 label이, PID_value 필드로 value 가 각각 인덱싱되어 PID_label_matching=xxx와 같은 형태로 질의가 가능하다.

REFERENCES

REFERENCES는 REFERENCE 유형을 다중 선택 가능한 유형이다. 따라서 추가 속성이나 인덱싱도 REFERENCE와 동일하게 설정하며, API 응답 형태는 다음과 같이 배열로 반환된다.

[

{

"refId": "event>tid",

"value": "tid",

"label": "NodeType ID"

},

{

"refId": "event>event",

"value": "event",

"label": "Event"

}

]

REFERENCED

카테고리-컨텐츠 관계 처럼 REFERENCE나 REFERENCES로 참조하는 대상 목록을 제공하는 유형이다. REFERENCED 유형은 실제로 값을 저장하는 것이 아니라 다음과 같은 추가 속성을 이용하여 내부적으로 쿼리를 실행한 결과를 제공한다.

  • referenceType : 참조하고 있는 노드 타입 지정

  • referenceValue : 참조하고 있는 노드 타입의 REFERENCE 속성 지정

  • filter : REFERENCED 목록을 제공하기 위해서 sorting이나 조건이 필요한 경우 이를 Parameter Query 형태의 filter로 설정

PARENT와 CHILDREN

PARENT와 CHILDREN은 REFERENCE와 REFERENCED와 동일한 개념


Component 설정(component)

조건부 노출 설정(enableCondition)

조건부 노출 설정은 동일 노드의 다른 프로퍼티의 값에 따라서 해당 프로퍼티의 노출 여부를 정의한다.


  • required : 필수 여부

  • idable : 아이디 여부

  • labelable : Label 여부

  • treeable : REFERENCE일 경우 트리형태 지원 여부

  • indexable : 인덱싱 여부

  • analyzer : 인덱싱을 하는 경우 적용할 Analyzer 지정

    • simple : Lowercase 만 적용

    • standard : Lowercase와 Stop필터 적용

    • code : Lowercase 적용하고, 공백이나 ‘,’ 문자로 토큰

    • cjk : Lowercase, CJKBigram, StopFilter 적용

  • referenceType : valueType이 REFERENCE 또는 REFERENCED일 경우 참조할 노드 타입 지정

  • referenceValue : 참조 노드 타입의 프로퍼티 타입 지정

  • code : CODE 형에서 사용할 코드 값

  • validationTypes : Validation 체크 값

  • fileHandler : 파일 저장에 사용할 저장소 지정

  1. 정의

  1. NodeType에 종속되는 스키마이고 NodeType이 가지게 되는 데이터 속성들의 유형을 정의한다.

  2. 쉽게 말해 RDBMS(오라클, MySql 등) 의 테이블 컬럼 개념이라고 볼 수 있다.

  3. 솔루션 API 호출 시 valueType에 따라 JSON 의 값의 형식이 달라진다.

  4. 솔루션 관리자 UI 구성 시 valueType에 따라 Presentational Component 의 사용이 달라진다.

  1. 속성정의


속성

필수

기본값

설명

pid

필수


  1. PropertyType의 ID 이므로 NodeType 에 속한 상태에서 중복되어서는 안된다.

  2. 본 프로젝트에서는 테이블 컬럼명과 동일하게 정의한다.

name

필수


  1. PropertyType의 명

valueType

필수


  1. PropertyType 의 속성타입

“STRING” : 문자형 데이터 타입으로 사용할 때 정의한다. MySql의 VARCHAR 개념이다.

“INT” : 숫지형 데이터 타입으로 사용할 때 정의한다. MySql의 INT 개념이다.

“LONG” : 숫지형 데이터 타입으로 사용할 때 정의한다. MySql의 BIGINT 개념이다.

“DOUBLE” : 숫자형 데이터 타입으로 사용할 때 정의한다. MySql의 DOUBLE 개념이다.

“BOOLEAN” : 불리언 데이터 타입으로 사용할 때 정의한다.

“DATE” : 날짜형 데이터 타입으로 사용할 때 정의한다. MySql의 DATE 개념이다.

“DATETIME” : 날짜형 데이터 타입으로 사용할 때 정의한다. MySql의 DATE 개념이다.

“MONTH” : 문자형 데이터 타입으로 사용할 때 정의한다.

“TEXT” : 문자형 데이터 타입으로 사용할 때 정의한다. MySql의 TEXT 개념이다.

“FILE” : 파일 데이터 타입으로 사용할 때 정의한다.

“IMAGE” : 이미지 파일 데이터 타입으로 사용할 때 정의한다.

“CODE” : 코드형 데이터 타입으로 사용할 때 정의한다.

“CODES” : 여러 개의 코드형 데이터 타입으로 사용할 때 정의한다. 값은 , 로 구분되어 저장된다.

“REFERENCE” : 연관 데이터 타입으로 사용할 때 정의한다. 연관 NodeType과 1:1 관계를 가지고, 연관 데이터의 id 값을 저장한다.

“REFERENCED” : 연관 데이터 타입으로 사용할 때 정의한다. 연관 NodeType과 1:N 관계를 가진다.

“PARENT” : 연관 데이터 타입으로 사용할 때 정의한다. 연관 NodeType과 1:1 관계를 가지고, 연관 데이터의 id 값을 저장한다.

“CHILDREN” : 연관 데이터 타입으로 사용할 때 정의한다. 연관 NodeType과 1:N 관계를 가진다.

“REFERENCES” : 연관 데이터 타입으로 사용할 때 정의한다. 연관 NodeType과 1:N 관계를 가진다. 값은 연관 데이터의 id값을 , 로 구분되어 저장된다.

“PART” : 연관 데이터 타입으로 사용할 때 정의한다. 연관 NodeType과 1:1 관계를 가진고, 연관 데이터의 id 값을 저장한다.

“PARTS” : 연관 데이터 타입으로 사용할 때 정의한다. 연관 NodeType과 1:N 관계를 가진다.

값은 연관 데이터의 id값을 , 로 구분되어 저장된다.

“OBJECT” : JSON String 으로 값을 저장하고 API 출력시 JSON 형태로 출력한다.

“JSON” : JSON String 으로 값을 저장하고 API 출력시 JSON String 형태로 출력한다.

defaultValue



  1. 기본값 정의

defaultComponent



  1. 솔루션 관리자 UI 구성 시 바인딩 하게 될 Presentational Component

required


false

  1. 필수 여부

true : 사용

false : 미사용

idable


false

  1. ID (key) 여부

true : 사용

false : 미사용

labelable


false

  1. 라벨 여부

  2. labelable이 true 인경우 해당 데이터는 명칭이 된다. 예를 들면 API 호출시 valueType이 REFERENCE 인 데이터는

{

“reference”: { “value”: “1”, “label”: “사용가능” }

}

이런식으로 출력되는데 labelable이 true 인경우 해당 값이 “label” 에 출력된다.

true : 사용

false : 미사용

treeable


false

  1. 트리 기능 여부

  2. valueType이 REFERENCE, PARENT 인 경우에만 적용된다.

  3. 현재 NodeType이 계층구조를 가지고 있을 때 부모에 해당하는 PropertyType이면 true 로 한다.

true : 사용

false : 미사용

i18n


false

  1. 다국어 기능 여부

true : 사용

false : 미사용

indexable


false

  1. 인덱싱 여부

  2. NodeType의 repositoryType 이 “node” 인 경우 Infinispan 캐쉬 저장소를 사용하는데 indexable이 true인 경우에만 해당 데이터를 검색 할 수 있다.

  3. indexable이 true인 경우 솔루션 관리자 UI 구성 시 검색영역을 구성 할 수있다.

true : 사용

false : 미사용

analyzer



  1. NodeType의 repositoryType이 “node”인 경우에만 적용된다.

  2. indexable이 true 인 경우에만 적용된다.

  3. Infinispan 캐쉬 저장소를 사용 할 경우 Lucene 을 사용하는데 Lucene의 analyzer를 지정할수있다.

“simple” : 일반적인 like 검색이 가능해지고 보통 valueType이 STRING, TEXT 인 문자형 데이터일 때 사용한다.

“code” : 일반적인 = 검색이 가능해지고 보통 valueType이 PARENT, REFERENCE, REFERENCES, CODE 인 코드, 연관 데이터일 때 사용한다.

referenceType



  1. valueType이 REFERENCE, REFERENCES, REFERENCED, PARENT, CHILDREN, PART, PARTS 인 경우에만 적용된다.

  2. 연관된 NodeType의 tid를 정의한다.

referenceValue



  1. valueType이 REFERENCE, REFERENCES, REFERENCED, PARENT, CHILDREN, PART, PARTS 인 경우에만 적용된다.

  2. referenceType에 정의된 NodeType의 PropertyType의 pid를 정의 할 수있다.

  3. 정의 하지 않을시 referenceType에 정의된 NodeType의 id와 연관 관계를 맺는다.

filter



  1. valueType이 REFERENCE, REFERENCES, REFERENCED, PARENT, CHILDREN, PART, PARTS 인 경우에만 적용된다.

  2. code API 사용시 적용될 파라미터 쿼리를 정의할 수 있다.

(예) uppderCode_matching=useYn&count=1

code



  1. valueType이 CODE, CODES 인 경우에만 적용된다.

  2. 사용될 코드형 데이터를 JSON Array 형태로 정의 할 수 있다.

(예) [ { “value”: “simple”, “label”: “Simple Analyzer” } ]

idType



  1. idable이 true인 경우에만 적용된다.

  2. id의 자동 발급 기능을 정의 할 수 있다.

“autoIncrement”: 시퀀스 발급 형태로 valueType이 숫자형 이어야한다.

“UUID”: Java 의 UUID를 사용한다.

“hash”: Java 의 UUID의 hashCode를 사용한다.

orderNo



  1. PropertyType 들의 Sorting 순서이다.

  2. 솔루션 관리자 UI 구성시 목록의 헤더, 폼의 컴포넌트 배치에 관련되어있다.

columnId



  1. NodeType의 tableName이 정의된 경우에만 적용된다.

  2. RDBMS 테이블의 컬럼명과 바인딩한다.

  1. 예시

  1. JSON

{

“typeId”: “nodeType”,

“parentId”: “root”,

“tid:”: “ctsBasAptM”,

“repositoryType”: “node”,

“typeName”: “공항기초”,

“historyable”: true,

“propertyTypes”: [

{

“pid”: “comAreaCdCId”,

“name”: “지역”,

“valueType”: “REFERECES”,

“idable”: false,

“labelable”: false,

“indexable”: true,

“analyzer”: “code”,

“required”: false,

“referenceType”: “comAreaCdC”,

“referenceValue”: “”,

“filter”: “useYn_matching=y”,

“orderNo”: 10

},

{

“pid”: “id”,

“name”: “공항코드”,

“valueType”: “STRING”,

“idable”: true,

“labelable”: false,

“indexable”: true,

“analyzer”: “code”,

“required”: true,

“orderNo”: 20

},

{

“pid”: “aptNm”,

“name”: “공항명”,

“valueType”: “STRING”,

“idable”: false,

“labelable”: true,

“indexable”: true,

“analyzer”: “simple”,

“required”: true,

“orderNo”: 30

}

],

“events: []

}


  • No labels