====== 아키텍처 질의응답 ====== xFrame5 아키텍처와 관련된 질의응답 정보를 제공합니다. ===== 질의응답 목록 ===== ~~QNA~~ ===== 질의응답 내용 ===== ??? 화면(screen)은 무엇인가요? !!! 화면은 xFrame5 솔루션에서 UI를 개발하기 위한 기초 단위로 HTML의 하나의 페이지와 유사한 단위입니다. 화면은 컴포넌트에 대한 정보를 포함하고 있는 XML 파일과 스크립트 로직이 저장되어 있는 JS(JavaScript) 파일로 구성됩니다. 화면 오브젝트는 "screen"이란 미리 정의된 이름을 통해서 스크립트에서 접근하며, 다음과 같은 API를 제공합니다. * 화면 속성 제어용 API * 화면 스크립트 멤버(member)를 구하는 API * 화면 XDataSet/컴포넌트 오브젝트를 구하는 API * 화면 XTranMap 기준 서버와 XDataSet 기반 데이터 통신 기능을 수행하는 API ??? 화면 멤버(member) 오브젝트는 무엇인가요? !!! 화면 멤버 오브젝트는 화면내 스크립트 영역에 접근하기 위해 사용되는 오브젝트입니다. 화면 멤버는 화면 오브젝트(screen 오브젝트)의 getmembers API를 통해서 구합니다. 화면 멤버 오브젝트를 통해서 화면 스크립트에서 정의된 글로벌/전역 변수에 대한 접근 및 함수에 대한 호출 기능을 제공합니다. 다른 화면이나 글로벌 모듈에서 제어 대상 화면 오브젝트(screen)를 구하면, 화면 오브젝트를 통해 화면의 멤버 오브젝트를 구할 수 있고, 화면 오브젝트와 화면 멤버 오브젝트를 이용하면 화면내 모든 기능을 제어할 수 있다. ??? factory는 무엇인가요? !!! factory는 xFrame5 솔루션에서 공통 유틸리티성 기능이 제공되는 오브젝트입니다. factory 오브젝트는 "factory"란 미리 정의된 이름을 통해서 스크립트에서 사용합니다. ??? 글로벌 모듈(공통 모듈)은 무엇인가요? !!! 글로벌 모듈은 프로젝트에서 전역적으로 사용되는 공통 기능성 함수를 개발하기 위해 제공되는 기능입니다. 전역적으로 사용된다는 것은 A라는 화면에서 글로벌 모듈의 전역 변수 값 변경시, B라는 화면에서 전역 변수 값을 구하는 경우, 변경된 값이 반환된다는 것을 의미합니다. 글로벌 모듈은 글로벌 모듈 이름(ID)으로 구별됩니다. 스크립트에서 "글로벌모듈이름"."전역변수이름" 형식으로 전역변수에 접근하거나, "글로벌모듈이름"."함수이름" 형식으로 함수를 호출합니다. ??? 글로벌 데이터셋(공통 데이터셋)은 무엇인가요? !!! 글로벌 데이터셋 프로젝트에서 전역적으로 사용되는 데이터를 저장하기 위해서 제공되는 기능입니다. 전역적으로 사용된다는 것은 A라는 화면에서 값 변경시, B라는 화면에게 값을 구하는 경우, 변경된 값이 반환된다는 것을 의미합니다. 글로벌 데이터셋은 글로벌 데이터셋 이름(ID)으로 구별됩니다. 스크립트에서 "글로벌데이터셋이름"."데이터셋API" 형식으로 글로벌 데이터셋을 사용합니다. ??? 컴포넌트는 무엇인가요? !!! 컴포넌트는 xFrame5 솔루션에서 제공하는 UI 기능을 수행하기 위한 단위 모듈을 의미합니다. ??? 이벤트는 무엇인가요? !!! 화면 및 컴포넌트에서 특정한 동작이 발생한 것을 알려주는 기능입니다. 이벤트는 개발툴에서 이벤트에 대한 함수(이벤트 핸들러)를 지정하여 사용하며, 화면 이벤트를 제외한 이벤트 함수의 첫번째 파라미터는 이벤트가 발생한 컴포넌트의 인스턴스가 전달됩니다. 이벤트는 다음과 같이 2가지 형식으로 제공됩니다. * 단순 이벤트: 이벤트 함수의 리턴값이 사용되지 않는 이벤트 * 리턴 이벤트: 이벤트 함수의 리턴값이 이벤트에 대한 후 처리를 수행하기 위한 기준이 되는 이벤트 (예: 탭의 on_itemdestroy 이벤트) 리턴 이벤트 예시는 아래와 같다. /** * 탭 아이템이 삭제되기 전에 발생하는 이벤트 * @param objInst 탭 컴포넌트 인스턴스 * @itemindex objInst 탭 아이템 인덱스 * @returns 탭 아이템 삭제 처리 여부 * 1 - 탭 아이템 삭제 처리, * 0 - 탭 아이템을 삭제하지 않음 */ function tab_on_itemdestroy(objInst, itemindex) { // 탭 아이템을 삭제하지 않기 위해서는 0값을 리턴한다. return 1; } ??? 화면은 어떻게 로딩되나요? !!! 하나의 화면 결과물은 화면 구성요소를 포함하는 XML 파일과 자바스크립트 로직을 포함하고 있는 JS 파일로 구성됩니다. 모든 화면은 하나의 "화면로더.html"에 화면 관련 정보를 파라미터로 전달하여 로딩됩니다. "화면로더.html"에는 xFrame5 솔루션 엔진용 CSS 파일과 JS 파일이 포함되어 있으며, "화면로더.js" 파일을 포함합니다. "화면로더.html"에 전달된 화면 정보를 이용하여 xFrame5 솔루션 엔진이 화면.XML, 화면.JS 파일을 로드하여 동적으로 HTML를 구성하는 방식으로 화면이 표시됩니다. ??? 실행 파라미터는 무엇인가요? !!! "화면로더.html" 파일은 "화면로더.js" 파일을 포함합니다. 실행 파라미터는 "화면로더.js" 파일에는 "_xf_param" 변수명으로 정의된 오브젝트내 정의된 설정정보를 의미합니다. 실행 파라미터에는 화면 실행시 사용되는 다양한 구성 정보가 정의되어 있습니다. 실행 파라미터에 대한 자세한 설명은 실행 파라미터 가이드(98_xFrame5_Parameter_Guide.html)그리드 실행 파라미터 가이드(98_xFrame5_Grid_Parameter_Guide.html) 문서를 참조합니다. ??? 메인 화면은 무엇인가요? !!! 메인 화면은 "MAINFRAMESCREEN" 실행 파라미터에 정의된 화면을 의미하며, "화면로더.html" 파일을 화면 정보 파라미터 없이 로딩시 처음으로 로딩되는 화면입니다. 메인 화면은 일반 화면과 다른 점은 스타일/글로벌 모듈/글로벌 데이터셋을 로딩하는 과정을 수행합니다.