2026, 새로운 도약을 시작합니다.

claude skills

https://www.anthropic.com/news/skills

프롬프트 엔지니어링 -> MCP -> 컨텍스트 엔지니어링 -> skills 로 진화하는것으로 보입니다.

skills 다음은  지능형 agent 가 될것 같습니다. (agent 가 skills 를 조합하여 업무를 처리하는 방식)

그누보드5 플러그인 개발을 위한 스킬을 잠시 생성해보았습니다.

claude skills 에 포함된 skill creator 로 생성하였습니다.

테스트를 하면서 skills.md 파일을 최적화 하는게 claude skills 의 핵심.

아래는 SKILLS.md  예제입니다.

name: gnuboard5-plugin-developer

description: 그누보드5 플러그인 개발을 위한 종합 도구 모음. 이 스킬은 사용자가 그누보드5 확장 플러그인을 개발하려고 할 때 사용되어야 합니다. 플러그인 구조 생성, 데이터베이스 설정, 관리자 페이지 통합, AJAX 핸들러 구현, 패키징 등 그누보드5 플러그인 개발의 모든 측면을 지원합니다.

그누보드5 플러그인 개발 스킬

개요

이 스킬은 그누보드5(GnuBoard5) 확장 플러그인 개발을 위한 종합적인 가이드와 도구를 제공합니다. 그누보드5의 플러그인 아키텍처, 보안 모범 사례, 그리고 배포 프로세스를 포함한 전체 개발 주기를 지원합니다.

사용 시점

이 스킬은 다음과 같은 상황에서 사용됩니다:

  • 그누보드5에 새로운 기능을 추가하는 플러그인 개발
  • 기존 그누보드5 기능을 확장하는 플러그인 생성
  • 관리자 설정 페이지가 포함된 플러그인 구현
  • AJAX 기반 동적 기능 플러그인 제작
  • 플러그인 패키징 및 배포 준비

플러그인 디렉토리 구조

그누보드5 플러그인은 다음과 같은 표준 디렉토리 구조를 따릅니다:

그누보드5_루트/
├── extend/                          # 자동 로드 파일 (진입점)
│   └── {plugin_name}.extend.php    # 플러그인 초기화 및 훅 등록
├── plugin/                         # 플러그인 메인 파일
│   └── {plugin_name}/
│       ├── {plugin_name}.lib.php   # 플러그인 라이브러리 함수
│       ├── authenticate.php        # 사용자 인증 페이지 (필요시)
│       └── *.php                    # 기타 플러그인 파일
├── adm/                            # 관리자 파일
│   └── {plugin_name}/              # 플러그인 관리자 디렉토리
│       ├── config.php              # 설정 페이지
│       ├── config_update.php      # 설정 저장 처리
│       └── ajax.{plugin_name}.php # AJAX 핸들러
└── docs/                           # 문서 (배포용)
    ├── README.md                   # 설치 가이드
    └── {plugin_name}.md            # 기술 문서

플러그인 개발 단계

1. 플러그인 초기화

플러그인 개발을 시작하기 위해 scripts/init_plugin.sh 스크립트를 실행합니다:

bash scripts/init_plugin.sh {plugin_name}

이 스크립트는 기본 디렉토리 구조와 템플릿 파일을 생성합니다.

2. 데이터베이스 테이블 설계

플러그인이 데이터를 저장해야 하는 경우, 전용 테이블을 생성합니다. 테이블명은 g5_{plugin_name}_config 형식을 따릅니다.

관리자 설정 페이지에서 테이블 자동 생성 코드를 포함합니다:

