개발 편의 기능

넥사크로 스튜디오에서 제공하는 기능 중 파일 편집 시 작업 효율성을 높여주는 유용한 기능을 소개합니다.

Assist

Copy Full Path

현재 활성화된 파일의 경로를 클립보드에 복사합니다. 만약, Project Explorer가 활성화된 상태에서 선택된 트리 아이템이 파일일 경우 해당 파일의 경로를 복사합니다.

Open Containing Folder

현재 활성화된 파일이 존재하는 디렉터리로 운영체제의 기본 탐색기를 실행해 이동합니다. 만약, Project Explorer가 활성화된 상태에서 선택된 트리 아이템이 파일일 경우 해당 파일의 디렉터리 경로를 엽니다.

Open File in Project

현재 프로젝트에 로드된 파일들의 목록을 표시합니다.

Search String에 문자열 입력 시 프로젝트 파일 중 파일명에 해당 문자열이 포함된 목록을 실시간으로 갱신합니다. 파일 목록 중에서 특정 파일 항목을 마우스로 더블 클릭하면 해당 파일 편집 뷰를 열어줍니다.

Open Service Folder / Open Folder

Project Explorer가 활성화 상태이고 현재 선택한 항목이 Service, Directory (File type service의 sub directory)일 경우 해당 경로를 열어줍니다. Project Explorer의 Popup Menu로 실행합니다.

코드 스니펫(Snippet)

코드 스니펫은 사용자가 미리 정의한 코드 조각을 의미합니다. 자주 사용하는 코드를 미리 정의하고 파일 편집 시 가져다 사용할 수 있는 기능입니다.

코드 스니펫 정의

리본 메뉴 [EDIT - Assist - Code Snippet] 또는 메뉴 [Assist > Code Snippet] 항목을 선택한 후 호출된 창에서 스니펫을 정의할 수 있습니다.

기본적인 코드 스니펫은 넥사크로 스튜디오에서 제공하며, 원하는 항목을 추가할 수 있습니다.


이름

설명

1

Add Group

코드 스니펫 그룹을 추가

2

Add Code Snippet

새로운 코드 스니펫을 추가

3

Delete Code Snippet

선택된 코드 스니펫을 삭제

4

Import Code Snippet

XML 파일로 생성된 코드 스니펫을 가져오거나 xpackage 파일을 선택하고 Import Wizard를 실행합니다.

5

Export Code Snippet

코드 스니펫을 XML 파일로 저장합니다

6

Options

코드 스니펫 파일 위치를 설정합니다.

7

Code Snippet List

코드 스니펫 목록

8

Name

코드 스니펫의 이름 정의

9

Shortcut

코드 스니펫을 호출할때 사용할 바로가기 문구 정의

(XCSS 또는 Script 편집창에서 Shortcut으로 지정된 문구 입력 시 코드 스니펫 반영)

10

Description

코드 스니펫에 대한 설명 정의

11

Code Snippet Source

적용될 코드 스니펫 정의

코드 스니펫 예약어

스니펫 코드 작성 시 아래와 같은 예약어를 사용할 수 있습니다. 예를 들어 $DATE$를 입력하면 오늘 날짜를 표기하는 문자열로 변환해 입력합니다.

reserved string

설명

General

$end$

코드 스니펫을 적용한 후 커서의 위치

$selected$

현재 선택된 문자열. 선택된 항목이 없는 경우에는 표시하지 않습니다.

$clipboard$

클립보드에 복사된 문자열

$tab$

탭 문자

File

$FILE$

파일명을 포함한 파일 경로

$FILE_EXT$

파일 확장자

$FILE_BASE$

확장자를 뺀 파일명

$FILE_PATH$

파일 경로

$FILE_EXT_UPPER$

파일 확장자 (대문자)

$FILE_BASE_UPPER$

확장자를 뺀 파일명 (대문자)

$FILE_PATH_UPPER$

파일 경로 (대문자)

Date

$DATE$

년/월/일 형식 (yyyy/MM/dd)

$DATE_REVERSE$

로케일 형식에 따른 현재 일자를 표기

$DAY$

현재 일자를 숫자로 표기

$DAY_02$

현재 일자를 "dd" 형식으로 표기

$DAYNAME$

로케일 형식에 따른 현재 요일을 짧게 표기 (Sun, Mon..)

$DAYLONGNAME$

