파일과 저장 규칙
이 페이지는 IDE에서 여는 원본과 저장 위치의 기준입니다. 서버의 상세 식별자 규칙은 HandStack 식별자와 파일 경로를 참고하세요.
계약 확장자
| 유형 | IDE 파일 | 용도 | 실행 도구 |
|---|---|---|---|
| view | .html + .js | 업무 화면·스크립트 | View Designer·웹 브라우저 |
| transact | .txn | 거래 입출력과 기능 연결 | 거래 실행 |
| dbclient | .dbc | SQL·파라미터·데이터 원본 | 쿼리 실행 |
| command | .bas | 명령행·웹 요청 | 명령 실행 |
| function | .fnc | 함수·런타임 실행 | 함수 실행 |
| graphclient | .cyp | Cypher 구문 | 쿼리 실행 |
| prompter | .pmt | 프롬프트·모델 요청, Jev·Ollama 판단 계약 | 프롬프트 실행 |
| repository | .rpo | 파일 저장소 정책 | 계약 편집·저장소 관리 |
확장자가 파일의 내부 형식을 뜻하지는 않습니다. 예를 들어 .dbc는 XML 계약이며 .txn은 JSON 계약입니다. 기존 파일을 다른 확장자로 일괄 변경하지 마세요. 정확한 계약 옵션은 모듈 참조에서 확인합니다.
prompter 계약 화면은 .pmt 파일만 열고 저장합니다. 모듈 소스에서 직접 관리하는 같은 형식의 .xml 계약은 이 화면에서 지원하지 않습니다. 판단 계약(<decision>)은 구문의 판단 계약 (Decision) 섹션이나 판단 구문 버튼으로 편집하며, 질문 JSON 규칙은 prompter 모듈 참조를 따릅니다. 이미지를 함께 판단하는 구문은 미디어 섹션의 <media>(Image 형식, 최대 4개)를 관리하며, 이미지 파일은 계약에 저장되지 않고 실행 팝업에서 선택해 Base64 원문으로 전달합니다.
IDE의 사용자 편집용 JSON 계약은 주석과 후행 쉼표를 허용합니다. 원본 편집 시 이를 오류로 단정해 제거하지 말고 계약 편집기의 검증 결과를 확인하세요.
프로젝트 경로
새 프로젝트 예시 idelab / LAB의 구분입니다.
| 식별자·경로 | 의미 |
|---|---|
idelab | 모듈 ID와 프로젝트 폴더명 |
HDS | 예제 ApplicationID |
LAB | 업무 ProjectID, 생성 화면의 프로젝트 코드 |
LAB010 | 예제 화면·거래 ID |
LD01 | 조회 서비스·SQL 구문 ID |
wwwroot/idelab/view/HDS/LAB/LAB010.html · .js | 화면 원본 |
Contracts/transact/HDS/LAB/LAB010.txn | 거래 원본 |
Contracts/dbclient/HDS/LAB/LAB010.dbc | SQL 원본 |
module.json | 이 모듈의 설정 |
위 경로는 IDE가 생성하는 모듈 프로젝트 기준입니다. HandStack 기본 배포본의 예제 경로와 동일하다고 가정하지 마세요. 서버가 읽는 계약 경로는 실행 환경의 설정과도 일치해야 합니다.
IDE 자체 프로젝트
IDE를 개발하는 C# 프로젝트 이름은 winform에서 stavlo로 변경되었습니다. 위의 업무 모듈 프로젝트와 구분하세요. 현재 소스 기준은 다음과 같습니다.
| 항목 | 이름·경로 |
|---|---|
| 솔루션 디렉터리·파일 | qcn.winform/, winform.slnx — 변경 없음 |
| C# 프로젝트 | 1.DesktopHost/stavlo/stavlo.csproj |
| 네임스페이스·어셈블리 | Stavlo · stavlo |
| 실행 파일 | Windows: stavlo.exe, macOS·Linux: stavlo |
| Velopack 배포 패키지 ID | Stavlo — 이전 이름은 HandStack.IDE |
소스 경로는 솔루션 루트 기준입니다. 새 패키지의 Windows 설치 파일명은 Stavlo-win-Setup.exe입니다. 기존 배포 파일은 이전 이름으로 남아 있을 수 있으므로, 파일명이나 주소를 직접 치환하지 말고 IDE 설치하기에서 실제 배포 정보를 확인하세요.
화면 원본
| 이름 | 저장 위치·규칙 |
|---|---|
config.pageMappings | 화면 스크립트의 거래 매핑. $this.config.pageMappings로 참조 |
data-designer-type | View Designer의 컴포넌트 유형 |
data-designer-root-count | View Designer의 여러 루트 요소 경계 |
data-designer-props | 실제 HTML 요소에 저장하는 디자이너 편집 속성 |
data-designer-id | 캔버스 전용. 저장 원본에 남기지 않음 |
data-studio-props | Tabler Studio의 편집 정보. View Designer 마커와 별개 |
data-studio-node | Studio 캔버스 전용. 저장·내보내기에서 제외 |
View Designer의 메타데이터를 별 도 JSON 파일이나 HTML <head>에 옮기지 않습니다. pageMappings도 HTML이 아닌 화면 스크립트가 기준입니다. 기존 HTML은 편집 전 원문을 보존하고, 소스보기 저장은 편집한 원문을 기준으로 합니다.
HTML과 같은 이름의 JS를 함께 관리한다면 두 파일의 변경을 함께 확인하세요. 같은 파일을 소스 탭과 디자이너에서 동시에 고친 경우 미저장 편집본을 먼저 보호합니다.
메뉴 연결
메뉴 정보 관리의 대상은 wwwroot/{모듈ID}/menus.json입니다. IDE 자체의 업무 메뉴 정의와 혼동하지 마세요.
| 필드 | 연결 대상·동작 |
|---|---|
DirectoryID | view/HDS/{DirectoryID}/ 폴더 |
ItemID | 해당 폴더의 {ItemID}.html |
MenuID | 메뉴 고유 식별자. 중복 불가 |
ParentMenuID, ParentMenuName, Step, SortingNo | 편집기가 트리 구조에 맞게 계산 |
ModuleID | 프로젝트와 공유하므로 메뉴 편집기에서는 읽기 전용 |
FnSearch, FnSave, FnDelete, FnPrint, FnExport, FnRefresh | 업무 셸의 기능 버튼 구성 |
메뉴 연결만으로 이벤트나 거래가 구현되지는 않습니다. 화면·JS·계약과 함께 검증하세요.
백업 대상
| 데이터 | 어디에 있나요? | 보존 방법 |
|---|---|---|
| 소스·화면·계약·메뉴 | 작업 영역의 실제 파일 | Git·파일 백업 |
| IDE UI 설정·탭 일부 | WebView 로컬 저장소 | 필요한 값 별도 기록 |
| 엔티티·앱 DB 모델 | WebView IndexedDB | 각 화면의 백업 JSON |
| SDLC 문서 | 앱 업무별 모델링 데이터 | SDLC 업무 백업. 앱 DB 백업과 별개 |
| Studio 프로젝트 | 사용자가 저장한 .project.json | 프로젝트 파일과 사용 자산 함께 백업 |
| DB 연결·이력·서버 연동 등 | IDE 실행 기준 data | IDE 종료 후 폴더 백업 |
| Velopack 설치본의 영속 파일 | {install-root}/data | current와 구분해 백업 |
폴더 하나를 복사했다고 모든 모델·설정이 포함되는 것은 아닙니다. 백업 파일에 연결 문자열이나 키가 포함될 수 있으므로 접근을 제한하세요. 복구는 인수인계 절차로 검증합니다.