최근 IT 환경에 큰 변화가 생기고 있다. 현재 대세인 웹 환경을 넘어 융/복합환경에 대한 이야기들이 많이 들리고 있다. 4차 산업혁명의 중심이 되는 인공지능, 사물인터넷, 모바일, 빅데이터가 바로 융/복합 환경을 이루는 기술들이다. 기존 컴퓨터/인터넷을 통해 연결된 사회가 융/복합 환경을 만나 초연결 사회로 변화하고 있으며 흐름에 맞춰 우리 또한 변화해야 한다.
웹은 기존 시장의 요구(기존 환경의 웹 전환, 모바일 확장)를 해소할 수 있는 기술들을 지원했고 지원하기 위해 변화하고 있다. 하지만 최근 변화하는 발전 속도에 격차가 발생하고 있으며 이를 해소하기 위한 기술이 필요한 상황이다.
예를 들어 냉장고의 온도를 웹 화면에서 확인한다고 생각해보자. 센서를 통해 온도를 측정하고 해당 정보를 웹 화면에 출력한다. 이 내용엔 중간 과정이 하나 빠져있다. 측정된 정보를 화면에 전달하는 방법이 그것이다. 현재는 장비에서 웹 화면에 직접 정보를 전달할 수 있는 방법이 없다. 중간에 서버를 구성해 장비에서 서버로 서버에서 웹 화면으로 데이터를 주고받는 작업이 필요하며 그만큼의 손실(출력 딜레이, 데이터 유실 등)이 예상된다.
외부와 연결이 중요시되는 요즘 환경에서 웹은 아직 걸음마 단계인 상황이다. 이를 해소하기 위한 방법으로 하이브리드 앱 기술이 각광받기 시작했지만 다양한 실행환경을 대응하기 어렵다는 문제를 가지고 있다. 사용자가 원하는 모든 환경에 맞는 시스템을 제공하기 위해서는 각 환경에 맞는 개발 환경과 인력이 필요하다. 지원하는 환경이 많을수록 관리가 부담될 수밖에 없다.
넥사크로 플랫폼은 이 모든 이슈를 해소할 수 있는 제품이다. 웹과 앱 환경을 모두 지원하고 통합 개발도구와 자바스크립트 프레임워크를 통한 단일화된 개발 방식을 제공하며 외부와의 연결을 위한 확장 기능을 제공한다. 크게 3가지 통합 개발도구, 자바스크립트 프레임워크, 다양한 실행환경 지원으로 이야기할 수 있으며 정리해 보면 다음과 같다.
통합개발도구
넥사크로 스튜디오(통합개발도구)는 개발자 및 디자이너가 쉽게 화면을 개발할 수 있도록 구성된 4GL 개발도구다. 화면 개발의 경우 위지위그(What You See Is What You Get) 형식으로 되어있어 내가 작업하고 있는 화면의 결과를 개발도구에서 그대로 보며 작업할 수 있어 직관적이다. 또한 단순 개발을 보조하기 위한 도구부터 프로젝트 배포 단계에서 활용할 수 있는 도구들까지 프로젝트 진행에 필요한 다양한 편의 기능을 제공한다. 그중 많이 활용되는 도구를 정리하면 다음과 같다.
Project Explorer | 작업 중인 프로젝트의 구성요소를 확인 |
Resource Explorer | 작업 중인 프로젝트의 리소스(이미지, 테마 CSS등)을 확인 |
Properties | 폼, 컴포넌트, Dataset 등의 속성 및 이벤트 속성 표시 및 편집 |
Toolbars | 메뉴, 컴포넌트, 정렬, 빌드, 디버깅 등 자주 사용되는 단축 아이콘 모음 |
Debug | 작업 중인 프로젝트의 문제점을 찾기 위한 디버깅 도구 |
XCSS Editor | XCSS 파일을 편집 및 미리보기 할 수 있는 에디터 도구 |
Deploy | 프로젝트 소스를 압축(Compress) 및 난독화(Shrink) 처리하는 도구 |
Packing | 실행 환경에 맞는 아카이브 파일을 만드는 도구 |
BuildApp | Packing에서 생성된 파일을 압축하여 설치파일을 만드는 도구 |
앞에서 잠깐 언급했던 것처럼 다양한 실행환경을 제공하기 위해서는 각 환경에 맞는 개발도구를 사용해야 한다. 모바일 같은 경우는 다시 2가지 종류(iOS, Android)로 나눠진다. 넥사크로 스튜디오의 경우 Packing, BuildApp 도구를 통해 하나의 개발도구에서 실행환경에 맞는 결과물을 만들 수 있도록 제공하고 있다. 웹(기본) 뿐 아니라 윈도우 앱, 맥 OS 앱, 모바일앱(iOS, Android)를 빌드 할 수 있으며 수정사항이 발생 시 업데이트 처리에 대한 기능도 포함하고 있다.
자바스크립트 프레임워크
넥사크로플랫폼의 유니파이드제이에스(Unified.js)는 웹 환경과 앱 환경에서 공통으로 사용할 수 있는 자바스크립트 프레임워크다. 추상화된 객체 구조로 하위에 위치한 엔진(렌더 엔진, 스크립트 엔진) 기반에 맞춰 실행되는 구조로 되어있다. 웹 환경의 경우 브라우저에서 제공하는 렌더 엔진과 스크립트 엔진을 사용하며 그 외의 경우 오픈소스 기반으로 자체 개발된 렌더 엔진(이후 자체 렌더 엔진)과 V8 스크립트 엔진을 사용한다. 그렇기 때문에 개발자는 운영체제 별 특성을 따로 처리하지 않고 자바스크립트 코드 하나로 개발을 진행할 수 있다. 또한 모바일 / 데스크톱 앱의 경우 자체 렌더 엔진과 V8 스크립트 엔진을 사용하므로 웹 브라우저 환경 대비 높은 성능과 브라우저 파편화 이슈를 해소할 수 있다.
그리고 유니파이드제이에스는 유연한 스크립트 구조로 기능 확장이 용이하다. 예를 들어 특정 데이터 형식에 맞는 통신 모듈 또는 어댑터가 필요하거나 프로젝트 특성에 맞는 추가적인 컴포넌트가 필요할 경우 제공되는 API를 통해 추가 구현이 가능하며 모듈 형태로 개발하여 프로젝트에 확장할 수 있다. 컴포넌트 개발의 경우 개발의 편의를 위한 별도의 개발도구 또한 제공한다.
다양한 실행환경
넥사크로플랫폼은 다양한 실행환경을 지원한다. 웹 환경과 앱 환경을 지원하며 여기서 이야기하는 앱은 모바일앱(iOS, Android), 데스크톱 앱(WindowOS, MacOS)를 말한다. 단순히 웹과 모바일 환경 지원하는 것이 아니라 현재 활성화되어있는 사용자 실행환경을 지원하고 있다. 네이티브 방식으로 웹 환경 대비 빠른 성능과 다양한 외부 환경 연결을 지원하고 있다. 서두에 이야기한 것처럼 현재는 다양한 환경과의 연결 및 확장이 중요하며 넥사크로플랫폼은 이를 가능하게 한다. 단순히 다양한 환경 지원을 넘어 외부 기기와의 연결 및 확장이 가능하다는 이야기다. 기본으로 디바이스 정보 연결을 위한 API들을 제공하고 있으며 연동에 필요한 API를 개발하고 추가할 수 있는 기능을 제공하고 있다. 예를 들어 IoT 기기(센서, 모듈)나 외부 장비(바코드 리더, 프린터 등)와의 연동이 필요할 경우 넥사크로플랫폼에서 제공하는 API를 활용하여 어댑터를 개발 후 네이티브 앱 영역에 추가할 수 있다.
추가적인 실행환경으로 임베디드 리눅스 환경을 지원한다. 4차 산업혁명에서 각광받고 있는 기술 중 하나인 사물인터넷의 실행환경으로 임베디드 리눅스를 많이 사용한다. 그렇기 때문에 해당 실행환경의 지원은 중요한 역할을 하며 넥사크로플랫폼은 이를 지원한다. 사물인터넷에서 사용되는 임베디드 리눅스의 경우 대부분 커스터마이징된 OS를 사용하며 해당 장비에 맞춰 넥사크로 플랫폼을 포팅 하는 방식으로 지원하고 있다. (커스터마이징된 OS에 맞춰 넥사크로플랫폼 수정 필요)
넥사크로플랫폼은 단순히 웹을 지원하는 제품이 아니다. 웹이 가진 장점을 취하고 그 너머에 있는 다양한 가능성에 대한 준비를 하고 있다. 통합개발도구를 통해 쉽고 빠른 개발을 진행할 수 있으며 다수의 사용자 환경 지원이 필요할 경우에도 개발 언어의 고민 없이 하나의 단일화된 스크립트를 사용할 수 있다. 더 나아가 초연결 사회로 변화하고 있는 시대 흐름에 맞춰 다양한 방식의 확장성 또한 보유하고 있으므로 미래의 IT 환경을 고민해야 하는 우리에게 최적의 개발 플랫폼이라 하겠다.
'Insight' 카테고리의 다른 글
엑스플랫폼 vs 넥사크로플랫폼 (0) | 2019.11.20 |
---|---|
자바스크립트 프레임워크 vs 넥사크로플랫폼 (0) | 2019.11.20 |
웹에서 프레임워크가 필요한 이유 (0) | 2019.11.20 |
웹 환경에서의 넥사크로플랫폼 (0) | 2019.11.20 |