로케일 형식에 따른 현재 요일을 표기 (Sunday, Monday..)

$MONTH$

현재 월을 숫자로 표기

$MONTH_02$

현재 월을 "MM" 형식으로 표기

$MONTHNAME$

로케일 형식에 따른 현재 월을 짧게 표기 (Jan,Feb..)

$MONTHLONGNAME$

로케일 형식에 따른 현재 월을 표기 (January,February..)

$YEAR$

현재 연도를 숫자로 표기

$YEAR_02$

현재 연도를 "yy" 형식으로 표기

Time

$HOUR$

현재 시간을 숫자로 표기

$HOUR_02$

현재 시간을 "HH" 형식으로 표기

$MINUTE$

현재 시간을 "mm" 형식으로 표기

$SECOND$

현재 시간을 "ss" 형식으로 표기

예약어는 코드 스니펫 소스 편집창에서 컨텍스트 메뉴 항목 중 [Insert reserved string] 항목을 선택하거나 '$'문자를 입력하면 나타나는 목록에서 선택할 수 있습니다.

코드 스니펫 활용

스크립트 또는 XCSS 편집 화면에서 컨텍스트 메뉴를 호출하여 [Code Snippet]을 선택하면 코드 스니펫 소스창에서 작성한 목록이 표시됩니다. 메뉴에서 항목을 선택하면 키보드 커서 위치에 코드 조각이 삽입됩니다.

코드 스니펫 정의 목록에서 입력한 Shortcut을 편집 화면에서 입력하면 코드 스니펫 목록이 표시되고 항목 선택 시 코드 조각을 추가할 수 있습니다.

코드 조각은 현재 커서가 위치한 곳에 삽입됩니다. 예를 들어 탭키를 입력해 탭만큼 이동한 상태에서 코드 조각을 입력하면 입력된 코드 조각은 모두 탭만큼 이동한 위치에 입력됩니다.

인텔리센스 (Intellisense)

인텔리센스는 스크립트나 XCSS 편집 화면에서 문자열을 입력할 때, 사용할 수 있는 코드(멤버, 함수, 매개변수, 코드 스니펫) 목록을 제공해 사용자가 간편하고 빠르게 파일을 편집할 수 있도록 보조하는 기능입니다. 인텔리센스 기능을 문자열을 입력하고 직접 실행하려면 Ctrl+Space 키를 입력합니다.

include

스크립트 편집 시 include 할 수 있는 xjs 파일 목록을 표시합니다. 스크립트 화면에서 include 지시어 입력 후 인용부호를 입력하면 include 할 수 있는 파일 목록을 표시합니다.

Script

스크립트 편집 위치를 기준으로 현재 Scope에서 사용할 수 있는 멤버, 함수, 매개변수, 코드 스니펫 목록이 표시됩니다.

컴포넌트나 오브젝트의 속성값을 지정하려는 경우에는 속성명앞에 'set_'이 추가된 함수 형식으로 처리해야 합니다. 스크립트 창에서 입력 시 'set_'으로 시작하지 않고 속성명을 그대로 입력하고 '='을 추가해주어도 자동으로 'set_'가 붙은 함수 형식으로 변환합니다.

스크립트 창에서 표시되는 목록은 아이콘에 따라 다른 항목을 표시합니다.

XCSS

XCSS 편집 위치에 따라 사용 가능한 선택자 또는 선택자의 속성 목록과 코드 스니펫 목록이 함께 표시됩니다.

XCSS 편집창에서 표시되는 목록은 아이콘에 따라 다른 항목을 표시합니다.

자동 들여쓰기 (Auto Indent)

스크립트 편집창에서 블럭 설정한 영역에 자동 들여쓰기를 적용합니다.

문자열 찾기, 바꾸기

찾기 (Find)

검색 문자열을 입력하고 순차적으로 조건에 맞는 문자열을 찾습니다.

바꾸기 (Replace)

검색 문자열을 입력하고 바꿀 문자열을 입력한 후 순차적으로 조건에 맞는 문자열을 찾고(Find Next) 바꾸거나(Replace) 여러 문자열을 동시에 찾고 바꿉니다(Replace All).

Options

설명

Replace in selection only

블럭으로 선택한 영역만 대상으로 바꾸기를 처리합니다.

블럭 내 여러 문자열을 동시에 찾고 바꾸는 기능만 사용할 수 있습니다 (Replace All)