// 테이블 존재 확인 및 생성
if (!sql_query(" DESCRIBE g5_{plugin_name}_config ", false)) {
    sql_query(" CREATE TABLE IF NOT EXISTS g5_{plugin_name}_config (
        `id` INT(11) NOT NULL AUTO_INCREMENT,
        `use` TINYINT(1) NOT NULL DEFAULT '0',
        `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
        `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
        PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ", true);
}

3. extend 파일 구현

extend/{plugin_name}.extend.php 파일을 생성하여 플러그인의 진입점을 구현합니다. 이 파일은 그누보드5가 자동으로 로드합니다.

템플릿은 assets/extend_template.php를 참조하여 작성합니다.

주요 구현 사항:

  • 보안 체크: if (!defined('_GNUBOARD_')) exit;
  • 설정 로드 및 전역 변수 설정
  • 조건부 라이브러리 로드
  • 훅(Hook) 등록 및 처리

4. 라이브러리 함수 구현

plugin/{plugin_name}/{plugin_name}.lib.php에 재사용 가능한 함수를 구현합니다:

// 설정 조회 함수
function {plugin_name}_get_config() {
    static $config = null;
    if ($config === null) {
        $config = sql_fetch("SELECT * FROM g5_{plugin_name}_config WHERE id = 1");
    }
    return $config;
}

// 활성화 상태 확인 함수
function {plugin_name}_is_enabled() {
    $config = {plugin_name}_get_config();
    return ($config && $config['use']);
}

5. 관리자 페이지 구현

설정 페이지 (adm/{plugin_name}/config.php)

assets/admin_config_template.php를 기반으로 작성합니다. 필수 요소:

  • 권한 체크: auth_check_menu($auth, $sub_menu, 'r');
  • 최고관리자 체크: if ($is_admin != 'super')
  • 테이블 자동 생성 로직
  • 설정 폼 UI

설정 저장 처리 (adm/{plugin_name}/config_update.php)

입력값 검증 및 sanitization을 포함한 저장 처리를 구현합니다.

AJAX 핸들러 (adm/{plugin_name}/ajax.{plugin_name}.php)

assets/ajax_handler_template.php를 참조하여 action 기반 분기 처리를 구현합니다.

6. 사용자 페이지 구현

필요한 경우 plugin/{plugin_name}/ 디렉토리에 사용자 페이지를 구현합니다:

  • 인증 페이지
  • 처리 페이지
  • API 엔드포인트

7. 관리자 메뉴 통합

플러그인을 관리자 메뉴에 추가하기 위한 가이드를 README.md에 포함합니다:

// /adm/admin.menu100.php에 추가
$menu['menu100'][] = array(
    '100xxx',
    '{플러그인명} 설정',
    G5_ADMIN_URL . '/{plugin_name}/config.php',
    '{plugin_name}_config',
    1
);

8. 보안 고려사항

모든 파일에 다음 보안 체크를 포함합니다:

  • if (!defined('_GNUBOARD_')) exit; - 직접 접근 방지
  • 관리자 권한 체크
  • CSRF 토큰 검증
  • SQL 인젝션 방지 (prepared statements 또는 sql_real_escape_string)
  • XSS 방지 (htmlspecialchars, get_text 함수 사용)

9. 패키징 및 배포

scripts/package_plugin.sh 스크립트를 사용하여 배포용 ZIP 파일을 생성합니다:

bash scripts/package_plugin.sh {plugin_name}

이 스크립트는:

  • 필요한 파일을 수집
  • 올바른 디렉토리 구조로 구성
  • README.md 파일 생성/검증
  • 날짜가 포함된 ZIP 파일 생성

유용한 그누보드5 함수

플러그인 개발 시 자주 사용하는 그누보드5 내장 함수들은 references/gnuboard5_functions.md를 참조합니다.

템플릿 파일 활용

assets/ 디렉토리의 템플릿 파일들을 기반으로 빠르게 개발을 시작할 수 있습니다:

  • extend_template.php - extend 파일 템플릿
  • admin_config_template.php - 관리자 설정 페이지 템플릿
  • ajax_handler_template.php - AJAX 핸들러 템플릿
  • lib_template.php - 라이브러리 함수 템플릿

테스트 및 디버깅

개발 중 다음 사항을 확인합니다:

  • PHP 문법 검사: php -l {file.php}
  • 에러 로그 확인: /data/log/ 디렉토리
  • 브라우저 개발자 도구에서 AJAX 요청 확인
  • 데이터베이스 쿼리 로그 확인

배포 체크리스트

배포 전 확인 사항:

  • [ ] 모든 파일에 보안 체크 포함
  • [ ] 관리자 권한 검증 구현
  • [ ] 데이터베이스 테이블 자동 생성 코드 포함
  • [ ] README.md에 설치 가이드 작성
  • [ ] 관리자 메뉴 추가 방법 문서화
  • [ ] 테스트 파일 제거
  • [ ] 패키징 스크립트로 ZIP 파일 생성
|

댓글 8개

@리자  sir 위지윅 에디터는 정말 답이 없는걸까요?

텍스트를 공유하기 위해서 html 로 만들어서 다시 적용하고 있습니다. 

(editor.js 커스텀해서 쓰시는걸 추천드립니다. claude sonnet 4.5 에서 커스텀도 잘해줍니다.) 

클로드로  플러그인 개발할 수 있는 바이블인가요?

@nCrom 바이블은 아니고, 제 플러그인 개발할때 제가 쓰는 스킬을 정리한거죠. 가져다가 쓰면 제 스킬을 쓰실수 있게 됩니다.

클로드가 이거랑 메모리 및 메모리 공유 기능을 만들었는데.  이러면 개발자 복제가 이론적으로 가능하게되죠. 아직은 실험적이겠지만 내년에는 일상이 될겁니다. 

매트릭스에서 스킬 배우는거랑 빗.ㅅ한 세상이 올지도...(일론 머스크의 뉴럴링크가 겷합되다면)

@솔그루 오... 멋집니다. 굿굿!!

@솔그루
 

일상치 않은 새로운 '실행 엔진 구조' 소개에 값진 경험까지~~

저 같은 범인은 흉내내기도 어려운 범주군요!!! ~~

한 수 배워갑니다.  감사합니다.  (●'◡'●) 

@glitter0gim 저는 그냥 클로드가 만든거 실행만 해봤습니다.

실제 저런걸 만드는 대형 LLM 회사의 엔지니어가 대단한거죠.

연봉 수백억 준다는 사실이 가끔 이해가 갈때도 있습니다. 

@솔그루

느낌 좋은 사용 경험 공유라고만 생각치 않아요!

퍼나르고픈 내용입니다. 좋습니다!

. . .
아~ AI 게시판만, 메일 피드가 있나요?


61fb155907603c28b91164dcb0380c85_1761729580_6477.png 

나눠주셔서 감사합니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

AI

번호 제목 글쓴이 날짜 조회
358 3일 전 조회 13
357 1주 전 조회 86
356 1주 전 조회 94
355 1주 전 조회 120
354 1주 전 조회 218
353 2주 전 조회 137
352 2주 전 조회 126
351 2주 전 조회 160
350 2주 전 조회 63
349 2주 전 조회 70
348 2주 전 조회 111
347 2주 전 조회 188
346 2주 전 조회 167
345 3주 전 조회 166
344 3주 전 조회 89
343 3주 전 조회 221
342 3주 전 조회 145
341 4주 전 조회 215
340 1개월 전 조회 238
339 1개월 전 조회 109
338 1개월 전 조회 149
337 1개월 전 조회 263
336 1개월 전 조회 256
335 1개월 전 조회 188
334 1개월 전 조회 195
333 1개월 전 조회 215
332 1개월 전 조회 323
331 1개월 전 조회 341
330 1개월 전 조회 284
329 1개월 전 조회 290
🐛 버그신고