아래 정리된 문서는 투비소프트의 PreSales팀에서 자주 접하게는 질응답을 간략히 정리한 내용입니다. 아래 내용은 답변 시점과 현재 버전의 기능추가 및 변경 등으로 차이가 발생할 수 있습니다.
nexacro platform의 기반기술은 어떤것 인가요?
nexacro platform은 javascript framework 기반으로 사용자 환경에 별도 설치 없이 구동 가능한 형태로 구성되어 있습니다.
nexacro platform은 javascript framework 기반으로 HTML/CSS/JavaScript 파편화를 최소화할수 있는 구조로 구성되어있습니다.
nexacro platform은 브라우저에서 어떻게 구동되나요?
상용브라우저
nexacro platform은 javascript framework 기반으로 별도의 설치 과정없이 상용 웹브라우저에서 URL을 통해 접속 합니다.
전용브라우저
nexacro browser를 사용자 PC에 최초 1회 설치하여 설치된 nexacro browser를 통해 접속하여 사용합니다.
nexacro browser의 경우 exe파일 형태로 제공되며 IE(ActiveX 사용가능 브라우저)의 경우 자동 배포 기능을 제공하며, 이외의 브라우저(Chrome, Safari, Firefox 등)의 경우 별도의 설치파일(InnoSetup)을 구성하여 배포합니다.
HTML5 코드가 그대로 생성되는데, 그 코드를 수정하여 사용할 수 있나요?
nexacro platform 내부 코드 자체는 HTML/CSS/JavaScript 포멧으로 이루어져 있으나 직접 수정을 권장하지 않습니다.
소스 수정을 권장하지 않는 이유
각각의 브라우저에서 발생하는 HTML/CSS/JavaScript 파편화를 최소화 하기 위해 JavaScript Framework 구조로 되어있습니다.
1차적인 스크립트 보안을 위해 소스난독화 기능을 제공하고 있으며 그에 따라 스크립트 수정이 어렵습니다.
HTML5 코드를 직접 작성하실 경우 해당 코드를 지원하지 않는 브라우저에서 실행시킬 경우 오동작의 원인이 될수 있어 권장하지 않습니다.
대안) HTML5 코드를 작성하실 경우 별도의 웹페이지로 구성 후 nexacro 에서 제공하는 webbrowser 컴포넌트를 활용를 통해 연동하여 사용하는 것을 권장합니다.(Chart, Report, 지도 Api, jQuery 등)
웹에서 사용하는 CSS를 그대로 적용할 수 있나요?
nexacro의 css 방식은 컴포넌트별 클래스를 정의하는 구조이며, html에서 사용하는 css와 다르기 때문에 그대로 사용할 수 없습니다.
이유1. nexacro platform의 경우 웹에서 제공하는 Tag방식이 아닌 Tag들의 집합으로 이루어진 컴포넌트 형태를 띄고 있으며 그 형태에 맞는 CSS 구조를 가지고 있습니다.
ex) 일반 웹에서 그리드 형태의 화면을 구성할 경우 각각의 Tag별로 별도의 CSS를 정의하고 관리해야 하며 수정사항이 발생할 경우 각각의 Tag별 수정 및 Tag간의 관계를 생각하여 적용해야 하는 어려움이 있습니다. nexacro platform의 경우는 그리드 컴포넌트 하나의 CSS로 구성되어 있으며 정의 및 관리가 용이한 구조로 이루어져 있습니다.
모바일은 웹구동만 가능한가요?
모바일은 웹과 앱 두가지 방식 모두 제공합니다. 툴에서 앱 생성 기능을 제공합니다.
웹으로 구동
nexacro platform은 HTML기반으로 구성되어 있어 모바일 웹브라우저에서 URL을 통해 접속합니다.
하이브리드 앱 구동
nexacro platform으로 구현된 화면을 하이브리드 앱 방식(WebPage + WebView)으로 구성 할수 있는 기능을 제공 합니다.
안드로이드의 경우 WebView 파편화에 따른 제약 및 성능 저하를 개선하기 위해 자체 개발한 WebView(nexacro view)를 제공하고 있습니다.
PC와 모바일을 동시에 사용할 수 있는 방법이 있나요?
nexacro platform는 PC와 모바일 동시에 구축 가능하며 MLM(Multi Layout Manager), Step, 리사이징 기능을 통해서 모바일과 PC를 동시에 처리 가능합니다.
두가지를 한소스로 구축 할 경우 프로젝트 시작 전 설계가 중요합니다.
PC와 모바일을 동시에 사용할 수 있는 방법이 있나요?
nexacro platform의 경우 HTML 기반으로 되어있어 PC 또는 모바일 화면을 구현할 수 있습니다. 그리고 모바일 화면의 경우 다양한 해상도 처리(가로/세로, Device별 해상도 차이)를 위해 리사이즈, MLM(Multi Layout Manager), Step, AutoZoom기능을 제공합니다.
PC와 모바일을 동일한 화면으로 구성하고자 할 경우 그에 맞는 설계가 필요하며 사전 검토가 필요합니다.
PC/모바일을 동시에 지원할 경우 검토 사항
1. PC의 조작방식(키보드/마우스)과 모바일의 조작방식(터치)에 대한 처리 방안 필요 -> 오른쪽 버튼 클릭, 단축키 -> 터치 가능한 크기의 컴포넌트 사이즈 구성 2. 모바일 성능을 고려한 설계 필요 -> 3G/LTE 네트웍 성능을 고려한 화면 및 데이터 설계 -> 모바일 CPU, Memory 등 하드웨어 환경을 고려한 설계(Memory점유율이 높을 경우 앱 강제 종료 현상 발생)
해상도가 다를 경우 어떻게 처리할 수 있나요?
기본적으로 컴포넌트 단위의 리사이즈 기능을 제공합니다.(px, %) 그리고 모바일 기기와 같은 다양한 해상도(가로/세로, Device별 해상도 차이)처리를 위해 MLM(Multi Layout Manager), Step, AutoZoom 기능을 제공합니다.
반응형웹을 사용할 수 있나요?
해상도 사이즈 정보를 가지고 각 해상도에 맞는 화면을 자동으로 가져오는 MLM(Multi Layout Manager)을 통한 방식의 기능을 제공합니다.
최근 다양한 해상도 처리를 위해 반응형웹 방식에 대한 많이 이야기 되고 있습니다. 하지만 반응형 웹 해상도 처리 방식에 따른 장단점이 존재하며 nexacro platform에서는 반응형 웹의 장점을 취하고 단점을 보완하는 방식의 기능들을 제공하고 있습니다.
반응형 웹의 단점
CSS3 기능으로 브라우저별 차이 발생 - >nexacro는 브라우저별 차이 발생 X CSS스크립트를 메모장과 같은 별도의 Editor로 편집 -> nexacro는 전용 Editor 제공(미리보기, Property Editor 등 제공) 테스트를 위해 Editor와 웹브라우저를 번갈아 가며 작업해야 함. -> nexacro내에서 미리보기로 확인 가능 및 웹브라우저로 실행 기능 제공
오픈소스 라이브러리(js)를 사용할 수 있나요?
오픈소스 라이브러리에서 제공하는 기능에 따라 연동 방식에 차이가 발생하며 그에 따른 검토가 필요합니다.
오픈소스 라이브러리를 활용한 웹페이지를 구성 후 nexacro platform에서 제공하는 webbrowser 컴포넌트와 연결하여 사용 하는 방법을 제공합니다.
그 외에 단순한 형태의 JavaScript 라이브러리의 경우 바로 연결하여 사용하는 것도 가능합니다.
Json통신은 어떻게 하나요?
기존 JSON방식을 그대로 사용하기 위해서는 XML로 변경해주는 서버 작업이 필요합니다. 단, JSON방식보다 nexacro에서 제공하는 CVS, SSV 방식이 더 효과적입니다.
nexacro platform은 데이터를 효과적으로 관리 및 가공 하기위하여 2차원 데이터 형태의 데이터셋 구조를 사용합니다. 그리고 통신구간상의 효율성(네트워크 단의 데이터 패킷 최소화)를 위해 XML, CSV, SSV타입의 데이터로 통신합니다.
JSON방식의 데이터의 경우 다차원 데이터 형태로 되어있어 nexacro platform의 데이터 셋 구조를 사용하기 위해서는 데이터 제가공이 필요합니다. 그리고 통신구간상의 효율성을 위해(JSON방식의 경우 각 노드별 태그로 인해 데이터 효율 낮음) 서버상에서 제가공하여 받는 방식을 권장 합니다.
전문통신은 어떻게 하나요?
3tier 방식이므로 중간의 어뎁터를 연동하여 전문형태의 데이터를 nexacro에 맞는 데이터형태(dataset)으로 변경해서 사용가능합니다. (웹에서 전문을 받을 수 있는 webT로 받아서 맞는 형태로 구성합니다. / 화면 <> JSP <> WebT)
nexacro platform의 경우 3tier구조(client<->application server <-> DB server) 로 되어있으며 application server단에서 전문 데이터를 nexacro platfrom에 맞는 데이터 형태로 변경하여 처리합니다. (WebT, TP-Monitor 등을 이용하여 처리)
2tier 방식도 사용할 수 있나요?
웹에서는 TCP/IP 통신이 불가능하며, 런타임에서는 별도의 어댑터를 만들어 사용가능 합니다.
nexacro platform은 기본적으로 3tier구조로 되어있으며 2tier방식으로 통신이 필요할 경우 별도의 연동 어뎁터를 구현하여 처리하며 해당 방식Runtime버전에서만 구성 가능합니다.
HTML5 미지원 브라우저에 대한 이슈 해결방법이 있나요?
IE8 브라우저의 경우 엔진에서 자체적으로 분기처리하여 사용이 가능합니다. (단, 성능적 저하가 발생할 수 있음)
또한 Runtime(전용브라우저)를 통하여 해결할 수 있습니다.
device API사용은 어떻게 하나요?
카메라, 주소록, 문자메세지등 기본 Device API를 제공하고 있으며 추가적인 API연동(바코드리더, 카드리더 등)의 경우 별도의 API를 구현하여 사용할 수 있습니다.
외부기기 연동은 어떻게 이루어 지나요?
해당장비에서 제공하는 연동모듈을 이용하여 처리 가능합니다. 각 장비업체 마다 제공하는 방식이 다르기 때문에 사전에 연동가능여부에 대한 검토가 필요합니다. 1). HTML5 - ActiveX, HTML기반 연동 가능 2). Runtime - DLL, ActiveX, HTML기반 연동가능(DLL의 경우 Wrapping작업이 필요함.)
차트 및 레포트, 웹에디터들은 기본적으로 제공되나요?
기본 컴포넌트는 아닙니다. 차트는 라이브러리 형태로 제공할 수 있으며, 기타 레포트나 웹에디터등은 오픈소스나 상용 프로그램 연동이 필요합니다.
멀티파일 업/다운로드 사용이 가능한가요?
File Upload/Download 컴포넌트를 제공하고 있으며 해당컴포넌트를 이용하여 멀티파일 업/다운로드기능을 구현할 수 있습니다.
제공되는 컴포넌트는 기본적인 파일 업로드/다운로드 기능 수준으로 제공되며 다양한 기능이 필요하실 경우 3rd Party 컴포넌트를 연동하여 사용하실 수 있습니다.
엑셀 업로드 다운로드는 어떻게 하나요?
서버통신을 통한 엑셀 Import/Export 방식을 제공합니다. (엑셀 모듈 제공)
HTML버전
엑셀 업로드/다운로드 기능의 경우 Server Side 처리방식으로 되어있으며 POI모듈을 이용한 엑셀 처리 기능을 제공합니다.
Runtime버전
HTML버전과 동일한 기능을 제공하고 있으며 추가적으로 Client Side 처리방식 또한 제공하고 있습니다. (ExtCommon API방식으로 제공) Client Side 방식의 경우 사용자 PC에 엑셀이 설치되어있어야 가능합니다.
보안은 어떻게 적용하나요?
일반적으로 https통신을 제공하며, 3rd Party 보안모듈 연동을 통해서 제공됩니다. 타서 연동 사례로 이니텍,키보드보안 등이 적용된 사례가 있습니다.
네트워크 트래픽을 줄일 수 있는 방안이 있나요?
XML, SSV, 압축 등을 이용하여 네트워크 부하를 최소화 할 수 있습니다.
SSV(Spacial-character Separated Values)란 : CSV타입의 경우 데이터 구분자로 "컴마(,)", "줄바꿈표(\n)"을 사용하는데 해당 구분자의 경우 실 데이터에서 사용되는 문자열로 순수데이터 추출 시 데이터를 쌍따옴표(")를 앞뒤로 추가함으로써 발생하는 데이터 용량 증가를 해결하고자 발명된 투비소프트 특허 기술 실데이터로 사용되지 않는 ASCII 십진수 30번, 31번 코드를 구분자로 사용하는 방식
대용량 처리시 사용가능한 데이터량이 얼마나 되나요?
최대 처리 가능한 데이터량은 사용자환경, 구현된 프로젝트의 형태, 사용하는 웹브라우저의 종류 및 버전에 따라 다를 수 있습니다. 예를 들어 IE11의 경우 최대 허용 메모리는 약 1.5gb정도이며 이 또한 사용자 환경에 따라 차이가 발생 할 수 있습니다.
개발시 java script 언어를 사용하나요?
JavaScript 언어를 사용하며 엔진 및 컴포넌트도 js파일로 만들어져 있습니다.
로컬DB 사용은 가능한가요?
sql Lite 제품을 연동하여 on-off line사용이 가능합니다.
다국어는 지원 가능한가요?
유니코드를 지원하여 국제 언어 데이터 처리가 가능하며 locale을 변경하여 숫자나, 화폐단위들의 표기도 적용됩니다. 단 입력 형태에 따른 제약은 발생할 수 있습니다. (예: 우측에서 좌측으로 입력하는 국가 언어)
자체 디버깅 기능이 제공되나요?
개발도구에서 Log Viwer를 통한 컴포넌트, 변수 등의 값을 모니터링 할 수있는 로그방식, 라인 디버깅, Break point, Stack Tracing 기능을 모두 제공합니다.
디버깅을 위한 외부 툴과의 연계는 불가능 하지만 추가적인 디버깅 툴 연동을 하지 않아도 될 만큼의 디버깅 기능을 제공합니다.
형상관리는 어떻게 하나요?
형상관리툴을 연동하게 되면 툴안에서 사용할 수 있습니다. 하지만 일반적으로 프레임워크를 이클립스안에서 구성하여 사용하기 때문에 (Java + 화면) 이클립스를 이용해서 형상관리 하는 방법을 많이 사용합니다.