파일에서 찾기 (Find in File)

설정한 디렉터리에 있는 파일을 설정하고 검색 문자열에 입력한 값과 조건에 맞는 문자열을 포함한 파일을 찾아 선택한 Find Results창에 목록 형태로 표시합니다.

Options

설명

Include sub-folders

찾을 디렉터리 하위 디렉터리까지 검색 대상에 포함할지 여부를 선택합니다.

Exclude folders

검색 대상에서 제외할 하위 디렉터리 이름을 설정합니다.

세미콜론(;)을 사용해 2개 이상의 이름을 설정할 수 있습니다.

공통 옵션

Options

설명

Direction

문자열 찾기 방향을 설정합니다.

Match Case

검색 문자열의 대소문자까지 일치하는지 확인합니다.

Match whole words only

검색 문자열이 독립된 단어로 구분된 텍스트와 일치하는지 확인합니다.

검색 문자열이 "Button"인 경우 <Button>은 일치하는 결과로 처리하지만 Button00은 숫자와 연결되는 단어로 인식해 일치하지 않은 결과로 처리합니다.

Regular expressions

검색 문자열 또는 바꿀 문자열에 정규 표현식을 사용할지 여부를 선택합니다.

Regular expressions

검색 문자열로 알파벳 또는 숫자 외 문자 설정 시 동작하지 않을 수 있습니다.

설명

.

공백 문자와 탭 문자를 포함해 모든 단일 문자를 찾습니다.

검색 문자열이 ".T"인 경우 "AT", " T", "1T" 모두 일치하는 결과로 처리합니다.

\(...\)

부분식을 그룹화합니다. \n 식 사용 시 n번째 그룹을 지정할 때 사용할 수 있습니다.

\n

1부터 9까지의 그룹 숫자를 바꾸기 동작 시 설정할 수 있습니다.

검색 문자열이 "Button\([0-1]\)\([0-9]\)_TEST"인 경우 "TEST\1\2_Button"으로 바꿀 문자열을 설정하면 "Button00_TEST" 문자열을 "TEST00_Button"으로 변경할 수 있습니다.

\<

검색 문자열이 독립된 단어로 구분된 텍스트의 시작 문자인 것을 찾습니다.

검색 문자열을 "\<T"로 설정하면 "TEST"에서 시작 문자만 찾습니다.

\>

검색 문자열이 독립된 단어로 구분된 텍스트의 마지막 문자인 것을 찾습니다.

검색 문자열을 "T\>"로 설정하면 "TEST"에서 마지막 문자만 찾습니다.

\x

정규 표현식에서 사용하는 특수 문자를 일반 문자처럼 처리합니다.

검색 문자열을 "\["로 설정하면 일반 문자 "["를 찾습니다. 하지만 검색 문자열을 "["으로 설정하면 문자 집합을 의미하는 [...]로 인식해 정상적인 동작을 하지 못합니다.

[...]

문자 집합을 의미합니다. 예를 들어 [abc]는 문자 a, b, c 중 하나를 의미합니다. [a-z]처럼 사용하면 범위를 나타낼 수도 있습니다.

[^...]

문자 집합을 제외한 나머지 문자를 의미합니다. 예를 들어 [^A-Za-z]는 알파벳 문자를 제외한 모든 문자를 의미합니다.

^

뒤에 설정한 문자가 라인 첫 번째 문자인 것을 찾습니다.

$

앞에 설정한 문자가 라인 마지막 문자인 것을 찾습니다.

검색 문자열을 ")$"로 설정하면 "function ( )" 에서 뒤에 오는 ")"를 찾을 수 있습니다.

*

앞에 설정한 문자를 0번 이상 찾습니다.

검색 문자열을 "Button0*1"로 설정하면 "Button1", "Button01", "Button001"을 찾을 수 있습니다.

+

앞에 설정한 문자를 1번 이상 찾습니다.

검색 문자열을 "Button0*1"로 설정하면 "Button01", "Button001", "Button0001"을 찾을 수 있습니다.

문자열 치환(Rename)

프로젝트에서 사용하는 파일 중에서 특정 문자열을 치환하는 기능입니다. 스크립트 편집 화면에서 특정 단어 위에서 컨텍스트 메뉴를 호출하면 Rename을 실행할 수 있습니다.

