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

빠른 시작

플러그인 개발 개요
첫 플러그인 작성
프로젝트 디렉토리 구조

서버사이드 개발

개요
Plugin 플러그인
Collections 데이터 테이블
Database 데이터베이스 작업
DataSourceManager 데이터 소스 관리
ResourceManager 리소스 관리
ACL 권한 제어
Middleware 미들웨어
Cache 캐시
Event 이벤트
Context 요청 컨텍스트
Migration 업그레이드 스크립트
Logger 로그
I18n 국제화
Command 커맨드 라인
CronJobManager 예약 작업 관리
Test 테스트

클라이언트사이드 개발

개요
Plugin 플러그인
Context 컨텍스트
Router 라우터
ACL 권한 제어
DataSourceManager 데이터 소스 관리
Resource 리소스
Request 요청
Styles & Themes 스타일 & 테마
Logger 로그
I18n 국제화
Test 테스트

기타

플러그인 업그레이드 가이드
언어 목록
의존성 관리
빌드
Next Page플러그인 개발 개요
TIP

이 문서는 AI로 번역되었습니다. 부정확한 내용이 있을 경우 영어 버전을 참조하세요

#플러그인 개발 개요

NocoBase는 마이크로커널 아키텍처를 채택하고 있으며, 코어는 플러그인 생명주기 스케줄링, 의존성 관리, 기본 기능 캡슐화만 담당합니다. 모든 비즈니스 기능은 플러그인 형태로 제공됩니다. 따라서 플러그인의 조직 구조, 생명주기, 관리 방식을 이해하는 것이 NocoBase를 맞춤 설정하는 첫걸음입니다.

#핵심 개념

  • 플러그 앤 플레이: 필요에 따라 플러그인을 설치, 활성화 또는 비활성화할 수 있으며, 코드를 수정하지 않고도 비즈니스 기능을 유연하게 조합할 수 있습니다.
  • 풀스택 통합: 플러그인은 일반적으로 서버 측과 클라이언트 측 구현을 모두 포함하여 데이터 로직과 UI 상호작용 간의 일관성을 보장합니다.

#플러그인 기본 구조

각 플러그인은 독립적인 npm 패키지이며, 일반적으로 다음과 같은 디렉터리 구조를 가집니다:

plugin-hello/
├─ package.json          # 플러그인 이름, 의존성 및 NocoBase 플러그인 메타데이터
├─ client.js             # 런타임 로드를 위한 프런트엔드 빌드 결과물
├─ server.js             # 런타임 로드를 위한 서버 측 빌드 결과물
├─ src/
│  ├─ client/            # 클라이언트 측 소스 코드 (블록, 액션, 필드 등을 등록할 수 있습니다)
│  └─ server/            # 서버 측 소스 코드 (리소스, 이벤트, 명령줄 등을 등록할 수 있습니다)

#디렉터리 규칙 및 로드 순서

NocoBase는 기본적으로 플러그인을 로드하기 위해 다음 디렉터리를 스캔합니다:

my-nocobase-app/
├── packages/
│   └── plugins/          # 개발 중인 플러그인 (최고 우선순위)
└── storage/
    └── plugins/          # 컴파일된 플러그인 (예: 업로드되거나 게시된 플러그인)
  • packages/plugins: 로컬 플러그인 개발에 사용되는 디렉터리로, 실시간 컴파일 및 디버깅을 지원합니다.
  • storage/plugins: 상용 버전 또는 서드파티 플러그인과 같이 컴파일된 플러그인을 저장합니다.

#플러그인 생명주기 및 상태

플러그인은 일반적으로 다음 단계를 거칩니다:

  1. 생성 (create): CLI를 통해 플러그인 템플릿을 생성합니다.
  2. 가져오기 (pull): 플러그인 패키지를 로컬로 다운로드하지만, 아직 데이터베이스에 기록되지 않은 상태입니다.
  3. 활성화 (enable): 처음 활성화할 때 "등록 + 초기화"를 실행하며, 다시 활성화할 때는 로직만 로드합니다.
  4. 비활성화 (disable): 플러그인 실행을 중지합니다.
  5. 제거 (remove): 시스템에서 플러그인을 완전히 제거합니다.
TIP
  • pull은 플러그인 패키지를 다운로드하는 역할만 하며, 실제 설치 과정은 첫 번째 enable 시점에 트리거됩니다.
  • 플러그인이 pull되었지만 활성화되지 않았다면, 로드되지 않습니다.

#CLI 명령어 예시

# 1. 플러그인 스켈레톤 생성
yarn pm create @my-project/plugin-hello

# 2. 플러그인 패키지 가져오기 (다운로드 또는 링크)
yarn pm pull @my-project/plugin-hello

# 3. 플러그인 활성화 (처음 활성화 시 자동 설치)
yarn pm enable @my-project/plugin-hello

# 4. 플러그인 비활성화
yarn pm disable @my-project/plugin-hello

# 5. 플러그인 제거
yarn pm remove @my-project/plugin-hello

#플러그인 관리 인터페이스

브라우저에서 플러그인 관리자에 접속하여 플러그인을 직관적으로 확인하고 관리할 수 있습니다:

기본 URL: http://localhost:13000/admin/settings/plugin-manager

플러그인 관리자