[Nexacro]프로젝트 구성요소

Inung_92·2023년 5월 10일
2

Nexacro

목록 보기
1/2
post-thumbnail

블로깅 목적

넥사크로 프로젝트를 구성하는 요소들의 역할 및 사용 시 주의사항에 대하여 알아보자.

프로젝트 구성 요소

⚡️ Environment

📖 실행 환경 정보를 가지고 있는 설정 파일로 다음과 같이 구성되어 있다.

🖥️ Screen

기본적으로 1개의 스크린 정보를 가지고 있으며, 하나의 애플리케이션을 다양한 디바이스에서 동일하게 실행하고 싶을 경우 추가하여 사용 할 수 있다.

🖥️ Variables

애플리케이션과 화면에서 공통으로 사용할 변수를 지정 할 수 있다. 여기서 지정된 변수는 브라우저의 LocalStorage에 위치한다.

위와 같은 방법 외에도 스크립트를 사용 할 수 있다.

// 추가
nexacro.setEnvironmentVariable("Env_var1", "Test_var");
// 반환
var variable = nexacro.getEnvironmentVariable("Env_var1");
// 삭제
nexacro.removeEnvironmentVariable("Env_var1");

이렇게 저장된 변수를 확인하기 위해 애플리케이션을 실행하면 아래와 같이 LocalStorage에 데이터가 위치하게 된다.

여기서 🚨주의해야 할 점은 LocalStorage에 데이터를 위치시킬때는 가급적이면 value에 대한 암호화를 거치는 것이 좋으며, 민감한 정보는 아예 위치시키지 않는 것이 좋다.
또한, LocalStorage는 작은 크기의 데이터를 클라이언트 측에 저장하는 것이기 때문에 너무 많은 데이터를 저장하면 아래와 같은 문제가 발생 할 수 있다.

  1. 메모리 사용량 증가
    : 많은 양의 데이터는 브라우저의 메모리 사용량 증가를 초래하여 성능에 영향을 줄 수 있으며, 특히 모바일 기기에서 더 큰 영향을 받을 수 있다.
  2. 데이터 접근 속도 저하
    : 기본적으로 LocalStorage는 Key-Value 형태로 데이터를 저장하기 때문에 데이터가 많아질수록 해당 데이터에 접근하는 속도는 느려질 수 밖에 없다.
  3. 네트워크 성능 저하
    : 웹 애플리케이션이 초기화 될 경우 LocalStorage 내 모든 데이터를 다운로드해야 하는데 이때, 많은 양의 데이터가 있는 경우 로딩 시간이 길어질 수 있으며 네트워크의 대역폭 또한 많이 잡아먹게 된다.
  4. 스토리지 제한 초과
    : 말 그대로 스토리지의 제한을 초과하여 예상과 다른 결과가 반환되거나 데이터가 정상적으로 처리되지 않을 수 있다.

이러한 부분을 유의하여 사용하도록 하자.

🖥️ Cookies

클라이언측에서 브라우저의 쿠키로 처리될 변수를 설정한다.

스크립트는 다음과 같다.

//추가
nexacro.setCookieVariable("Cookie1", "Test Cookis");
//반환
var coo = nexacro.getCookieVariable("Cookie1");
//제거
nexacro.removeCookieVariable("Cookie1");

위의 변수와 마찬가지로 아래와 같이 브라우저를 통해 확인해보자.

🖥️ HTTP Header

HTTP 헤더 영역에 포함하여 전송할 변수를 설정한다.

스크립트는 다음과 같다.

// HTTP Header 추가
nexacro.setHTTPHeaderVariable("Env_Http1", "nexacro platform");
// HTTP Header 값 반환
var headerValue = nexacro.getHTTPHeaderVariable("Env_Http1");
// HTTP Header 제거
nexacro.removeHTTPHeaderVariable("Env_Http1");

🖥️ Script

Environment에서 공통으로 정의하는 스크립트 또는 여러개의 애플리케이션에서 같이 사용 할 스크립트를 작성한다. 여기서 스크립트란 위에서 선언한 환경변수에 대한 스크립트를 이야기한다.

this.Env_Script = function(){
	return "Env Script Call";
}

접근은 아래와 같은 방식으로 한다.

// Environment Object를 이용
var objEnv = nexacro.getEnvironment();
objEnv.Env_Script();

말 그대로 실행 환경에서 공통적으로 사용할 스크립트를 정의하는 기능이라고 생각하면 편할 것 같다. 같은 실행환경 내에서 여러개의 애플리케이션을 동작시킨다면 해당 스크립트에 모두 접근이 가능할 것이다.

⚡️ TypeDefinition

📖 오브젝트 및 생성한 물리적인 파일이 존재하는 디렉토리의 경로 등을 관리한다.

🖥️ Objects