Rename 범위는 프로젝트, 서비스, 파일 중에 선택하여 변경할 수 있습니다. 주석의 내용까지 문자열을 탐색하려면 "Comments"를 체크합니다. 일반 문자열까지 탐색하려면 "Strings"를 체크합니다.

코드 라인 편집

스크립트 또는 소스 편집 시 캐럿이 위치한 코드 라인을 잘라내거나 복사하거나 삭제할 수 있습니다. 코드 편집 창에서 마우스 오른쪽 버튼을 클릭하고 컨텍스트 메뉴에서 항목을 선택합니다.

Auto Recover

Tools > Options 메뉴에서 AutoRecover 기능 사용 여부와 시간을 설정하면 넥사크로 스튜디오에서 편집하는 파일들을 설정한 시간단위로 임시파일에 저장하는 기능을 수행합니다.

파일을 편집하는 중에 넥사크로 스튜디오가 비정상 종료된 후에 넥사크로 스튜디오를 다시 실행하면 임시파일을 확인하여 파일 복구 여부를 묻는 메시지 창이 뜹니다.

AutoRecover Messagebox

AutoRecover는 복구 대상 목록을 리스트로 표시해주고 해당 파일을 편집 당시에 저장된 임시파일을 사용해 복구합니다.

AutoRecover

metadata

metadata 서비스를 통해 받은 데이터를 컴포넌트, 오브젝트의 id, text 속성값으로 적용하는 기능을 지원합니다.

metadata 서비스는 id, text 속성값 설정 시 참고할 수 있는 데이터를 제공하는 기능입니다. 데이터가 변경된 것을 자동으로 반영하지 않습니다.

예를 들어 Button 컴포넌트의 text 속성값을 metadata에서 선택해서 "Submit"으로 설정한 후 metadata의 값이 "OK"로 바뀌었다고 컴포넌트의 text 속성값이 자동으로 변경되는 것은 아닙니다.

metadata 서비스 등록하기

1

Project Explorer에서 [TypeDefinition > Services] 메뉴를 더블클릭하거나 마우스 오른쪽 버튼을 클릭하고 메뉴에서 [Edit] 항목을 선택해 팝업 창으로 편집창을 띄웁니다.

2

metadata 서비스를 등록합니다.

type 항목은 "metadata"를 선택하고 서비스 경로와 ServiceList, DataSchema, Search Column 항목을 입력합니다. Service List 항목은 도메인, 모델이 정의된 XML 형식의 반환값을 가집니다. DataSchema 항목은 Dataset 가 정의된 XML 형식의 반환값을 가집니다.

ServiceList, DataSchema 항목 지정시 아래와 같은 형식으로 파라미터를 전달할 수 있습니다.

http://172.10.12.54:8080/serviceList/
serviceList.jsp
?filter=FILTER value
&domain=DOMAIN value
&model=MODEL value

filter 파라미터를 지정하지 않은 경우 서비스 호출에 제한이 있을 수 있습니다.

3

정상적으로 서비스가 등록되었다면 바로 metadata 서비스를 호출합니다.

4

metadata 서비스가 호출하고 데이터를 수신하면 Project Explorer에 아래와 같이 정보가 표시됩니다.

metadata 서비스로 받은 데이터를 id, text 속성값으로 적용하기

1

메뉴[Options]을 선택하고 Options 창을 띄웁니다.

2

Options 창 [Project > Advanced > Metadata] 항목에서 "Use user-defined metadata"를 사용함으로 체크합니다.

"Use metadata with prefixID" 항목을 사용함으로 체크하면 id 속성값 적용 시 [prefixID+Metadata] 형식으로 id 속성값이 설정됩니다.

3

컴포넌트나 오브젝트를 선택하고 id 또는 text 속성항목 선택 시 확장 버튼을 확인할 수 있습니다. 확장 버튼을 클릭합니다.

4

metadata를 조회하고 선택할 수 있는 창이 띄워진 것을 확인합니다.

5

id 또는 text 속성값으로 반영할 항목을 확인하고 해당 셀을 클릭하면 id 또는 text 속성값으로 반영됩니다.

기타 기능

Refresh Filtered

filter 파라미터 값을 지정해 서비스에서 필터링된 데이터를 전달할 수 있습니다. Project Explorer에서 서비스 또는 모델 선택 후 컨텍스트 메뉴에서 [Refresh Filtered] 항목을 선택하면 필러링할 텍스트를 입력할 수 있는 창이 표시됩니다.

