본문으로 건너뛰기
가이드

App 패키지 만들기

Workshop App을 생성하고 독립 저장소로 작업을 시작합니다.

App 패키지 만들기

실습용 Workshop App을 만듭니다. 빠른 시작을 마친 뒤 Core 루트에서 실행하세요. packages/workshop이 없어야 합니다. 첫 명령의 생성 예정 목록을 확인하고 실제 생성 명령으로 진행합니다.

개발 호스트를 준비할 때 Core 루트의 auth.json에 본인의 GitHub 토큰을 설정합니다. 이 페이지부터 들어왔다면 빠른 시작의 인증 준비부터 마치세요. 새 App의 의존성을 설치할 때도 같은 설정을 사용합니다.

코드 예시
Shell
task artisan -- nexia-apps:make-package-app Workshop --family=other --key=workshop --table-prefix=wsp --icon=box --sort=990 --dry-run
task artisan -- nexia-apps:make-package-app Workshop --family=other --key=workshop --table-prefix=wsp --icon=box --sort=990
git -C packages/workshop init -b feat/workshop-app

새 App 키는 로컬 패키지와 Composer 설치 App에서 사용하지 않는 값이어야 합니다. 키나 packages/<app-key> 경로가 이미 있으면 파일을 쓰기 전에 생성이 실패합니다. 기존 App 위에서 생성 명령을 다시 실행하지 말고 새 키를 선택하세요.

확인

코드 예시
Shell
git -C packages/workshop rev-parse --show-toplevel
task artisan -- nexia-apps:doctor-package-app workshop

Git 루트가 Workshop 디렉터리인지 확인합니다. 활성화 전에는 런타임 등록 경고가 나올 수 있습니다. App map 생성만으로 Composer 설치가 되지는 않습니다.

생성 결과에는 Manifest, Service Provider, Overview 화면, Route, 번역 파일과 테스트·문서 기준선이 들어 있습니다. 아직 업무 모델은 없으며 호스트 활성화와 테넌트 설치도 실행되지 않았습니다.

다음은 Resource 만들기입니다. Note를 추가하고 테넌트 화면에서 열어 봅니다. 이 단계 이후 문서의 src/Models/Note.php 같은 파일 경로는 App 루트 기준입니다. task 명령만 Core 루트에서 실행합니다.

제품 App의 이름 정하기

실제 제품에는 실습 이름을 그대로 쓰지 말고 업무 책임에 맞는 식별자를 정하세요.

항목실습값결정할 내용
app_keyworkshopRoute·권한·Resource의 영구 식별자, lower kebab-case
app_table_prefixwsp소유 테이블의 접두어, lower snake_case
app_familyother런처의 표시 그룹
표시 이름Workshop사용자에게 보이는 이름, --display-name으로 지정

core, host, platform, shell, tenant, process, apps는 예약된 키입니다. 배포 이후 키를 바꾸려면 연관 계약을 함께 변경해야 하고 테이블 접두어 변경에는 마이그레이션이 필요합니다. Family의 이름과 순서는 호스트가 관리합니다.

별도로 설치·배포할 업무 책임이 있을 때 App을 나눕니다. 기존 업무의 화면이나 레코드를 하나 더 만드는 일이라면 해당 App에 추가하면 됩니다. 다른 App의 레코드를 참조하는 것은 가능합니다. 두 App이 같은 트랜잭션으로 하나의 업무 규칙을 지켜야 한다면 소유 경계를 먼저 점검하세요.

--prerequisite=<app-key>는 여러 번 지정할 수 있으며 설치 순서를 정합니다. 데이터 접근 권한은 생기지 않습니다. 데이터 전달 방식은 App 간 연동 방식 선택하기에서 고릅니다.

생성 후 열어 볼 파일

App 루트 기준 경로수정할 내용
composer.jsonApp 식별자, SDK 의존성, Core 호환 범위
src/WorkshopAppManifest.phpContribution, 테넌트 마이그레이션, Overview
src/WorkshopServiceProvider.php패키지 등록
resources/js/index.ts프런트엔드 등록
resources/lang/{en,ko,zh}.json화면 문구
docs/README.md, docs/DOMAIN-MODEL.md, docs/PAGES.md업무 책임, 데이터 모델, 메뉴 구성

Route와 프런트엔드 진입점의 generator marker는 남겨 두세요. Resource를 추가할 때 사용합니다. Resource가 존재한다고 반드시 메뉴에 노출해야 하는 것은 아닙니다. 의도한 진입점은 docs/PAGES.md에 기록합니다.

전체 선언 형식은 App Manifest 계약, 생성기 옵션은 Artisan 명령어을 참고하세요.

원본 위치: docs/developers/content/ko/building-apps/create-an-app.md