이전 버전 마이그레이션
Winsows XP 미지원
그래픽 라이브러리를 Skia Graphics Library로 변경하면서 일부 운영체제 최소 사양이 변경됐습니다.
윈도우 운영체제의 경우 XP를 지원하지 않으며 Android 운영체제의 경우 5.0 이상 버전을 지원합니다. 세부적인 지원 범위는 아래 정보를 참고하세요.
제품 정보 > 시스템 요구사항
운영하는 시스템의 사용자 환경에 Windows XP 또는 Windows XP Embedded 운영체제가 포함된 경우에는 운영체제를 업데이트해야 합니다.
윈도우 XP는 2014년 4월 8일, Windows XP Embedded는 2016년 1월 12일 제조사 지원이 종료되었습니다.
모듈 프로젝트 (17.1.3.100)
넥사크로 모듈 디벨로퍼를 정식으로 출시했습니다. 넥사크로 모듈 디벨로퍼는 넥사크로 스튜디오 설치 시 같이 설치됩니다.
넥사크로 모듈 디벨로퍼 가이드
17.1.1.100 미만 버전에서 제공하던 넥사크로 스튜디오 내 모듈 프로젝트 개발 기능에 대한 콘텐츠는 삭제했습니다. 아래 정보는 더 이상 제공하지 않습니다.
개발 도구 가이드 > 생성마법사 | 모듈 프로젝트 개발 도구 가이드 > 모듈 프로젝트 편집 개발 도구 가이드 > 모듈 프로젝트 배포 파일 생성 넥사크로 모듈 디벨로퍼 가이드 beta
17.1.1.100 미만 버전에서 작성된 모듈 프로젝트에 대한 마이그레이션은 지원하지 않습니다.
이전 프로젝트에서 작성한 오브젝트의 js 코드를 참조해 새로 프로젝트를 작성해야 합니다.
넥사크로 플랫폼 17 (17.0.0.2700 이전 버전)
17.0.0.2700 이전 버전의 프로젝트 파일을 열면 아래와 같이 확인 메시지를 표시하며 [Yes] 버튼 클릭 시 마이그레이션을 진행합니다. 마이그레이션 과정에서 파일 버전 정보가 변경되며 일부 신규 속성값을 자동으로 설정합니다.
마이그레이션이 진행된 이후에는 이전 버전의 넥사크로 스튜디오에서 변경된 프로젝트를 다시 열 수 없습니다. 프로젝트 파일을 백업한 후 마이그레이션을 진행하는 것을 권장합니다.
파일 버전 정보 변경
아래와 같이 파일 버전 정보가 변경됩니다.
항목 | 항목 | 변경 |
---|---|---|
프로젝트 파일 (XPRJ) | Project > version | 2.0 -> 2.1 |
Project > type | 항목 삭제 모듈 프로젝트 지원하지 않음 | |
폼 파일 (XFDL) | FDL > version | 2.0 -> 2.1 |
폼 파일은 이미지 상대 경로 처리 기준 변경에 해당하는 경우에만 version 정보를 변경합니다. 코드 변경이 없다면 version 정보를 그대로 유지합니다.
마이그레이션 이후 폼 파일을 수정하고 저장하는 경우 version 정보를 2.1로 변경합니다.
Regenerate
XCSS 파일 변경으로 테마에 포함된 XCSS 파일이 Regenrate 됩니다.
부트스트랩 파일 변경
일부 표준에 맞지 않는 태그를 변경했습니다.
$r_title(17.0.0.2600 이전 버전) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> <meta name="viewport" content="user-scalable=1, initial-scale=0.1, width=device-width, target-densitydpi=device-dpi" />
$r_title(17.1.0.100 이후 버전) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" > <meta http-equiv="content-type" content="text/html; charset=UTF-8" > <meta name="viewport" content="user-scalable=1, initial-scale=0.1, width=device-width, target-densitydpi=device-dpi" >
17.1.2.600 이후 버전에서 웹접근성 평가 기준에 따라 기본 부트스트랩 파일 content-type meta 태그 속성값을 아래와 같이 변경했습니다.
content="text/html; charset=UTF-8"
-> content="application/xhtml+xml; charset=UTF-8"
해당 속성은 부트스트랩 템플릿 관리하기 기능을 사용해 다른 값으로 변경할 수 있습니다.
$r_title(17.1.2.600 이후 버전) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" > <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" > <meta name="viewport" content="user-scalable=1, initial-scale=0.1, width=device-width, target-densitydpi=device-dpi" >
datatyperule 속성
새로 생성하는 프로젝트의 겨우 datatyperule 속성값을 "2.0"으로 설정하지만, 마이그레이션인 경우에는 "1.0"으로 설정되고 변경된 Data 유효성 규칙을 적용하지 않습니다.
해당 속성값을 "2.0"으로 변경하는 경우 데이터 유형에 맞는 데이터는 영향을 받지 않지만, 데이터 범위를 벗어나거나 이전 버전에서 처리하지 못했던 값의 경우 영향을 받을 수 있습니다. 자세한 내용은 아래 정보를 참고하세요.
설치 경로 변경
이전 버전을 덮어쓰지 않고 새로운 폴더에 설치됩니다.
항목 | 기존 경로 | 변경 |
---|---|---|
기본 설치 폴더 | C:\Program Files (x86)\nexacro\17 | C:\Program Files (x86)\nexacro\17.1 |
Alias 경로도 버전에 따라 변경됩니다. 예를 들어 %USERAPP% 으로 설정한 경우 실제 경로가 17이 아닌 17.1로 설정됩니다.
항목 | 기존 경로 | 변경 |
---|---|---|
%USERAPP% | %LOCALAPPDATA%LOW\nexacro\17 | %LOCALAPPDATA%LOW\nexacro\17.1 |
Alias 경로는 아래 정보를 참고하세요.
앱 배포 가이드 > Alias 경로
이미지 상대 경로 처리 기준 변경
ImageViewer 컴포넌트의 image 속성값 또는 컴포넌트의 background, icon 등의 속성을 지정할 때 서비스 경로가 아닌 폴더를 지정하는 경우에 상대 경로를 처리하는 방식이 변경됐습니다.
기존에는 프로젝트 폴더를 기준으로 상대 경로를 지정했다면 17.1에서는 컴포넌트가 로드되는 XFDL 파일을 기준으로 상대경로를 지정합니다. 예를 들어 프로젝트 폴더 아래에 "TEST"라는 폴더가 있고 그 안에 이미지 파일을 지정한 경우에 아래와 같이 변경됩니다.
항목 | 기존 값 | 변경 값 |
---|---|---|
image | image="url('TEST\13943.png') | image="url('..\TEST\13943.png') |
서브 폴더(FrameBase/TEST)를 만들어서 Form을 생성한 경우에는 아래와 같이 처리됩니다 (17.1 이전 버전에서는 서브 폴더를 만들어서 Form을 관리할 수 없습니다).
항목 | 기존 값 | 변경 값 |
---|---|---|
image | - | image="url('..\..\TEST\13943.png') |
유효하지 않은 라이선스
클라이언트(NRE) 라이선스가 아래와 같이 유효하지 않은 경우에는 앱 실행을 중단합니다.
지정한 경로에 라이선스 파일이 없는 경우
라이선스에 명시된 정보와 실제 사용 환경이 다른 경우 (제품 정보, IP 주소, 운영체제)
사용 기간을 벗어나는 경우 (기간 만료, 시작일보다 일찍 실행되는 경우)
라이선스에 허가되지 않는 기능을 사용하는 경우
라이선스 파일이 변조된 경우
서버(X-API, X-PUSH) 라이선스가 아래와 같이 유효하지 않은 경우에는 서버 응답을 중단합니다.
지정한 경로에 라이선스 파일이 없는 경우
라이선스에 명시된 정보와 실제 사용 환경이 다른 경우 (IP 주소)
사용 기간을 벗어나는 경우 (기간 만료, 시작일보다 일찍 실행되는 경우)
라이선스 파일이 변조된 경우
iOS 운영체제 NRE 앱에서는 유효하지 않는 라이선스 체크를 지원하지 않습니다.
넥사크로 플랫폼 14
넥사크로 스튜디오에서 프로젝트를 열었을 때 마이그레이션 기능이 동작합니다. 마이그레이션 처리와 관련된 내용은 아래 정보를 참고하세요.
개발 도구 가이드 > 마이그레이션
플랫폼 변경 기능
용어 변경
기존에 런타임 또는 넥사크로 브라우저라고 부르던 용어를 NRE(Nexacro Runtime Environment)로 변경했습니다. 웹 브라우저의 경우에도 NRE와 비교하는 경우에는 WRE(Web Runtime Environment)로 표현합니다. 그리고 프로젝트 내에서 관리하는 Application과 구분하기 위해 최종 사용자가 실행하는 것은 App으로 표현합니다.
제품 정보 > 넥사크로플랫폼 17 개요
Data Validation
데이터 타입과 맞지 않거나 예외적인 데이터에 대한 처리 기준을 정리하고 일관성 있는 Data Validation(유효성 처리) 규칙을 적용합니다.
datatyperule 속성값을 "1.0"으로 설정한 경우에는 변경된 규칙을 적용하지 않습니다. 이전 버전에서 작성한 프로젝트의 경우에는 아래 변경 정보를 참고하세요.
응용 개발 가이드 > Dataset Validation
NRE 로그 (17.1.2.100)
NRE 실행 시 로그를 원하는 형식으로 확인할 수 있도록 설정 파일을 지정할 수 있습니다. 17.1.0.100에서 지원하던 로그 기능의 사용성을 개선하고 앱 내에서도 로그를 확인할 수 있도록 지원합니다.
앱 배포 가이드 > NRE 로그 확인하기
Extension API 2
기본 제공되는 키보드, 마우스, 터치 디바이스 외 음성이나 영상 인식 등 확장을 위한 구조가 추가됐습니다. 디바이스 확장을 위해 DeviceAdaptor, Command Filter 등의 개념이 추가됐습니다. 또한 확장 모듈을 개발할 수 있도록 Extension API 버전 2를 지원합니다.
응용 개발 가이드 > 음성인식 모듈 사용하기
Graphics 컴포넌트
Graphics 컴포넌트를 사용해서 원하는 그래픽 이미지를 생성하고 활용할 수 있습니다. 예를 들어 차트 컴포넌트 개발 시 Graphics 컴포넌트로 이미지 영역을 구성할 수 있습니다.
컴포넌트 활용 워크북 > Graphics
Xpush protocol V3.0
X-PUSH 서버 기능이 업데이트되면서 XPush 오브젝트에 이를 지원하는 속성이 추가됐습니다.
속성 | 설명 |
---|---|
protocolversion | 다중 Push 처리를 지원하는 프로토콜이 추가되면서 용도에 따라 버전 정보를 구분하는 속성을 추가했습니다. 사용하는 X-PUSH 서버 버전에 따라 설정할 수 있는 속성값이 달라집니다. |
projectid | X-PUSH 서버와 통신 시 사용하는 ID 속성입니다. |
메소드 호출 시 projectid 속성값을 전달할 수 있도록 파라미터가 추가됐습니다.
registerTopicWithUserID(strMessageType, strMessageKey, strUserID[, strProjectID]); registerMessageCountWithUserID(strMessageType, strMessageKey, strUserID[, strProjectID]); unregisterTopicWithUserID(strMessageType, strMessageKey, strUserID[, strProjectID]);
다국어 처리 인터페이스
한국어나 일본어처럼 IME를 사용해서 텍스트 편집을 하는 경우 언어에 따라 필요한 동작을 지원할 수 있도록 내부 인터페이스를 정리했습니다. 라이브러리 내에서 아래와 같이 코드가 분리해 관리합니다.
nexacro17lib\component\ComComp\lang\ko\ime.js nexacro17lib\component\ComComp\lang\ja\ime.js
TLS 1.0, 1.1 지원 종료 (17.1.2.100)
주요 웹브라우저에서 TLS(Transport Layer Security) 1.0, 1.1 지원을 중지함에 따라 넥사크로플랫폼에서도 TLS 1.0, 1.1 지원을 종료합니다.
IE, Edge: https://blogs.windows.com/msedgedev/2018/10/15/modernizing-tls-edge-ie11/
Firefox: https://blog.mozilla.org/security/2018/10/15/removing-old-versions-of-tls/
Chrome: https://blog.chromium.org/2019/10/chrome-ui-for-deprecating-legacy-tls.html
넥사크로플랫폼 앱에서 TLS 1.0 또는 1.1으로 설정된 서버에 접근할 경우 오류 메시지를 표시하고 앱을 종료하거나 해당 프로세스를 처리하지 않습니다. 아래 이미지는 윈도우 운영체제 앱에서 부트스트랩 파일 접근 시 TLS 1.2 미만 버전이면 에러 메시지를 표시하고 앱을 종료하는 것을 보여줍니다.
에러 메시지 및 표시 형식은 운영체제, 실행 프로세스에 따라 달라질 수 있습니다.
Easy UI Core 기능 지원 (17.1.2.100)
‘비욘드 스크린’에 대응하기 위한 UI·UX 플랫폼의 기술적인 문제가 해결된다 하더라도 많은 고객, 그리고 개발자가 이용하게 하는 것과는 별개의 문제다. 다양한 신기술 등장에 따라 UI 역시 다양해지고 있는 만큼 복잡한 개발을 좀 더 쉽게 할 수 있는지에 대한 고민도 필요하다.
출처 : 확대되는 ‘비욘드 스크린’ 환경, OSMU로 넘어선다 | 데이터넷 2020.04.03
데이터(Model), UI 템플릿(View), 액션(Action)을 선택하고 조합해서 기능을 개발할 수 있는 방식을 제공합니다. 현재 버전에서는 프로젝트 내에서 공통 개발 단계에서 디자인팀과 함께 ViewSet 템플릿, View 템플릿을 정의하고 데이터 스키마에 따라 Model을 구성하고 필요한 Action을 만들어 개발팀에서 이를 화면 요구 사항에 따라 조합하고 기능을 추가하는 형태로 개발을 진행할 수 있습니다.
업무를 개발하는 데 있어서 기존 개발자에게는 보다 높은 생산성의 손쉬운 개발 환경인 Low-code를 제공해 주고, 개발자의 범위를 전문 개발자 외의 업무설계자나 최종사용자에게까지도 넓혀주는 No-code도 포괄하며, 현업과의 빠른 업무진행의 도구로도 활용됨은 물론 롱 테일 분야의 개발 병목도 일부 해소하여 최종적으로 현업 및 IT 개발의 전반적인 비즈니스 프로세스 효율 개선이 가능한 Digital Transformation을 제공하게 됩니다.
출처 : 비즈니스 프로세스 효율 개선과 혁신-Easy UI | 투비통 2020.02.28
개발 도구 가이드 > Easy UI Core - Easy UI Core 샘플을 내려받아 기능을 살펴보고 각 샘플을 어떻게 만드는지 설명합니다. 개발 도구 가이드 > Project Wizard에서 Easy UI 모드 활성화하기 - 새로운 프로젝트를 만들 때 Easy UI 모드를 사용하면 필요한 옵션을 활성화하고 기본 샘플을 제공합니다. 개발 도구 가이드 > ViewSet 템플릿 등록하고 사용하기 - View 컴포넌트를 포함하는 ViewSet 템플릿을 만들고 사용하는 방법을 설명합니다.
넥사크로 17.1 EasyUI 개발 교육 동영상 링크입니다.
EasyUI 개요 & 개발방법 소개 https://youtu.be/9rlSmdfX3Go
조회화면 만들기 https://youtu.be/C-m6sQ9WWRY
Master Detail 화면 만들기 https://youtu.be/BV-guERoN5k
NRE 원격 디버깅 (17.1.2.100)
NRE 실행 시 크롬, Edge 브라우저의 Devices inspect 기능을 사용해 실행 중인 앱 디버깅을 할 수 있습니다. 윈도우, macOS, Android 운영체제를 지원합니다.
앱 배포 가이드 > NRE 원격 디버깅
DataObject 오브젝트 (17.1.2.100)
JSON이나 다양한 형식의 데이터를 다룰 수 있도록 DataObject 오브젝트를 추가했습니다. REST API 통신을 지원하며 DataSet 오브젝트와 바인딩을 통해 받아온 데이터를 Grid 컴포넌트 등에 바로 표시할 수 있습니다.
아래 링크에서 간단한 예제를 통해 동작 방식을 살펴볼 수 있습니다.
컴포넌트 활용 워크북 > DataObject - DataObject 오브젝트를 활용한 예제를 살펴봅니다. 예제를 통해 기본 기능을 설명합니다. 개발 도구 가이드 > DataObject Editor - DataObject Editor 기본 기능을 설명합니다.
NRE 폰트 엔진 변경 (17.1.2.100)
외곽선 방식의 글꼴(벡타 글꼴)이 좀 더 자연스럽게 표시되도록 폰트 엔진이 변경됐습니다. 폰트 엔진 변경으로 아래와 같은 변경이 발생할 수 있습니다.
width
폰트에 따라 자간이 달라질 수 있으며 입력한 텍스트 너비가 변경될 수 있습니다.
wordwrap 속성을 설정한 경우 줄바꿈이 처리되는 위치가 변경될 수 있습니다.
valign
폰트에 따라 텍스트의 높이를 처리하는 기준이 달라질 수 있으며 valign 적용 위치가 변경될 수 있습니다.
WebView 컴포넌트 (17.1.3.100)
윈도우 운영체제 NRE에서 WebBrowser 컴포넌트는 InternetExplorer WebBrowser Control 기반으로 동작합니다. 때문에 IE 지원을 중단한 콘텐츠(유튜브 등)를 표시하는데 제약이 발생할 수 있습니다. 이런 제약을 해소하고자 윈도우 운영체제 NRE에서 WebView 컴포넌트는 Microsoft Edge WebView2 Control 기반으로 동작하도록 구현했습니다.
컴포넌트 기반이 되는 컨트롤 변경으로 지원하는 기능 일부는 WebBrowser 컴포넌트와 다릅니다.
지원하지 않는 메소드 (setProperty, getProperty, callMethod)
새로 추가한 메소드 (goBack, goForward, callScript)
웹페이지에서 onusernotify 이벤트를 발생시키는 코드도 실행 환경에 따라 다르게 처리했었는데 WebView 컴포넌트는 하나의 코드로 동작하게 기능을 개선했습니다.
if(nexacro) nexacro.fireUserNotify("sendToNexacro TEST");
개발 도구 변경 기능
Form 템플릿
자주 사용하는 폼을 템플릿으로 등록하고 사용할 수 있습니다.
개발 도구 가이드 > 폼 템플릿 등록하고 사용하기
Component 프리셋
자주 사용하는 컴포넌트는 프리셋 형태로 등록하고 사용할 수 있습니다.
개발 도구 가이드 > 컴포넌트 프리셋 등록하고 사용하기
LiteDB 에디터
LiteDBConnection, LiteDBStatement 오브젝트를 사용 시 데이터베이스 정보를 조회하고 쿼리를 작성하는 에디터 기능을 사용할 수 있습니다.
개발 도구 가이드 > LiteDB 데이터베이스 파일 정보 조회 및 쿼리 편집기
Form, 이미지 미리보기
Form이나 이미지를 열어보지 않고 어떤 형태인지 미리 확인할 수 있는 미리보기 기능을 사용할 수 있습니다.
개발 도구 가이드 > Form, 이미지 미리보기
서브 폴더 관리
TypeDefinition에서 서브 폴더를 설정할 수 있는 서비스의 유형이 확대됐습니다. Form이나 이미지 파일을 폴더 단위로 관리할 수 있습니다.
개발 도구 가이드 > 서비스 정보 편집
웹 서버 URL 설정
로컬 웹 서버 외 톰캣 같은 웹 서버 URL을 설정할 수 있습니다.
개발 도구 가이드 > 옵션 설정 (Launch)
MetaInfo 에디터
MetaInfo 편집 기능이 좀 더 직관적이고 간결해졌습니다.
넥사크로 모듈 디벨로퍼 가이드 (베타)
부트스트랩 템플릿 관리 기능 (17.1.2.100)
프로젝트 generate 시 생성되는 부트스트랩 파일 중 HTML 파일의 일부 내용을 템플릿 형태로 수정하고 반영할 수 있습니다. 외부 스크립트 코드를 추가할 수 있으며 URL 파라미터로 넘어오는 값을 받아서 처리하도록 수정할 수 있습니다.
개발 도구 가이드 > 부트스트랩 템플릿 관리하기
BuildApp 사용성 개선 (17.1.2.100)
BuildApp 실행 시 필수 항목만 선택하고 바로 앱을 생성할 수 있도록 사용성을 개선했습니다. 자주 사용하지 않는 옵션 항목은 필요한 경우 옵션 항목을 펼쳐서 선택할 수 있습니다.
개발 도구 가이드 > 사용자에게 배포할 설치 파일(또는 웹 문서) 만들기
iOS, Android, macOS 앱 빌드 시 사용하는 AppBuilder 콘솔 화면의 사용성도 같이 개선했습니다. 전체적인 UI를 개선했으며 관리자가 개발자가 좀 더 직관적으로 사용할 수 있도록 기능을 보완했습니다.
서버 설정/개발 가이드 > App Builder 앱 배포 가이드 > App Builder (Android, iOS, macOS)
External Application (17.1.3.100)
넥사크로 스튜디오 내에서 열려있는 프로젝트 정보를 확인할 수 있는 External Application 기능을 추가했습니다. 템플릿으로 제공되는 프로젝트를 활용하거나 새로 External Application 을 만들어 사용할 수 있습니다.
개발 도구 가이드 > External Application Project 템플릿 개발 도구 가이드 > External Application 개발하기 개발 도구 가이드 > Options > Environment > External Tools
Generate Event (17.1.3.100)
Generate 동작 전 또는 후에 실행 명령을 추가해 코드를 검사하는 등의 기능을 구현할 수 있습니다. 실행 결과는 Output 창에 표시됩니다.
개발 도구 가이드 > Options > Project > Generate > Event
실행 환경에 따른 배포 파일 목록 최적화 (17.1.3.100)
각 배포 파일 목록에 scriptsfilter 속성을 추가하고 실행 환경에 따라 필요한 파일만 배포할 수 있도록 기능을 수정했습니다. 예를 들어 WebBrowser 실행 환경이라면 Element_Runtime.js 파일처럼 NRE에서만 사용하는 파일은 제외하고 배포합니다.
운영하고 있는 프로젝트에 라이브러리 파일을 그대로 업데이트하는 경우에는 오류가 발생할 수 있습니다. Deploy 메뉴를 사용해 배포 파일을 생성하고 생성된 파일을 배포하는 것을 권장합니다.
모듈 배포 시에도 scriptsfilter 속성을 적용할 수 있습니다.
넥사크로 모듈 디벨로퍼 가이드 > 모듈 설치 파일 만들기