Nexa Integration Builder
⚠️ 이 버전은 Beta 입니다 — 1.0.0
첫 공개 버전입니다. 기능과 자산 파일 형식이 바뀔 수 있습니다.
다음 버전에서 만든 자산을 다시 손봐야 할 수 있으니 Git 으로 형상 관리하시고,
운영 배포 전에는 결과물을 꼭 확인해 주세요. 문제를 만나면 이슈로 알려 주시면 도움이 됩니다.
NexaLAP 플랫폼의 확장 자산을 VS Code에서 개발·패키징·배포합니다
전문 개발자의 역량을 NexaLAP Studio에서 바로 쓸 수 있는 자산(Asset) 으로 전환합니다.
로우코드와 프로코드를, 익숙한 VS Code와 Git 워크플로를 그대로 둔 채 연결합니다.
Nexacro Object · ViewTemplate · Viewset · CommonInfo · Theme · XCSS · Server Extension · Package
💡 Nexa Integration Builder란
NexaLAP은 모든 기능을 플랫폼 내부에 고정하지 않습니다. 핵심 설계와 실행 구조는 안정적으로 유지하면서,
필요한 영역을 자산 형태로 확장합니다. 이 확장은 그 자산을 만드는 도구입니다.
전문 개발자는 NexaLAP Studio에서 사용할 Nexacro Object(컴포넌트·Action 등), ViewTemplate,
Viewset, 공통 정의, 테마, 서버 확장을 만들고 이를 배포 패키지로 묶습니다. 패키지를
NexaLAP Studio에 설치하면, Studio 사용자는 그 자산을 팔레트에서 꺼내 화면을 구성합니다.
개발은 VS Code에서 이뤄집니다. 전용 IDE를 새로 익힐 필요 없이 Git 기반 형상 관리와 기존 개발 워크플로를 그대로 유지하면서, 코드 중심 방식으로 로우코드 플랫폼을 확장합니다.
만든 자산은 버전 관리되고, 프로젝트 간 재사용되며, 마켓플레이스를 통해 조직 내부·외부로 공유됩니다.
📦 제공 기능 요약
| 자산 |
확장자 |
무엇을 하나 |
| Nexacro Object |
.nexaobj |
컴포넌트·Action·EventInfo 등을 만듭니다. MetaInfo(스키마)와 Script를 한 에디터에서 편집하고, 브라우저 Preview로 즉시 확인합니다 |
| ViewTemplate |
.viewtemplate |
모델을 어떤 UI로 펼칠지 정의하는 화면 생성 템플릿입니다. 코드 생성 방식으로 편집하고 미리보기를 제공합니다 |
| Viewset |
.viewset |
여러 View를 어떤 구조와 흐름으로 배치할지 정의하는 화면 구성 자산입니다. 전용 디자이너와 Properties 패널로 편집합니다 |
| CommonInfo |
.commoninfo |
여러 오브젝트가 공유하는 Enum·Unit·Refresh·Display 정의입니다. MetaInfo 에디터 안에서 편집합니다 |
| Nexacro Theme |
테마 폴더 |
컴포넌트 외형을 정의하는 테마입니다. Predefine·CSS·이미지를 전용 에디터에서 편집하고 실제 컴포넌트로 Preview 합니다 |
| XCSS 파일 |
.xcss |
테마 폴더에 속하지 않는 단독 스타일 파일입니다. 같은 CSS 지원(자동완성·진단·이미지 참조)을 받고 패키지로 배포합니다 |
| Server Extension |
Maven 폴더 |
NexaLAP Server에서 동작하는 Java 확장(Workflow·Format·Endpoint)입니다. 생성·편집·컴파일·패키징까지 한 곳에서 합니다 |
| 패키지 |
.pkgconfig |
위 자산들을 묶어 배포 패키지로 빌드하고 NexaLAP Studio에 설치합니다 |
여기에 프로젝트 Explorer, Nexacro 라이브러리 관리, 에셋 스크립트 디버깅,
기존 beta 프로젝트 마이그레이션이 함께 제공됩니다.
🚀 시작하기
- 확장을 설치하고 Activity Bar에서 Nexa Integration Builder 아이콘을 엽니다.
- New Project 로 프로젝트를 만들거나, 기존 Integration Builder 프로젝트 폴더를 Open Project 합니다.
- Explorer 트리에서 자산을 더블클릭하면 전용 에디터가 열립니다.
🖥️ 주요 화면
1. 프로젝트 Explorer
프로젝트 폴더를 그대로 미러링하는 전용 탐색기입니다.
- Nexacro Library 노드 — 현재 라이브러리 버전과 등록된 클래스 목록을 보여줍니다. 라이브러리 교체·복원을 지원합니다.
- Common Libraries 노드 — 애플리케이션 구동 시 프레임워크 다음으로 로드할 공용 스크립트를 등록/해제합니다.
- 자산 유형별 아이콘, 생성·이름 변경·삭제, Reveal in Finder / File Explorer.
- 파일 관리 — 멀티 선택, 복사·잘라내기·붙여넣기, 드래그앤드롭 이동, OS 탐색기에서 끌어다 넣기(복사).
- 보기 필터 — 툴바의 필터 버튼으로 자산 유형을 골라 봅니다. 고르는 즉시 반영되고 프로젝트별로 기억합니다.
2. Nexacro Object 에디터 — 컴포넌트를 만드는 곳
가장 많이 쓰게 될 화면입니다. 하나의 .nexaobj 파일을 탭으로 나눠 편집합니다.
MetaInfo 탭 — 컴포넌트의 스키마를 선언합니다.
- 좌측 rail(카테고리별 Property·Method·Event·Status·CSS·Control)과 우측 상세 폼의 Master-Detail 구성
- 상속 멤버를 함께 표시합니다. 부모에게 물려받은 항목은 읽기 전용으로 보이고, 필요하면 Promote 해서 내 선언으로 가져옵니다. 재정의한 멤버에는 ⤴ 표시가 붙습니다
- 모든 필드에 NexaLAP Studio 공식 설명을 그대로 붙였습니다(EN·한국어·中文·日本語 전환)
description을 ENG / KOR / JPN 로케일별로 작성할 수 있습니다
Script 탭 — 프레임 코드는 자동, 본문만 작성합니다.
- 생성자·prototype 배선 같은 정형 코드는 생성되고, 사용자는 멤버 본문만 씁니다
- MetaInfo에 선언한 property/method/event를 [Generate in Script →] 로 스크립트에 바로 만들어 냅니다
- 선언이 지워진 코드는 버리지 않고 orphan으로 보존하고 배지로 표시합니다
- nexacro API 자동완성 —
this. 로 내 멤버를, nexacro. 로 프레임워크 클래스를 꺼냅니다.
var ds = new nexacro.Dataset() 처럼 본문에서 타입이 잡히는 지역 변수의 멤버 체인도 따라갑니다.
완성 목록의 항목에는 MetaInfo 설명이 함께 붙습니다
- xscript 문법 진단·Go to Symbol·정의 이동을 지원합니다
Design 탭 — Composite Component의 내부 폼을 화면으로 짭니다.
- 팔레트에서 컴포넌트를 꺼내 배치하고, 드래그·리사이즈·정렬·z-order·PositionBase를 다룹니다.
컨테이너를 더블클릭하면 그 안으로 들어가 편집합니다
- Dataset — 팔레트의 Objects에서 만들고, 캔버스 아래 트레이에서 고르면 그 자리에서
Contents Editor(컬럼·행 표)가 열립니다. 상수 컬럼도 함께 다룹니다
- 바인딩 — 컴포넌트 속성을 Dataset 컬럼에 묶습니다(속성 패널의 ⛓). 걸린 값은 캔버스에
그대로 보여 디자인 화면과 실행 결과가 같습니다.
Bindings 탭에서 폼 전체를 컴포넌트별로 봅니다
- Combo·ListBox처럼 목록을 자기 안에 품는 컴포넌트의 Dataset도 같은 표로 편집하고,
codecolumn·datacolumn을 그 자리에서 고릅니다
- Form Script — 내부 폼의 스크립트입니다.
this. 에 폼의 컴포넌트와 Dataset이 나옵니다
- Events 패널 — 컴포넌트 이벤트에 핸들러를 붙이고, 없으면 함수를 만들어 줍니다
Style 탭 / Preview — 컴포넌트 테마 CSS를 편집하고, 브라우저에서 실제로 구동해 확인합니다.
CSS 자동완성은 테마 에디터와 같은 카탈로그를 씁니다. Action 자산은 Common Library를 로드한 상태로 실행됩니다.
3. CommonInfo — 공유 정의
여러 컴포넌트가 함께 쓰는 Enum · Unit · Refresh · Display 정의를 MetaInfo 에디터 안에서 편집합니다.
- 내 프로젝트 정의를 만들고, MetaInfo의
enuminfo/unitinfo에서 바로 선택해 씁니다
- 프레임워크 라이브러리 정의는 Library reference 에서 검색해 참고하고, 필요하면 Copy to project 로 복제해 수정합니다
- 로케일별
description·displaytext 를 함께 관리합니다
4. ViewTemplate 에디터
.viewtemplate 을 Information / Includes / Variables / Properties / 코드 블록으로 나눠 편집하고,
Code Preview 와 View Preview 로 결과를 확인합니다. 2.0 다운그레이드도 지원합니다.
5. Viewset 디자이너
.viewset 을 캔버스에서 배치하며 편집합니다. 우측 Properties 패널은 값이 어디서 왔는지
(기본값·템플릿·내 설정) 계층으로 보여 주고, 인라인 편집과 속성 추가를 지원합니다.
6. Nexacro Theme 에디터 — 외형을 정의하는 곳
테마 폴더를 열면 Overview · Theme · Extension Utils 세 탭이 있는 전용 에디터가 뜹니다.
- Predefine — 색·글꼴 같은 공통 값을 정의하고, CSS에서
-nexa-define(--이름) 으로 참조합니다.
정의되지 않은 참조는 경고로 알려 줍니다(런타임은 조용히 무시하기 때문입니다)
- CSS — 컴포넌트 셀렉터·상태(
[status=…])·-nexa-* 속성 자동완성, 테마 이미지 URL("theme://images/…")
자동완성, 값 진단. 같은 블록에 같은 속성을 두 번 선언하면 경고합니다(뒤의 값이 이겨 앞선 선언이 버려집니다)
- Images — 테마 이미지를 넣고 이름을 바꾸면 CSS 참조가 함께 따라갑니다
- Preview — 편집 중인 테마를 실제 컴포넌트에 입혀 보여 줍니다. 여러 컴포넌트를 나란히 놓거나
현재 것만 볼 수 있고, 원하는 항목을 핀으로 고정합니다
- Overview — 테마 전체를 한 장으로 냅니다(폼 모형·팔레트·글꼴·컴포넌트 커버리지·자산·Health).
바깥을 부르지 않는 HTML 한 파일로 내보낼 수 있어 리뷰 자료로 그대로 씁니다
- Extension Utils — Figma — Figma 파일에서 스타일을 읽어 XCSS로 변환합니다. 캔버스에서 여러 항목을
골라 한 번에 적용하고, 충돌하는 줄만 골라 처리합니다. 이미지 fill은 테마
images/ 로 내려받습니다
7. Server Extension — NexaLAP Server용 Java 확장
서버에서 동작하는 확장을 IB 안에서 만들고 컴파일해 패키지에 담습니다.
- New Server Extension Module — Group Id · Artifact Id · 첫 확장 클래스 이름을 받아 Maven
프로젝트를 만듭니다(pom·스켈레톤·필요한 jar·maven-wrapper). 유형은 Workflow · Format · Endpoint 셋입니다
- 모듈 안에 확장 클래스를 여러 개 둘 수 있습니다.
New Extension Class 로 추가하면 스켈레톤 생성과
목록 등록이 함께 이뤄지고, Rename 은 소스 참조·파일명·목록을 한 번에 바꿉니다
- 확장 에디터 — 유형·URL 경로·표시명·기능 명세(Request/Response 스키마)·설정값 양식을 편집합니다.
기능 명세는 패키징 때 워크플로우 편집기가 읽는 MetaInfo(
.info)로 변환됩니다
- 빌드 —
Build Server Extension Module 로 fat jar를 만듭니다(SPI 4종은 서버가 제공하므로 제외).
Java 편집 지원(자동완성·오류 표시)은 Java 확장과 JDK를 사용하며, 컴파일 오류는 Problems에 표시됩니다
- 패키징·설치 — 패키지에 담아 Studio로 Import하면 jar와 MetaInfo가 프로젝트에 놓이고,
재시작 없이 워크플로우 편집기 툴박스에 확장 노드가 나타납니다
ℹ️ 서버 배포는 NexaLAP Server 쪽 준비가 끝난 환경에서 동작합니다. 로컬 프로젝트 반영(설치·갱신·제거)은
서버 없이도 그대로 사용할 수 있습니다.
8. 에셋 스크립트 디버깅
.nexaobj(Action)와 .viewtemplate 의 Script를 중단점으로 멈춰 확인합니다.
- Script 블록 거터에 중단점을 찍고, 소스맵으로 원본 줄에 정확히 멈춥니다
- 호출 스택·변수·워치·스테핑은 VS Code 디버그 패널을 그대로 씁니다
- 실행 방식은 두 가지입니다 — 스크립트만 돌리는 방식과, Runtime Preview를 별도 창으로 분리해
화면과 함께 디버깅하는 방식
9. 패키지 — 만들고, 묶고, 설치까지
Package Configure 로 .pkgconfig 를 만들고 배포할 자산을 고른 뒤 빌드합니다.
.nexaobj → 배포용 .js · _metainfo_/<로케일>/*.info 로 자동 분해
- 여러
.commoninfo 를 로케일별 CommonInfo.info 하나로 병합
- 테마 폴더·XCSS 파일·Viewset·ViewTemplate·라이브러리 스크립트·서버 확장 jar를 함께 수납
- 빌드 전 검증(중복
classname, 없는 자산 경로, 등록 가능한 오브젝트 0건, 서버 확장 좌표·경로 충돌 등)을
돌리고, 오류가 있으면 빌드를 막습니다
- 빌드한 패키지는 NexaLAP Studio로 Import 해서 설치합니다 — 컴포넌트 등록·아이콘·xcss 적용까지 처리됩니다
- 파일·폴더를 골라 그 자리에서 Import 할 수도 있습니다(Explorer 컨텍스트 메뉴)
10. 마이그레이션 — 기존 beta 프로젝트 가져오기
기존 Integration Builder(beta) 및 Module Developer 프로젝트를 현재 형식으로 변환합니다.
- 폴더를 스캔해 자산 종류별 개수와 주의 사항을 먼저 보여줍니다
.module → .nexaobj, Composite(.xcdl) → .nexaobj, _commonlib_/*.info → .commoninfo 등으로 변환
- 원본을 그대로 두고 복사(copy) 하거나 제자리(in-place) 변환을 선택합니다
- 변환할 수 없는 항목은 건너뛰고 사유를 남깁니다
⚠️ 변환 결과는 반드시 확인하세요.
ViewTemplate 2.1 업그레이드는 기본으로 켜져 있고, 변환 과정에서 손실이 발생할 수 있습니다.
원본 백업 또는 copy 모드를 권장합니다.
🌐 표시 언어
확장 UI 전체가 IDE 언어를 따라갑니다 — 한국어 · 日本語 · English.
메타인포 필드 설명도 같은 기준으로 기본 언어가 정해지고(ENG · KOR · CHN · JPN), 자산의
description·displaytext는 로케일별로 따로 작성해 패키지에 함께 실립니다.
⚙️ 요구 사항
- VS Code 1.80 이상 (또는 NexaLAP Studio)
- Nexacro 라이브러리는 확장에 내장되어 있습니다. 다른 버전이 필요하면 Explorer의 Nexacro Library 노드에서 교체하고, 언제든 내장 버전으로 복원할 수 있습니다.
- Server Extension을 개발할 때만 추가로 필요합니다 — Java 언어 지원 확장과 JDK 21.
NexaLAP Studio에는 둘 다 포함되어 있고, 그 외 환경에서는
JAVA_HOME 이 가리키는 JDK를 사용합니다.
Maven은 프로젝트에 함께 만들어지는 wrapper를 쓰므로 별도 설치가 필요하지 않습니다(첫 빌드에는 네트워크가 필요합니다).
💬 팁 & 문제 해결
- ID 규칙 — MetaInfo 멤버와 CommonInfo id는 Studio ID 규칙을 따릅니다(빈 값·특수문자·한글·숫자로 시작 불가, 중복 불가). 규칙에 어긋나면 편집이 거부되고 사유가 표시됩니다. 단, 상속 멤버 Promote 는 부모 이름을 그대로 가져오므로 이 검사를 적용하지 않습니다.
- 프로젝트 파일이 안 보일 때 —
nexa-integration-builder.json(매니페스트)과 기본 .commoninfo 는 도구가 관리하는 파일이라 트리에서 의도적으로 숨깁니다. CommonInfo는 MetaInfo 에디터 안에서 편집하세요.
- Java 자동완성이 동작하지 않을 때 — Java 언어 지원은 프로젝트가 워크스페이스 폴더로 등록되어 있어야 동작합니다.
.java 파일을 열면 Add to Workspace 안내가 뜨니 수락하세요(창이 한 번 다시 열립니다). 빌드는 등록과 무관하게 동작합니다.
- 테마를 고쳤는데 화면이 그대로일 때 — Predefine은 파일 단위입니다. 낱개
.xcss 에서 테마의 Predefine을 참조하면 값이 풀리지 않고 그 규칙만 조용히 무시됩니다. 편집기 경고를 확인하세요.
- 로그 확인 — 패키지 빌드·설치, 서버 확장 빌드, 라이브러리 로드 실패 등은 출력 채널 Nexa Integration Builder 에 남습니다.
- 변경이 반영되지 않을 때 — Explorer 툴바의 Refresh 를 먼저 시도하세요. 매니페스트를 다시 읽어 트리와 상태를 함께 갱신합니다.
🤝 지원
⚠️ Beta 버전입니다. 기능과 파일 형식이 바뀔 수 있습니다.
제품·라이선스·배포 문의는 조직의 NexaLAP Studio / Integration Builder 담당 채널을 이용하세요.
변경 이력은 확장 상세의 Changelog 탭에서 확인할 수 있습니다.