본문으로 건너뛰기
개념

Nexia 시스템 개요

App 요청이 Shell·SDK·Core를 거쳐 실행되는 과정과 개발자가 수정할 영역을 설명합니다.

Nexia 시스템 개요

App이 실행되는 흐름

App은 Nexia의 Laravel 호스트 안에서 실행하는 독립 버전 Composer 패키지입니다. 개발자는 업무 로직과 React 화면을 작성하고, 호스트 기능은 SDK로 호출합니다. 호출을 처리하는 구현은 Core가 제공합니다.

App 열기 → Shell이 화면 로드 → 화면에서 API 요청 → Core가 테넌트·행위자 확인 → App이 권한과 업무 규칙 검사 후 처리 → 응답으로 화면 갱신

영역담당 기능개발자가 수정할 곳
App모델·업무 규칙·Policy·API·화면·번역해당 App 저장소
App SDK공용 서비스·컴포넌트·타입·contribution 인터페이스App의 import와 선언. 보통 SDK 소스 수정은 불필요
Core테넌트 격리·인증·권한 처리 기반·공용 런타임·화면 조합일반적인 App 기능 추가에는 수정 불필요

App 패키지 만들기 다음에 Resource 만들기를 진행하세요. 플랫폼 기능이 필요하면 App SDK 사용하기에서 사용할 기능을 찾습니다.

Note 하나를 저장하기까지

실습 생성기는 Workshop App 안에 Note 모델, Policy, controller, Resource Module, Route, 프런트엔드 파일을 만듭니다. 같은 Resource를 다루지만 각 파일이 맡는 일은 다릅니다.

단계처리 주체결과
노트 화면 열기Shell과 App Surface등록한 React 화면 표시
목록 요청App Surface와 controller목록 조건을 백엔드에 전달
요청자 확인Core HTTP 미들웨어테넌트·행위자·해당 요청 컨텍스트 확립
볼 수 있는 노트 조회SDK 권한 계약을 쓰는 App 쿼리허용된 레코드만 응답
노트 저장App 입력 검증·Policy·모델업무 규칙을 검사하고 테넌트 데이터 저장
화면 갱신App 쿼리와 화면실제 저장 결과 표시

Resource descriptor는 이 기능의 공개 메타데이터를 선언합니다. 업무 규칙을 작성하거나 App 개요 화면을 구성하거나 서버 입력 검증을 대신하지 않습니다. 발견 과정은 확장 모델, 화면 구현은 App 화면 만들기에서 이어집니다.

Central과 테넌트

실행 영역담당
Central공개 사이트·개발자 문서·테넌트 생성·플랫폼 관리
테넌트고객별 Shell·App API·업무 데이터·권한

App 화면은 테넌트 도메인에서 엽니다. Central 화면에는 테넌트 업무 컨텍스트가 자동으로 생기지 않습니다. 현재 런타임은 테넌트별 데이터베이스에 업무 데이터를 저장하며, 조직 선택은 그 테넌트 안에서만 적용됩니다. 테넌트와 컨텍스트에서 구체적인 범위를 확인하세요.

Core·Shell·SDK·App과 주변 서비스의 연결.

App은 Laravel 런타임을 함께 사용합니다. App 설치마다 별도 서버가 생기지는 않습니다. 선택 서비스인 Agent Gateway는 별도 런타임에서 위임된 권한으로 보호된 테넌트 API를 호출합니다. 영속 업무 데이터는 PostgreSQL에 두고, Redis·검색 인덱스·브라우저 상태는 각각 필요한 보조 역할을 맡습니다.

패키지 경계 지키기

PHP 호스트 계약은 Nexia\*로 사용합니다. 프런트엔드 타입과 순수 유틸리티는 @nexia/sdk, 호스트에 연결된 컴포넌트·훅·서비스는 /host에서 가져옵니다. App은 Core의 App\*, Core 프런트엔드 별칭, 다른 App을 import하지 않습니다.

다른 App의 데이터가 필요하면 App 간 연동 방식 선택하기에서 참조와 이벤트 중 맞는 경로를 고르세요. 호스트 서비스 계약은 특정 App이 없어도 의미가 유지되어야 합니다.

생성기가 표준 연결을 준비해도 업무 판단은 App이 맡습니다. 로그인·설치·메뉴 표시는 권한 부여가 아닙니다. 판단 기준은 권한과 역할에 있습니다.

더 알아보기

원본 위치: docs/developers/content/ko/architecture/system-overview.md