코어 composer update 69 패키지(Laravel 12.69.1 · Reverb 1.11.1 · Scout 11.6.1 · Monolog 3.11 · Symfony 7.4.18 등, 메이저 상향은 보류). 번들 확장 16개 lock content-hash 재동기(신규 2), 코어·이커머스 vendor-bundle.zip 재빌드(g7_version 7.0.11). vendor-bundle:build-all --check 가 미설치 확장을 「소스 경로 없음」으로 건너뛰어 _bundled 의 stale 번들이 점검을 통과하던 결함을 수정 — 판정 파일을 빌드·해시와 같은 규칙(_bundled 우선, 활성 폴백)으로 고르고 회귀 테스트 2건 추가. 회귀 점검: 변경 로그 대조 9축 + PHPUnit 4배치 + Chrome MCP 매트릭스 11축 통과.
그누보드7 Hello 모듈
그누보드7 모듈 · gnuboard7-hello_module 학습용 최소 샘플 모듈 (Memo CRUD)
소개 · 주요 기능 · 동작 방식 · 요구 사항 · 설치 · 관리자 설정 · 사용 방법 · 다른 확장과의 연동 · 문서 · 트러블슈팅 · 변경 이력 · 라이선스
소개
그누보드7 모듈이 어떻게 생겼는지 보여주는 학습용 샘플입니다. 실제 업무에 쓰는 기능은 없고, 메모를 등록·수정·삭제하는 가장 단순한 화면 하나가 전부입니다.
모듈을 처음 만들어 보는 개발자가 "무엇을 어디에 두어야 하는가" 를 파악하는 데 쓰거나, 새 모듈을 시작할 때 복제해서 이름만 바꾸는 출발점으로 씁니다.
관리자 화면의 모듈 목록에는 나타나지 않습니다(학습용이 운영 목록에 섞이지 않도록). 명령줄로는 정상적으로 설치·활성화할 수 있으며, 설치하면 관리자에 "Hello 메모" 메뉴가 생깁니다.
이 샘플은 짧게 유지하는 것이 원칙입니다 — 기능이 늘어나면 구조를 보러 온 사람이 읽어야 할 코드가 함께 늘어나기 때문입니다.
주요 기능
| 영역 | 설명 |
|---|---|
| 메모 관리 | 제목·내용으로 메모를 등록·수정·삭제하는 관리자 화면 |
| 메모 목록 | 방문자 화면용 목록 레이아웃 1개 (사용자 템플릿 연동 예시) |
| 권한 | 메모 관리 권한 4종(읽기·생성·수정·삭제) |
| 다국어 | 한국어·영어 (관리자 문구와 화면 문구 각각) |
| 확장 지점 | 메모 생성 시점 알림용 연결점 1개 |
| 테스트 | 기능 테스트와 단위 테스트 예시 |
동작 방식
flowchart LR
A[운영자] -->|메모 등록| ADM[관리자 화면]
ADM --> SVC[메모 처리]
SVC --> DB[(메모 데이터)]
SVC -->|생성 알림| L[연결된 확장]
T[사용자 템플릿] -->|목록 조회| SVC
운영자가 메모를 등록하면 저장과 함께 "메모가 생성되었다" 는 신호가 나갑니다. 다른 확장은 그 신호를 받아 자기 일을 할 수 있습니다 — 같이 제공되는 학습용 플러그인이 그 예입니다.
실제 모듈도 구조는 같고, 다루는 대상과 규모만 다릅니다.
요구 사항
| 항목 | 값 |
|---|---|
| 그누보드7 코어 | >=7.0.0 |
| PHP | ^8.2 |
설치
# 번들 설치 (코어에 동봉된 소스에서 설치)
php artisan module:install gnuboard7-hello_module
# 활성화
php artisan module:activate gnuboard7-hello_module
# 업데이트 (번들 소스 기준 강제 반영)
php artisan module:update gnuboard7-hello_module --force
관리자 설정
별도의 관리자 설정 항목이 없습니다.
설정 항목이 없습니다. 이 샘플은 설정 화면 없이도 모듈의 계층 구조를 보여줄 수 있어 일부러 두지 않았습니다.
설정 화면이 있는 모듈의 예를 보려면 함께 제공되는 학습용 플러그인
(gnuboard7-hello_plugin)을 참고합니다 — 그쪽에 설정 스키마와 설정 화면 예시가 있습니다.
사용 방법
설치해 보기: 관리자 화면에는 나타나지 않으므로 명령줄로 설치합니다.
php artisan module:install gnuboard7-hello_module
php artisan module:activate gnuboard7-hello_module
활성화하면 관리자에 "Hello 메모" 메뉴가 생깁니다. 메모를 몇 건 등록해 보면 목록·작성 화면과 권한이 어떻게 맞물리는지 확인할 수 있습니다.
새 모듈의 출발점으로 쓰기: 이 디렉토리를 복제한 뒤 식별자·네임스페이스·도메인 이름을 모두
바꾸고, hidden 표시를 지우면 새 모듈이 됩니다. 자세한 절차는 확장 시스템 문서의 "학습용 샘플
확장" 항목을 참고합니다.
함께 보면 좋은 것: 학습용 플러그인·관리자 템플릿·사용자 템플릿 샘플이 함께 제공됩니다. 넷을 모두 설치하면 모듈이 데이터를, 템플릿이 화면을, 플러그인이 부가 동작을 담당하는 구조를 한 번에 볼 수 있습니다.
다른 확장과의 연동
이 확장이 의존하는 확장
없음 — 코어만으로 동작합니다.
이 확장에 의존하는 확장 (이 확장을 비활성화하면 함께 영향을 받습니다)
| 확장 | 유형 | 요구 버전 |
|---|---|---|
gnuboard7-hello_plugin |
플러그인 | >=0.1.0 |
gnuboard7-hello_user_template |
템플릿 | >=0.1.0 |
문서
| 문서 | 내용 | 상태 |
|---|---|---|
| docs/README.md | 문서 통합 목차와 실측 집계 | ✅ |
| docs/architecture.md | 설계 의도·계층 지도·디렉토리 맵 | ✅ |
| docs/extension-points.md | 발행/구독 훅·미들웨어·채널·스케줄 | ✅ |
| docs/data-model.md | 모델·소유 테이블·마이그레이션·Enum | ✅ |
| docs/settings.md | 설정 스키마·권한·메뉴·라우트·의존 관계 | ✅ |
| docs/frontend.md | 레이아웃·액션 핸들러·전역 진입점·에셋 | ✅ |
| docs/editor-spec.md | 레이아웃 편집기에 선언한 팔레트·컨트롤·샘플 데이터 | ✅ |
| docs/api/ | API 레퍼런스 (엔드포인트별 파라미터·응답 필드) | ✅ |
| CHANGELOG.md | 변경 이력 | ✅ |
트러블슈팅
| 증상 | 원인 | 조치 |
|---|---|---|
| 관리자 모듈 목록에 이 모듈이 없음 | 학습용이라 목록에서 제외됨 | 정상입니다. 명령줄로 설치·활성화합니다 |
| 복제해서 만든 모듈이 관리자 목록에 안 보임 | 복제본에 학습용 표시가 남아 있음 | 복제본의 hidden 표시를 지웁니다 |
| 복제 후 설치하면 오류가 남 | 식별자·네임스페이스 치환이 일부만 이루어짐 | 옛 이름이 남아 있는지 전체 검색으로 확인하고 오토로드를 갱신합니다 |
| "Hello 메모" 메뉴가 보이지 않음 | 그 계정 역할에 메모 관리 권한이 없음 | 역할에 메모 관리 권한을 부여합니다 |
| 메모를 등록해도 아무 일도 일어나지 않음 | 학습용 플러그인이 설치되지 않음 | 생성 신호를 받아 동작하는 예시는 그 플러그인에 있습니다 |
변경 이력
라이선스
MIT