입력한 값은 ServiceList, DatasetLayout의 filter 파라미터 값으로 전달됩니다.

[serviceURL + serviceList]?filter=sales
[serviceURL + datasetLayout]?filter=sales
    &domain=[DOMAIN value]&model=[MODEL value]

Search Column

TypeDefinition에서 Search Column 항목을 지정하면 metadata를 선택하는 창에서 텍스트 검색 시 검색 대상 컬럼을 지정할 수 있습니다. 값을 지정하지 않으면 모든 컬럼을 대상으로 검색을 처리합니다.

Display text

Project Explorer에 표시되는 metadata 정보의 형식을 지정할 수 있습니다. 기본값은 아래와 같습니다.

선택한 항목에 따라 Project Explorer에 표시되는 metadata 정보의 형식을 변경할 수 있습니다.

프로젝트 시작 시 metadata 로딩

Options 창 [Project > Startup] 항목에서 "Load layout information of a business service/metadata on Stratup"를 사용함으로 체크합니다.

프로젝트 시작 시 metadata 로딩은 프로젝트 폴더에 생성된 Service.xds 파일을 사용합니다. 데이터가 변경된 경우에는 Project Explorer에서 서비스 또는 모델 선택 후 컨텍스트 메뉴에서 [Refresh] 또는 [Refresh Filtered] 항목을 선택해주어야 합니다.

ServiceList, DataSchema 스펙

ServiceList

ServiceList에서는 ColumnInfo 항목 중 DOMAIN, MODEL 항목은 필수값이며 해당 값은 "metadata"로 지정해주어야 합니다.

DataSchema

DataSchema에서는 ColumnInfo 항목 중 name, type 항목은 필수값이며 해당 값은 "metadata", "dataset"으로 지정해주어야 합니다. 그리고 "metadata"를 id로 가지는 Dataset을 정의하고 실제 사용할 데이터를 처리합니다.

Add on 개발하기

넥사크로 스튜디오 내에서 열려있는 프로젝트 정보를 가공해서 확인하거나 출력하는 용도로 Add on을 만들고 사용할 수 있습니다.

Add on Template을 사용해 기본적인 정보를 확인하거나 출력할 수 있습니다. 템플릿 프로젝트를 수정해서 원하는 형식의 Add on을 만들 수도 있습니다.

Add on(nexacrostdio 메소드를 포함한)을 Add on 창이 아닌 NRE, WRE에서 실행하는 경우에는 스크립트 에러가 발생합니다. Add on은 Add on 창에서만 동작하도록 설계되었으며 해당 스크립트 에러는 정상적인 동작입니다.

ReferenceError: nexacrostudio is not defined

아래에서는 간단한 Add on을 만들고 연결하는 방법을 살펴봅니다.

1

새로운 프로젝트를 생성합니다.

2

화면에 Button, TextArea 컴포넌트를 배치합니다.

3

Button 컴포넌트의 onclick 이벤트 핸들러 함수를 아래와 같이 작성합니다.

this.Button00_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
	this.TextArea00.set_value(nexacrostudio.request(requesttype.all));
};

4

메뉴 [View > Add on]을 선택해 Add on 창을 표시합니다.

5

Add on 창에서 Options 버튼을 클릭해서 옵션 설정창을 표시합니다.

6

[+] 버튼을 클릭하고 start.json 파일을 선택합니다.

파일 탐색기에서는 현재 열려있는 프로젝트의 output 폴더 위치가 기본 위치로 열립니다.

7

내용을 확인하고 [OK] 버튼을 클릭하면 Add on이 등록됩니다.

8

드롭다운 목록에서 Add on 창에서 등록한 애플리케이션을 선택하면 화면이 실행되어 표시됩니다.

9

Add on 창에서 버튼을 클릭하면 정보가 표시되는 것을 확인할 수 있습니다.

10

Disconnect 버튼을 클릭하면 연결이 종료되고 화면이 표시되지 않습니다.

[?] 버튼 클릭 시 nexacrostudio 메소드 관련 도움말을 표시합니다.

실행 환경에 따라 해당 도움말 항목이 정상적으로 열리지 않을 수 있습니다.

Appendix > nexacrostudio Interface > Method 항목을 참고해주세요.