모듈에 대한 정보와 모듈에 정의되어 있는 오브젝트를 관리한다. 여기서 모듈은 기본적으로 제공하며, 사용자가 정의하여 추가로 생성 할 수 있다.

또한, ComComp.json 등 기존에 생성되어진 모듈에서 체크표시가 되지 않은 컴포넌트들을 체크하여 사용할 수 있도록 상태변경이 가능하다.

여기서 모듈을 잠시 알아보고 넘어가자. 넥사크로 오브젝트들을 묶어서 json 형태로 정의하여 모듈로 등록한다. 이렇게 등록을 해주어야 넥사크로 오브젝트를 사용할 수 있다. 넥사크로 오브젝트라는 것은 위에서 보았듯이 nexacro.XXX 형태로 이루어진 오브젝트를 뜻한다.

위의 사진을 보면 ID, ClassName, Image 등등의 컬럼이 보인다. 해당 부분들을 커스텀하여 사용하는 것도 가능하다.

🖥️ Services

Resource Service와 User Service로 분류되며, 쉽게 디자이너와 개발자가 사용하는 서비스로 분류되어있다고 생각하는 것이 편하다.

Services에서는 화면, 스크립트, 서버 경로 등을 설정하여 사용 할 수 있다. Base 서비스가 기본으로 생성되고, 프로젝트 생성 시 프레임 구조를 선택한 경우에는 FrameBase라는 서비스에 Form까지 자동으로 생성되어진다.

여기서 PrefixID는 스크립에서 사용할 약어이고, URL은 윈도우에 생성할 물리적인 폴더명이다. 지정하는 Tpye에 따라 서비스에 표시되는 파일 타입이 제한된다.

🚨유의해야 할 부분은 각각의 Service는 Type별로 허용되는 확장자만 관리하므로 그 이외의 파일들을 Project Exploer에서 표시하지 않게된다.

🖥️ Protocols

넥사크로는 기본적으로 HTTP 프로토콜을 사용하여 서버와 요청 및 응답을 처리한다. 하지만 사용자의 환경 또는 애플리케이션의 특성에 따라 데이터를 암호화하거나 원하는 형식으로 변환하는 처리가 필요할 경우 프로토콜 어댑터를 설정 할 수 있다.

⚡️ AppInformation

📖 애플리케이션에 대한 전반적인 정보관리를 수행한다.

🖥️ AppVariables

애플리케이션과 화면에서 공통으로 사용할 변수와 2차원 형태의 데이터를 지정 할 수 있다. EnvironmentVariables와 차이점은 애플리케이션 단위로 공유할 수 있기 때문에 애플리케이션 끼리의 공유는 불가능하다.

DataSet
2차원의 테이블 형태로 데이터를 관리하는 오브젝트이자 가장 많이 사용할 오브젝트이다. 애플리케이션 전역에서 사용할 2차원 형태의 데이터를 관리 할 수 있다.

스크립트로 해당 데이터의 행의 개수를 조회해보자.

// 애플리케이션 객체 반환
var objApp = nexacro.getApplication();
// row 개수 출력
objApp.Dataset0.getRowCount();

Variables
애플리케이션에서 공통으로 사용할 변수를 선언하여 관리 할 수 있다.

스크립트는 아래와 같다.

// Application Object 를 이용하여 접근
var objApp = nexacro.getApplication();
objApp.gv_name;

🖥️ Apps

현재 생성되어 있는 애플리케이션에 대한 정보를 관리 할 수 있다. 주로 Frame의 구성을 확인하는 용도로 사용하며, 그 외에 애플리케이션에서 사용할 공통된 스크립트를 작성하는데 사용한다.

⚡️ 프로젝트 생성 산출물

프로젝트가 생성되어 지면 아래와 같은 디렉토리 구조를 가진 산출물이 생성되어진다.

각 항목별 용도에 대해서는 아래 표를 참고하자.


마무리

이번 게시글에서 Nexacro의 프로젝트에 대한 구성 요소를 알아보았다. 사실 처음 사용하면 생소한 부분들이 많지만 하나 둘 알아가다보면 자주 접했던 개념들이 나오기 때문에 크게 어려운 부분은 없다.

단지 사용을 많이 안해서 어색한 부분들이 존재할 뿐이다. 구성요소를 알아가다보니 조금은 조심해야 하는 것이 Environment, Application 등의 Variables이다. 생명주기를 고려해서 언제, 어느범위까지 사용할 변수인지를 잘 고민하여 사용해야 할 것 같다는 생각이 든다.

다음 게시글에서는 Nexacro의 컴포넌트들을 다루기 위한 플랫폼의 편의기능은 어떤 것들이 있는지 알아보도록하자.

그럼 이만.👊🏽

profile
서핑하는 개발자🏄🏽

0개의 댓글