애드온 시스템
애드온 시스템 1.0.1 가이드
애드온 시스템 작동 방식 변경 및 업데이트 안내
1.0.1 변경된 사항
- 실행 진입점 변경:
addon.json
의 entry 정의 방식에서애드온 폴더/addon.extend.php
를 자동 로딩하는 방식으로 변경 - 설정 관리 강화:
addon.json
에 정의한addon_setting
항목을 관리자 페이지에서 직접 수정 가능
애드온 시스템이란?
기존 extend 환경에서 실행되는 프로그램(기능) 개발 시 코어 수정을 최소화하기 위해 설계된 모듈형 확장 시스템입니다.
장점
- 관리 편의성: 관리자 페이지에서 ON/OFF 토글 제공 (라우터 기반)
- 독립적 관리: 애드온별 전용 폴더로 코드·리소스 분리
- DB 의존 최소화: 민감정보 제외 설정을
addon.json
으로 관리 - 확장성: 코어 영향 최소화로 안정적 기능 추가
단점
- 초기 세팅 부담: 각 애드온에
addon.json
작성 필요 - 학습 곡선: 기존 extend 방식 대비 구조 변화
- 운영 정책 필요: 네이밍/실행 순서 기준 수립 필요
디렉토리 구조
그누보드5/
└─ extend/
└─ rb_addon.extend.php
└─ rb/
└─ rb.addon/
└─ sample-addon/
├─ addon.json
├─ addon.extend.php
└─ adm/
└─ sample_list.php
(필수) addon.json
파일 구조
{ "name": "댓글 보상 & 자동 답댓글", /*애드온 이름*/ "description": "사용자가 댓글을 달면 포인트를 지급하고 시스템 계정으로 답댓글을 남깁니다.", /*애드온 설명*/ "version": "1.0.0", /*애드온 버전*/ "developer": { "name": "HUMHAE", /*애드온 개발자*/ "site": "https://example.com" /*애드온 개발자 웹사이트*/ }, "addon_setting": { "description": "사용가능한 치환문구 : {nick} : 닉네임, {point} : 지급포인트", "is_random": { "title": "랜덤지급여부", "value": true }, "min_point": { "title": "최소 지급 포인트", "value": 5 }, "max_point": { "title": "최대 지급 포인트", "value": 50 }, "is_comment": { "title": "포인트 지급 댓글 사용 여부", "value": true }, "comment_bot_name": { "title": "포인트 지급 댓글 작성자 닉네임 (ex. 댓글봇)", "value": "알림봇" }, "comment_format": { "title": "답댓글 양식", "value": "{nick}님, 댓글 참여 보상으로 {point}포인트가 지급되었습니다. 감사합니다!" } }, "admin_menu": { "000905": { /* 메뉴관리번호(그누보드 규칙) */ "title": "애드온 설정", /* 관리자 메뉴명 */ "file": "adm/sample_list.php" /* 애드온 내부 경로 */ } } }
※ 관리자 메뉴 > 빌더설정 > 애드온관리 목록 정렬은 위 addon.json
정보를 기준으로 표시됩니다.
핵심 키 설명
addon_setting
애드온 사용자가 관리자 설정 페이지에서 직접 수정 가능한 값들을 나열합니다. 값 타입에 따라 자동으로 입력 폼(숫자, 체크박스, 텍스트)이 구성됩니다.
설정값 읽기 예:
<?php // addon.extend.php $bot = rb_setting_local('comment_bot_name'); $fmt = rb_setting_local('comment_format'); // ... ?>
민감 정보(API 키 등)는 PHP 상수/설정로 직접 선언하고, 간단한 옵션 위주로 addon.json
을 활용하세요.
admin_menu
관리자 페이지에 메뉴가 필요한 애드온은 admin_menu
를 정의하세요.
- 메뉴관리번호: 그누보드 관례 사용 (예: 000905)
- file: 애드온 폴더 내부 경로만 허용 (예:
adm/sample_list.php
) - title: 메뉴에 표시될 이름
마이그레이션 가이드 (1.0.0 → 1.0.1)
- 각 애드온 폴더에
addon.extend.php
생성 (기존 entry 파일 내용 이관) - 기존
addon.json
에서 entry 관련 키가 있었다면 삭제 또는 무시 - 사용자 설정이 필요한 옵션을
addon_setting
블록에 선언 - 관리자 전용 화면이 있다면
admin_menu
에 메뉴 등록하고 파일을 애드온 폴더 내부adm/
하위에 배치 - 관리자 > 빌더설정 > 애드온관리에서 ON/OFF 및 설정값 저장 확인
참고
애드온 목록의 설정 버튼은 addon.json
내 addon_setting
이 정의된 경우에만 활성화됩니다.
베스트 프랙티스 & 주의사항
- 네이밍 규칙 수립: 전역 함수/상수/파일명에 접두사 사용 (
rb_
등) - 실행 순서 충돌 방지: 훅 사용 시 조건 분기(게시판/사용자/상태) 명확화
- 민감 정보는 코드 내 정의: 절대 JSON에 저장하지 않기
- 설정 검증: 관리자 입력값에 대해 형/범위 검증을 수행
- 업데이트 시 변경 로그 유지: 문제 발생 시 롤백 지점 확보
참고
애드온 목록의 설정 버튼은 addon.json
내 addon_setting
이 정의된 경우에만 활성화됩니다.