logologo
시작
가이드
개발
플러그인
API
홈
English
简体中文
日本語
한국어
Español
Português
Deutsch
Français
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
시작
가이드
개발
플러그인
API
홈
logologo

멀티 애플리케이션

개요
공유 메모리 모드
멀티 환경 모드
멀티 스페이스
Previous Page개요
Next Page멀티 환경 모드
AI 번역 알림

이 문서는 AI에 의해 번역되었습니다. 정확한 정보는 영어 버전을 참조하세요.

#공유 메모리 모드

앱 수퍼바이저Enterprise Edition+

#소개

사용자가 비즈니스를 애플리케이션 수준에서 분리하고 싶지만, 복잡한 배포 및 운영 아키텍처를 도입하고 싶지 않을 때 공유 메모리 다중 애플리케이션 모드를 사용할 수 있습니다.

이 모드에서는 하나의 NocoBase 인스턴스 내에서 여러 애플리케이션을 동시에 실행할 수 있습니다. 각 애플리케이션은 독립적이며, 독립적인 데이터베이스에 연결할 수 있고, 개별적으로 생성, 시작 및 중지할 수 있습니다. 하지만 동일한 프로세스와 메모리 공간을 공유하므로 사용자는 여전히 하나의 NocoBase 인스턴스만 유지 관리하면 됩니다.

#사용 설명서

#환경 변수 설정

다중 애플리케이션 기능을 사용하기 전에 NocoBase 시작 시 다음 환경 변수가 설정되어 있는지 확인하십시오:

APP_DISCOVERY_ADAPTER=local
APP_PROCESS_ADAPTER=local

#애플리케이션 생성

시스템 설정 메뉴에서 「애플리케이션 관리자(App Supervisor)」를 클릭하여 애플리케이션 관리 페이지로 들어갑니다.

「새로 만들기(Add New)」 버튼을 클릭하여 새 애플리케이션을 생성합니다.

#설정 항목 설명

설정 항목설명
애플리케이션 이름인터페이스에 표시되는 애플리케이션 이름
애플리케이션 식별자애플리케이션 식별자, 전역적으로 고유해야 함
시작 방식- 첫 방문 시 시작: 사용자가 URL을 통해 해당 하위 애플리케이션에 처음 접속할 때 시작
- 메인 애플리케이션과 함께 시작: 메인 애플리케이션이 시작될 때 하위 애플리케이션도 함께 시작(메인 애플리케이션의 시작 시간이 늘어남)
환경공유 메모리 모드에서는 로컬 환경인 local만 사용할 수 있음
데이터베이스 연결애플리케이션의 메인 데이터 소스를 설정하는 데 사용되며, 다음 세 가지 방식을 지원합니다:
- 새 데이터베이스: 현재 데이터베이스 서비스를 재사용하여 독립적인 데이터베이스 생성
- 새로운 데이터 연결: 다른 데이터베이스 서비스에 연결
- Schema 모드: 현재 메인 데이터 소스가 PostgreSQL인 경우, 애플리케이션을 위한 독립적인 Schema 생성
업그레이드연결된 데이터베이스에 낮은 버전의 NocoBase 애플리케이션 데이터가 있는 경우, 현재 애플리케이션 버전으로 자동 업그레이드 허용 여부
JWT 비밀키애플리케이션을 위한 독립적인 JWT 비밀키를 자동으로 생성하여, 애플리케이션 세션이 메인 애플리케이션 및 다른 애플리케이션과 독립되도록 보장
사용자 정의 도메인애플리케이션을 위한 독립적인 접속 도메인 설정

#애플리케이션 시작

시작(Start) 버튼을 클릭하여 하위 애플리케이션을 시작할 수 있습니다.

생성 시 _“첫 방문 시 시작”_을 선택한 경우, 첫 방문 시 자동으로 시작됩니다.

#애플리케이션 접속

접속(Visit) 버튼을 클릭하면 새 탭에서 해당 하위 애플리케이션이 열립니다.

기본적으로 /apps/:appName/admin/을 사용하여 하위 애플리케이션에 접속합니다. 예:

http://localhost:13000/apps/a_7zkxoarusnx/admin/

또한, 하위 애플리케이션에 독립적인 도메인을 설정할 수 있으며, 도메인을 현재 IP로 해석해야 합니다. Nginx를 사용하는 경우 Nginx 설정에도 도메인을 추가해야 합니다.

#애플리케이션 중지

중지(Stop) 버튼을 클릭하여 하위 애플리케이션을 중지할 수 있습니다.

#애플리케이션 상태

목록에서 각 애플리케이션의 현재 상태를 확인할 수 있습니다.

#애플리케이션 삭제

삭제(Delete) 버튼을 클릭하여 애플리케이션을 제거할 수 있습니다.

#자주 묻는 질문

#1. 플러그인 관리

다른 애플리케이션에서 사용할 수 있는 플러그인은 메인 애플리케이션과 동일(버전 포함)하지만, 플러그인을 독립적으로 설정하고 사용할 수 있습니다.

#2. 데이터베이스 격리

다른 애플리케이션은 독립적인 데이터베이스를 설정할 수 있습니다. 애플리케이션 간에 데이터를 공유하려면 외부 데이터 소스를 통해 구현할 수 있습니다.

#3. 데이터 백업 및 마이그레이션

현재 메인 애플리케이션의 데이터 백업은 다른 애플리케이션의 데이터를 포함하지 않으며(애플리케이션 기본 정보만 포함), 다른 애플리케이션 내에서 수동으로 백업 및 마이그레이션해야 합니다.

#4. 배포 및 업데이트

공유 메모리 모드에서 다른 애플리케이션의 버전은 메인 애플리케이션을 따라 자동으로 업그레이드되어 애플리케이션 버전의 일관성이 자동으로 보장됩니다.

#5. 애플리케이션 세션

  • 애플리케이션이 독립적인 JWT 비밀키를 사용하는 경우, 애플리케이션 세션은 메인 애플리케이션 및 다른 애플리케이션과 독립됩니다. 동일한 도메인의 하위 경로를 통해 서로 다른 애플리케이션에 접속하는 경우, 애플리케이션 TOKEN이 LocalStorage에 캐시되므로 애플리케이션 간 전환 시 다시 로그인해야 합니다. 더 나은 세션 격리를 위해 각 애플리케이션에 독립적인 도메인을 설정하는 것이 좋습니다.
  • 애플리케이션이 독립적인 JWT 비밀키를 사용하지 않는 경우, 메인 애플리케이션의 세션을 공유하며 동일한 브라우저에서 다른 애플리케이션에 접속한 후 메인 애플리케이션으로 돌아올 때 다시 로그인할 필요가 없습니다. 하지만 보안상의 위험이 존재하며, 서로 다른 애플리케이션의 사용자 ID가 중복될 경우 사용자가 다른 애플리케이션의 데이터에 무단으로 접근할 수 있습니다.