창작마당

그누보드7 커뮤니티 템플릿 - SIRsoft Community

Glitter Gim 2026.05.04 01:24 조회수:1,686
#테마

쇼핑몰(이커머스 의존)을 제거하고 커뮤니티 기능에 집중한 경량 사용자 템플릿, 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) 완성은 설치만으로 되지 않습니다.

예제와 같은 커뮤니티 초안을 구성하려면 아래 항목이 함께 셋업되어야 합니다.

    1. sirsoft-board 업데이트
    1. sirsoft-board seed
    1. sirsoft-page 업데이트
    1. sirsoft-page seed
    1. sirsoft-comm template:update
    1. 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
    1. 설치 검증

검증 기준:

  • 게시판 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로 제공됩니다. 개인 및 상업적 이용, 수정 및 재배포가 가능합니다. 단, 원 저작권 고지는 유지해야 합니다.

총 12개 댓글
0 / 2,000자
zepinos
404 레이아웃 파일을 찾을 수 없다고 나오는데, 무엇이 문제일까요?
Glitter Gim
Core가 버전업하면서 변경된 계악 호환성 대응 소스 수정을 했습니다.
Glitter Gim
404 레이아웃을 찾지 못하는 원인은 여러 가지가 있어서, 주신 정보만으로는 판단하기 어렵습니다. 가능하시다면 - 사용 중인 그누보드7 버전 템플릿 설치 방법(직접 복사 또는 template:update 사용 여부) 활성화한 템플릿 ID 어떤 URL에서 404가 발생하는지 오류 화면 또는 로그 메시지(storage/logs/laravel-2026-07-24.log) - 수행 날짜 기준 로그 - 위와 같은 재현 환경을 알려주시면 확인해보겠습니다. ※ 참고 : https://sir.kr/portfolios/285
울라프
이거 샘플 페이지는 어디서 보나요?
Glitter Gim
샘플과 실제 운용 페이지입니다. https://sir.kr/portfolios/285 https://hub.glitter.kr
T
네, 감사합니다. 최근에 아예 서버단에서 그누보드 포함해서 모든 걸 리셋한 환경이어서 새롭게 그누보드7 설치하고 본 커뮤니티 템플릿도 추가했는데 초기 설치 직후에 해도 동일한 이슈가 생기네요..
Glitter Gim
이 템플릿(ID: sirsoft-comm) 문제는 아니라 사려됩니다. 해당(https://sir.kr/portfolios/285) 소개글에서 '쇼핑몰 제외된 템플릿 포함된 code, 초기 설치'를 해보시면 확인이 되실 겁니다. 해당 모듈 소스가 문제가 아니고 사용하시는 프로젝트 소스의 문제리 사려됩니다. '쇼핑몰 제외된 템플릿 포함된 code, 초기 설치'를 해보시기 바랍니다.
T
최근 그누보드7 업데이트 이후에, 글쓰기 폼 페이지 레이아웃이 블러처리가 되는 이슈가 있는 듯 합니다.
Glitter Gim
제보 감사합니다. 상속된 알림 데이터소스 때문에 전체 폼의 Blur가 풀리지 않았던 것이였습니다. 수정 재배포(v0.1.0-beta.7)하였습니다. 감사합니다.
Glitter Gim
저도 G7 Hub(https://hub.glitter.kr) 운용 중 비슷한 증상을 경험했습니다. 당시에는 권한이나 게시판 설정 문제가 아니라 글쓰기 페이지 초기화 과정에서 프론트엔드 상태가 정상 해제되지 않아 폼이 비활성화된 경우였습니다. 보완 수정 후 현재는 정상 동작합니다. T님의 이전 질문(https://sir.kr/questions/565103)에서 말씀하신 것처럼 알림 버튼을 눌렀을 때 블러가 해제된다면 권한 문제보다는 공통 레이아웃 JS 또는 상태 초기화 문제 가능성이 높아 보입니다. F12의 Elements에서 블러 처리된 영역의 class와 Console 오류를 확인해 보시고, 코어 업데이트 직후라면 번들(JS/CSS) 또는 템플릿 자산 갱신 문제도 점검해 보시는 것을 권장드립니다.
들레아빠
감사 합니다.
Glitter Gim
이전 게시물에 한글 베이스 지적하셔서 고민해 보니 수긍이 됐던 기억이 있습니다. 감사합니다.

다른 창작물 살펴보기