그누보드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로 제공됩니다. 개인 및 상업적 이용, 수정 및 재배포가 가능합니다. 단, 원 저작권 고지는 유지해야 합니다.
이 개발자의 다른 프로젝트
수정 이력 (1)
- template.json 구성 일부 수정 - vite.config.ts 빌드 설정 조정 - 로컬 소싱 변경 사항 반영
댓글 (8)
너무 어려운 그누7 인것 같아요 설치를 한번 해야 배울탠데 설치가 어려워 어디서부터 해야할지
안녕하세요, (●'◡'●) 이 페이지 참고해 보실레요 https://hub.glitter.kr/g7-guide
한번 해보겠습니다
안녕하세요, (●'◡'●) 이 페이지 참고해 보실레요 https://hub.glitter.kr/g7-guide
드디어 슬슬 나오는군요.^^ 빨리 배워야겠네요.
최신 댓글
전체 보기 →좋은 말씀 감사합니다. (●'◡'●) 다만 저는 이미 현업에서는 내려온 상태라 교육이나 멤버십까지 운영할 계획은 없습니다. 지금처럼 개인적으로 관심 있는 것들을 만들어 보고, 정리한 내용이나 결과물을 필요하신 분들과 공유하는 정도가 제게는 소일거리입니다. G7을 처음 접하시는 분들이 조금이라도 쉽게 시작할 수 있도록, 제가 아는 범위에서 계속 자료를 남겨두는 것. 그 정도가 제가 생각하는 방향입니다. :)
차라리 유튜브 강의도 만들어서 맴버쉽 비용까지 받는건 어떨까요? 교육산업도 병행하셔야 개인 개발자들도 자기계발 할 수 있고, 냑도 수익이 생기고..
(●'◡'●)
한번 해보겠습니다
안녕하세요, (●'◡'●) 이 페이지 참고해 보실레요 https://hub.glitter.kr/g7-guide
차라리 유튜브 강의도 만들어서 맴버쉽 비용까지 받는건 어떨까요? 교육산업도 병행하셔야 개인 개발자들도 자기계발 할 수 있고, 냑도 수익이 생기고..
좋은 말씀 감사합니다. (●'◡'●) 다만 저는 이미 현업에서는 내려온 상태라 교육이나 멤버십까지 운영할 계획은 없습니다. 지금처럼 개인적으로 관심 있는 것들을 만들어 보고, 정리한 내용이나 결과물을 필요하신 분들과 공유하는 정도가 제게는 소일거리입니다. G7을 처음 접하시는 분들이 조금이라도 쉽게 시작할 수 있도록, 제가 아는 범위에서 계속 자료를 남겨두는 것. 그 정도가 제가 생각하는 방향입니다. :)
좋은 말씀 감사합니다. (●'◡'●) 다만 저는 이미 현업에서는 내려온 상태라 교육이나 멤버십까지 운영할 계획은 없습니다. 지금처럼 개인적으로 관심 있는 것들을 만들어 보고, 정리한 내용이나 결과물을 필요하신 분들과 공유하는 정도가 제게는 소일거리입니다. G7을 처음 접하시는 분들이 조금이라도 쉽게 시작할 수 있도록, 제가 아는 범위에서 계속 자료를 남겨두는 것. 그 정도가 제가 생각하는 방향입니다. :)