넥사크로 개요
넥사크로는 하나의 소스로 웹과 모바일, 데스크톱 앱을 디자인, 개발, 배포할 수 있는 소프트웨어 개발 플랫폼입니다. 기업 내에서 업무에 따라 웹브라우저에서 바로 접근할 수 있도록 운영하다가 윈도우 운영체제 환경에서 특정 장비와 연동해야 할 때에는 해당 어댑터 기능만 추가해서 윈도우 앱 형태로 구현하고 배포할 수 있습니다. 개발부터 배포까지 하나의 도구를 사용해 다양한 사용자의 실행 환경과 요구에 대응할 수 있습니다.
넥사크로 주요 구성 요소
개발 도구(IDE): 넥사크로 스튜디오는 직관적인 편집 기능을 제공해 초급 개발자도 쉽게 다룰 수 있게 구성된 개발 도구입니다. 화면 디자인, 개발, 디버깅, 배포까지 하나의 프로세스로 진행할 수 있습니다.
프레임워크(Framework): 유니파이드제이에스(Unified.js)는 모든 실행환경에서 공통으로 사용할 수 있는 자바스크립트 프레임워크입니다. 개발자는 운영체제 특성을 따로 처리하지 않고 하나의 코드로 개발할 수 있습니다.
실행환경(Runtime Environment): 모바일 앱, 데스크톱 앱에서는 오픈소스 기반으로 자체 개발한 렌더 엔진과 스크립트 엔진으로 구성된 넥사크로 실행환경(NRE, nexacro runtime environment)을 사용합니다. 최적화된 실행환경을 제공해 대용량 데이터를 다루거나 복잡한 화면 구성 시 웹브라우저보다 빠르게 처리합니다. 또한, 운영체제에서 지원하는 다양한 API와 장비를 연동할 수 있습니다.
웹 기술은 표준화되고 기존 플러그인 기술을 대체할 수준으로 진화하고 있습니다. 과거에 플러그인을 사용해서 구현했던 기술은 웹에서 대부분 지원할 수 있습니다. 하지만, 4차 산업혁명 시대에 들어서면서 웹 기술과 시장의 요구와의 격차가 생기기 시작했습니다. 4차 산업혁명의 빠른 발전 속도를 웹 기술이 따라가지 못하고 있습니다. 그 때문에 웹은 디바이스에서 수집된 정보를 활용하거나 다양한 형태의 IoT 기기와 연결하고 기능을 확장하고 융합해서 기존의 서비스와 연결하기 위해서는 여러 제약이 존재하고 있습니다. 하이브리드 앱이라는 콘셉트는 이런 웹의 제약을 벗어나기 위한 고민에서 시작됐지만, 여전히 다양한 운영체제에 대해 대응을 하기 쉽지 않습니다. 기업에서 사용자가 원하는 모든 환경에 맞는 시스템을 제공하기 위해서는 각 환경에 특화된 개발 인력과 개발 도구가 필요합니다.
넥사크로는 독자 개발한 실행환경을 사용합니다. 최적의 실행 속도를 확보할 수 있으며 실행 환경에 따른 차이를 개발자가 고민하지 않고 개발 플랫폼 자체적으로 대응할 수 있습니다. 또한, 다른 프로그래밍 언어를 따로 배우지 않고 자바스크립트만 사용해서 화면을 구성하고 디바이스 API를 제어하고 비즈니스 로직을 개발할 수 있습니다. 넥사크로에서 제공하지 않는 특정 데이터 형식이나 장비, IoT 기기 연동은 서드파티를 통해 모듈 또는 어댑터 형태로 개발할 수 있으며 프로젝트에서 모듈을 설치하는 간단한 동작만으로 기능을 확장할 수 있습니다.
넥사크로는 화면 처리를 위해 별도 서버를 필요로 하지 않습니다. 개발 도구에서 생성한 파일을 기존 웹 서버에 올려주는 것만으로 웹과 모바일 앱, 데스크톱 앱을 모두 운영할 수 있습니다. 백엔드 시스템 데이터 통신을 지원하거나 푸쉬 메시지를 사용하기 위해 서버에 관련 라이브러리를 추가하는 방식을 선택할 수 있으며 기존에 구성된 서버 프레임워크를 사용할 수 있습니다.
프로그래밍 언어
넥사크로는 다른 프로그래밍 언어와 달리 사용자에게 보이는 화면을 정의하는 부분과 비즈니스 로직을 처리하는 스크립트로 구분됩니다. 또한, 화면에 원하는 디자인을 적용하기 위해 스타일과 테마를 적용할 수 있는 기능을 제공합니다.
화면을 배치하는 부분은 XML 기반으로 각 컴포넌트의 속성과 바인딩, 이벤트 등의 정보를 관리합니다. 다양한 실행 환경을 지원할 수 있도록 MLM(Multi Layout Manager) 기능을 지원하며 관련된 속성을 사용할 수 있습니다. 앱 실행에 필요한 환경 정보는 별도의 파일에서 관리합니다.
아래는 넥사크로에서 앱 개발 시 기본적으로 생성되는 파일에 대한 설명입니다.
구분 | 파일명(확장자) | 용도 |
---|---|---|
프로젝트 | *.xprj | • 프로젝트 정보 • Environment 파일 경로 • TypeDefinition 파일 경로 • AppVariables 파일 경로 • Application Information 파일 경로 |
Environment | environment.xml | • 실행 환경 정보 • themeid • Screen 정보 (Screen 정보 설정 시 실행 환경 정보에서 설정한 값을 덮어쓸 수 있습니다). • variables • cookies |
TypeDefinition | typedefinition.xml | • 모듈 • 컴포넌트 • 서비스 • 프로토콜 • 업데이트 |
InitValue | *.xiv | • 컴포넌트 또는 오브젝트 속성 초기값 설정 |
Application Information | *.xadl | • Application 정보 • screenid • 프레임 속성 |
AppVariables | appvariables.xml | • Application 내에서 공유하는 공통 변수 |
Form | *.xfdl | • 화면 레이아웃 • 화면 폼 속성 • 컴포넌트 속성 • 추가 레이아웃 • 스크립트 |
InitValue 파일은 넥사크로 스튜디오에서 새로운 Initvalue 추가 시 생성됩니다.
기본 테마는 프로젝트 내 따로 생성하지 않고 사용자가 새로운 테마를 추가할 경우에만 프로젝트 내 테마 폴더에 파일을 생성합니다.
넥사크로 스튜디오에서 작성한 코드는 빌드 과정을 거쳐 자바스크립트 기반의 코드로 변환됩니다. 실제 실행 환경에서는 변환된 자바스크립트 코드를 실행하게 됩니다.
개발 환경
넥사크로는 위지윅(WYSIWYG) 기반의 개발 툴인 넥사크로 스튜디오를 제공합니다. 넥사크로 스튜디오 내에서 실행 환경과 상관없이 앱을 개발할 수 있으며 생성된 코드는 넥사크로 프로그래밍 언어로 저장됩니다.
넥사크로 스튜디오는 마이크로소프트 윈도우 운영체제만을 지원하지만 개발된 앱은 어떤 운영체제나 어떤 디바이스든 상관없이 최적화된 사용 환경으로 배포할 수 있습니다.
앱 빌더를 사용하면 iOS/iPadOS, macOS, 안드로이드 운영체제를 지원하는 앱을 간단한 설정만으로 생성하고 배포할 수 있습니다.
앱 빌더를 사용하지 않고 각 운영체제 환경에서 앱을 만들고 배포할 수도 있습니다.
배포 환경에 따라 넥사크로 스튜디오 외 다른 개발 툴에서 추가적인 작업을 필요로 할 수 있으며 별도의 인증을 받아야 할 수 있습니다. 예를 들어 iOS/iPadOS 운영체제를 지원하는 앱을 개발하는 경우에는 배포 시 XCode 환경이 필요하며 안드로이드 운영체제를 지원하는 앱을 개발하는 경우에는 배포 시 이클립스 환경이 필요합니다.
실행 환경
넥사크로는 넥사크로 프레임워크를 기본으로 앱이 실행되며 각 실행 환경에 따라 최적화된 구조를 제공합니다.
앱 실행 환경에 따라 데스크탑, 모바일 환경으로 나누고 앱 실행 방식에 따라 NRE(Nexacro Runtime Environment), WRE(Web Runtime Environment)으로 구분합니다. 앱 실행 방식에 따라 추가된 기능을 사용할 수 있습니다. 예를 들어 안드로이드와 iOS/iPadOS 운영체제의 NRE 버전은 카메라, 주소록, SMS 등 모바일 디바이스와 연동된 추가 기능을 사용할 수 있습니다.
넥사크로가 실행되는 환경은 아래 표와 같이 정리할 수 있습니다.
넥사크로 | |||
---|---|---|---|
데스크탑 | |||
WRE | 다양한 운영체제에서 동작하는 웹브라우저 지원 - IE10, IE11, Edge, Chrome, Safari, Firefox, Opera | ||
NRE | 앱이 제품에 포함된 실행 환경에서 동작 웹브라우저에서 구현할 수 없는 추가 기능 제공 - 윈도우 NRE 버전, macOS NRE 버전 | ||
모바일 | |||
WRE | 다양한 디바이스에서 동작하는 기본 모바일 브라우저 지원 - 안드로이드, iOS/iPadOS | ||
NRE | 앱별로 개별 실행 환경에서 동작 Device API 사용할 수 있음 - 안드로이드 NRE 버전, iOS/iPadOS NRE 버전, 윈도우 NRE 버전 (태블릿) |
배포 환경
배포란 앱이 실행하는 데 필요한 자원을 클라어언트에 설치하는 일련의 작업을 의미합니다. 사용 환경에 따라 넥사크로에서 개발된 앱과 필요한 모듈을 내려받아 클라이언트에 설치하게 됩니다.
넥사크로 앱은 사용자가 사용하는 클라이언트에서 동작합니다. 하지만 데이터 처리와 같은 작업을 위해 WAS(Web Application Server)를 필요로 할 수 있습니다. 넥사크로는 데이터 처리를 위한 X-API 모듈을 함께 제공하고 있습니다. 또한, 필요에 따라 데이터를 실시간으로 처리해야 한다면 X-PUSH와 같은 추가적인 기술을 사용할 수 있습니다.
기본 배포 작업은 HTTP 프로토콜을 사용합니다. 하지만 인터넷 접속을 지원하지 않는 환경에서는 앱 실행에 필요한 자원을 별도 매체로 배포해 사용할 수 있습니다.
X-PUSH 버전에 따라 지원환경이 달라질 수 있습니다.
웹 환경은 X-PUSH 2.6.X 이상 버전에서 지원합니다.
모바일 NRE 환경은 X-PUSH 2.5.X 이상 버전에서 지원합니다.
테마 파일은 기본 제공되는 테마를 사용할 경우에는 넥사크로 스튜디오에서 따로 만들지 않고 기본 테마를 변환하는 작업만 거칩니다.