그누보드7 커뮤니티 템플릿 - SIRsoft Community
쇼핑몰(이커머스 의존)을 제거하고 커뮤니티 기능에 집중한 경량 사용자 템플릿, ID : sirsoft-comm
프로젝트 개요
SirSoft Comm Template은 GnuBoard7 기반으로 커뮤니티 중심 사이트를 빠르게 구축할 수 있도록 쇼핑몰 관련 의존이 제외된 템플릿 예제입니다
설치
쇼핑몰 제외된 템플릿 포함된 code, 초기 설치
수정된 템플릿 ID: sirsoft-comm, user 템플릿, 버전 1.0.0-beta.7 ( 예제 복사판 설치 )
- Core version : 7.0.9
웹 루트 디렉토리(/path/to/project)로 이동합니다.
git clone 명령어 끝의 .은 필수입니다.
# cd /path/to/project
git clone https://github.com/glitter-node/sirsoft-community-BETA_7.git .
cp .env.example .env
composer install
- .env 파일 권한과 DB 정보를 운영 환경에 맞게 설정합니다.
- (초기 설치시, php 풀 워커의 .env 파일 쓰기 권한 필수)
- 웹 서버 DocumentRoot는 반드시 다음 경로로 지정합니다.
/path/to/project/public
- 브라우저에서 설치 마법사에 접근합니다.
http://도메인/install
- 설치 마법사에서 DB 정보와 관리자 정보를 입력하고 설치를 완료합니다.
설치 완료후, 관리자앱 셋업 흐름 :
sirsoft-comm 템플릿(v1.0.0-beta.7) 완성은 설치만으로 되지 않습니다.
예제와 같은 커뮤니티 초안을 구성하려면 아래 항목이 함께 셋업되어야 합니다.
-
- sirsoft-board 업데이트
-
- sirsoft-board seed
-
- sirsoft-page 업데이트
-
- sirsoft-page seed
-
- sirsoft-comm template:update
-
- sirsoft-comm 활성화
# cd /path/to/project
php artisan module:update sirsoft-board --force && \
php artisan module:seed sirsoft-board --force && \
php artisan module:update sirsoft-page --force && \
php artisan module:seed sirsoft-page --force && \
cd templates/_bundled/sirsoft-comm && \
npm run build && \
npm run type-check && \
npm run test:run
# cd /path/to/project
php artisan template:update sirsoft-comm --force --source=bundled && \
php artisan template:activate sirsoft-comm
-
- 설치 검증
검증 기준:
- 게시판 6개 존재
- /boards 200
- /board/qna 200
- /page/refund 200
- /api/templates/sirsoft-comm/lang/ko.json 200
- /api/templates/sirsoft-comm/lang/en.json 200
기본 게시판 구성
| Board ID | Description |
|---|---|
| notice | 공지사항 |
| free | 자유게시판 |
| qna | 질문게시판 |
| resources | 자료공유 |
| introductions | 가입인사 |
| support | 운영문의 |
템플릿만 설치하면 UI만 들어옵니다. 보드 모듈까지 설치/시드해야 커뮤니티 초안이 완성됩니다.
Source code(v7.0.9) + 수정된 템플릿(v1.0.0-beta.7)
템플릿만 번들로 추가 설치
이 방식은 기존 Gnuboard7 CMS 호스트에 sirsoft-comm 템플릿 번들만 추가하는 경우입니다.
주의 :
- 기존 호스트에 sirsoft-board 모듈과 sirsoft-page 모듈이 설치되어 있어야 합니다.
- 보편 커뮤니티 초안으로 사용하려면 sirsoft-board 기본 게시판 시드가 필요합니다.
- 템플릿만 복사하면 게시판 데이터는 생성되지 않습니다.
템플릿 번들 다운로드 :
압축해제로 생성된 폴더(sirsoft-comm)를 운영 호스트(/path/to/project)의 번들_폴더(templates/_bundled)에 복사
템플릿 반영 : 웹 루트 디렉토리(/path/to/project)에서 실행합니다.
# cd /path/to/project
php artisan template:update sirsoft-comm --source=bundled --force --no-interaction
보드 모듈 기본 게시판 시드
기존 호스트에 게시판이 아직 없다면 아래를 실행합니다.
# cd /path/to/project
php artisan module:update sirsoft-board --source=bundled --force --no-interaction
php artisan module:seed sirsoft-board --force --no-interaction
운영 서버에서 쉘 환경변수로 다른 DB 값이 남아 있을 수 있는 경우에는 깨끗한 환경으로 실행합니다.
cd /path/to/project
env -u DB_DATABASE -u DB_USERNAME -u DB_PASSWORD -u DB_READ_DATABASE -u DB_READ_USERNAME -u DB_READ_PASSWORD -u DB_WRITE_DATABASE -u DB_WRITE_USERNAME -u DB_WRITE_PASSWORD \
php artisan module:seed sirsoft-board --force --no-interaction
정책 페이지
/page/refund 경로는 호환성을 위해 유지됩니다. 단, 내용은 쇼핑몰 환불 정책이 아니라 i18n 기반의 커뮤니티 정책 / Community Policy 페이지로 렌더링됩니다.
설치 후 확인
curl -I https://도메인/boards
curl -I https://도메인/board/qna
curl -I https://도메인/page/refund
curl -I https://도메인/api/templates/sirsoft-comm/lang/ko.json
curl -I https://도메인/api/templates/sirsoft-comm/lang/en.json
이 프로젝트는 단순 UI 묶음이 아니라, 아래 4가지를 함께 제공하는 샘플 프로젝트를 목표로 합니다.
- 코드
- 설치 구조
- 레이아웃 설계
- 운영 기준
즉, 구축 시 참고할 수 있는 구조와 방식 자체를 제공하는 프로젝트입니다.
의존성 필수 확장
이 템플릿은 다음 확장 및 연동 조건을 전제로 합니다.
- 게시판 모듈 (sirsoft-board)
- 페이지 모듈 (sirsoft-page)
- Daum 우편번호 플러그인 (sirsoft-daum_postcode)
이 3개의 의존성이 설치되어 있어야 정상 동작합니다.
관리자에서 템플릿 수동 설치
1. GitHub 저장소에서 설치 (권장)
관리자 → 템플릿 관리 → 수동 설치 → GitHub
아래의 저장소 URL을 입력합니다.
https://github.com/glitter-node/sirsoft-community-BETA
설치 완료 후 커뮤니티 스타터 템플릿을 활성화하시면 됩니다.
2. ZIP 패키지 설치
Release에서 번들 패키지(*.zip)를 다운로드한 후 관리자 → 템플릿 관리 → 수동 설치 → 파일 업로드를 통해 설치할 수도 있습니다.
설치 완료 후 커뮤니티 스타터 템플릿을 활성화하시면 됩니다.
다만 GitHub 저장소를 통한 설치 및 업데이트를 권장합니다.
3. 설치 후 생성된 페이지의 로드 에러 발생 시
관리자 → 환경설정 → 고급 → 캐시 모두 삭제
무엇을 제공하는가
SirSoft Comm는 다음 목적에 맞춰 설계되었습니다.
- 게시판 중심 커뮤니티 구조
- JSON Layout 기반 UI 구성 방식
- 데이터 의존 최소화 구조
- GnuBoard7 템플릿 엔진과 연동되는 UI 레이어
- 이커머스 의존 제거된 커뮤니티 전용 템플릿
기술 스택
- PHP 8.2+
- Laravel 12.x
- MariaDB / MySQL
- TypeScript
- JSON Layout
- Vite Build (prebuilt dist 포함)
- Custom CSS (no inline style)
프로젝트 성격
이 템플릿은 다음 성격을 갖습니다.
- GnuBoard7 템플릿 엔진 기반
- Template 단위 확장 구조
- JSON 기반 UI 정의
- 이커머스 의존 제거
- 빌드 완료된 dist 포함 (운영 환경 빌드 불필요)
- 코어 수정 없이 적용 가능
가치
1. 커뮤니티 전용 구조
이 템플릿은 쇼핑몰 기능을 제거하고 커뮤니티 기능에 집중합니다.
- cart / shop / checkout 제거
- orders / wishlist / addresses 제거
- 사용자 흐름 단순화
즉,
- 게시판 중심 구조
- 불필요한 상태 제거
- 유지보수 단순화
2. 재현성
보장:
- 동일한 결과 재현
- 환경 의존성 최소화
- 운영 환경 빌드 불필요
3. JSON Layout 기반 UI
모든 페이지는 JSON으로 정의됩니다.
구조:
- layouts/*.json
- partials 분리
- data source 선언형 구성
효과:
- UI 변경 시 코드 수정 최소화
- 구조 중심 설계
- 템플릿 레벨 제어
4. 데이터 의존 최소화
커뮤니티 UI는 데이터 없이도 동작하도록 설계되었습니다.
적용:
- fallback 구조
- 안전 바인딩
즉,
- API 실패 시에도 UI 유지
- 초기 상태에서도 깨지지 않음
5. UI 일관성
전체 UI는 다음 기준으로 설계되었습니다.
- low contrast UI
- border 기반 인터랙션
- 과도한 강조 제거
즉,
- 정보 중심 UI
- 정적 콘텐츠에 적합한 구조
- 피로도 낮은 인터페이스
포함된 페이지
Public
- /
- /boards
- /search
User
- /mypage/profile
- /mypage/profile/edit
- /mypage/change-password
- /mypage/notifications
- /mypage/board
제거된 기능
다음 기능은 의도적으로 제거되었습니다.
- /shop/*
- /cart
- /checkout
- /mypage/orders
- /mypage/wishlist
- /mypage/addresses
의존 구조
이 템플릿은 다음을 전제로 합니다.
- GnuBoard7 호스트 프로젝트
- GnuBoard7 Template Engine 활성화
의존성:
- 게시판 모듈 (sirsoft-board)
- 페이지 모듈 (sirsoft-page)
- Daum 우편번호 플러그인 (sirsoft-daum_postcode)
※ 데이터 없이도 기본 UI는 동작.
운영 기준
SirSoft Comm는 다음 목적에 적합합니다.
운영 대상
- 커뮤니티 사이트
- 게시판 중심 서비스
- MVP / 베타 서비스
- 내부 커뮤니케이션 플랫폼
운영 전 확인 항목
- 템플릿 반영 여부
- dist 자산 존재 여부
- 게시판 모듈 정상 여부
- API 응답 상태
- 캐시 상태
장애 대응 범위
포함:
- 템플릿 구조
- UI 레이아웃
- fallback 처리
포함되지 않음:
- 데이터 품질
- 외부 API 장애
- 인프라 구성
- 사용자 데이터 관리
현재 상태
Beta
현재 기준:
- 커뮤니티 구조 안정화 완료
- 이커머스 의존 제거 완료
- API 정상 동작 확인
- 배포 가능 상태
추천 대상
- GnuBoard7 기반 개발자
- 커뮤니티 서비스 구축자
- 빠른 MVP가 필요한 경우
- 구조 설계를 참고하려는 경우
향후 계획
- 커뮤니티 기능 확장
- 알림/소셜 기능 강화
- UI 컴포넌트 정리
정리
SirSoft Comm Template는 다음을 검토하기 위한 프로젝트입니다.
- 어떻게 커뮤니티 전용 템플릿을 구성할 것인가
- 어떻게 이커머스 의존을 제거할 것인가
- 어떻게 JSON 기반 UI를 구성할 것인가
- 어떻게 재설치 가능한 구조를 만들 것인가
즉, 실운용 프로젝트라기보다 구조와 방식을 제시하는 템플릿 예제 프로젝트입니다.
라이선스
MIT License
본 템플릿은 MIT License로 제공됩니다. 개인 및 상업적 이용, 수정 및 재배포가 가능합니다. 단, 원 저작권 고지는 유지해야 합니다.
다른 창작물 살펴보기
G7 콘텐츠 재구성 템플릿 - Glitter Directory
GnuBoard7의 기존 Board 콘텐츠를 Directory와 Listing 중심의 탐색 화면으로 재구성하는 사용자용 시드(seed) 템플릿
G7 지식 문서 지원 템플릿 - Glitter Knowledge
G7의 기존 콘텐츠와 기능을 유지하면서 Knowledge / Documentation / Help Center 사이트를 개발할 수 있는 구조와 구현 기반을 제공하는 Seed User Template