G7 기본 커뮤니티 템플릿 - SIRsoft Basic Community
쇼핑몰 의존을 제거한 SIR 기본 사용자 템플릿, sirsoft-basic_comm
Gnuboard7 기반 커뮤니티 전용 사용자 템플릿
쇼핑몰 의존성을 제거하고 게시판 중심의 커뮤니티 사이트를 빠르게 구축할 수 있도록 설계된 SIRsoft Basic Community (sirsoft-basic_comm) 템플릿입니다.
단순한 UI 스킨이 아니라, Gnuboard7의 템플릿 엔진을 활용한 레이아웃 설계, 컴포넌트 구성, 설치 구조 및 운영 방식을 함께 제공하는 예제 프로젝트입니다.
- GitHub 저장소: https://github.com/glitter-node/sirsoft-basic_comm
- v1.0.3 릴리스: https://github.com/glitter-node/sirsoft-basic_comm/releases/tag/v1.0.3
- 라이선스: MIT License
1. 프로젝트 개요
sirsoft-basic_comm은 Gnuboard7 기반의 커뮤니티 전용 사용자 템플릿입니다.
게시판 중심의 사이트 구축을 목표로 하며, 쇼핑몰 관련 기능과 불필요한 데이터 의존성을 제거하여 구조를 단순화했습니다.
이 프로젝트는 다음 네 가지 요소를 함께 제공합니다.
- 코드 — 재사용 가능한 UI 컴포넌트와 레이아웃
- 설치 구조 — 템플릿 번들 및 배포 자산 구성
- 레이아웃 설계 — JSON Layout 기반 선언형 UI
- 운영 기준 — 설치, 검증, 유지보수 및 장애 대응 기준
즉, 단순한 커뮤니티 스킨이 아니라 커뮤니티 사이트를 구축할 때 참고할 수 있는 구조와 구현 방식 자체를 제공하는 프로젝트입니다.
2. v1.0.3 릴리스 정보
| 항목 | 내용 |
|---|---|
| 프로젝트 | SIRsoft Basic Community |
| 템플릿 식별자 | sirsoft-basic_comm |
| 버전 | 1.0.3 |
| 배포일 | 2026-10-22 |
| 템플릿 유형 | User Template |
| Gnuboard7 | >=7.0.0-beta.2 |
| 지원 언어 | 한국어, 영어 |
| 라이선스 | MIT |
| 배포 형식 | ZIP / tar.gz |
주요 제공 기능
- 게시판 중심 커뮤니티 UI
- JSON Layout 기반 페이지 구성
- 재사용 가능한 UI 컴포넌트
- 레이아웃 partial 분리
- API 데이터 바인딩 및 fallback 처리
- 반응형 레이아웃
- 다크 모드 지원
- 한국어 및 영어 지원
- 사전 빌드된 CSS/JavaScript 배포 자산
- 코어 수정 없는 템플릿 설치 및 활성화
구체적인 버전별 변경 내역은 저장소의 CHANGELOG.md를 참고해 주세요.
3. 다운로드
v1.0.3 배포 패키지
- ZIP 다운로드 — sirsoft-basic_comm-v1.0.3.zip
- tar.gz 다운로드 — sirsoft-basic_comm-v1.0.3.tar.gz
- GitHub 릴리스 페이지
배포 패키지는 Gnuboard7의 템플릿 번들 구조에 맞춰 설치할 수 있습니다.
압축을 해제한 후 템플릿 디렉터리 이름을 반드시 다음과 같이 유지해 주세요.
sirsoft-basic_comm
템플릿 번들 설치 위치:
/path/to/project/templates/_bundled/sirsoft-basic_comm/
4. 기술 스택
| 구분 | 기술 |
|---|---|
| Backend | PHP 8.2+ |
| Framework | Laravel 12.x |
| Database | MariaDB / MySQL |
| Frontend | React 19 / TypeScript |
| Layout | JSON Layout |
| Styling | Tailwind CSS / Custom CSS |
| Build | Vite |
| Assets | Prebuilt dist/ |
| Template Engine | Gnuboard7 Template Engine |
기술적 특징
- JSON 기반 선언형 UI 구성
- 데이터 소스와 레이아웃 분리
- 컴포넌트 중심 화면 설계
- CSS와 JavaScript 분리
- 인라인 스타일 최소화
- 템플릿 단위 확장 구조
- 운영 환경에서 별도 프런트엔드 빌드 불필요
5. 무엇을 제공하는가
5.1 커뮤니티 전용 구조
쇼핑몰 기능을 제거하고 게시판 중심 서비스에 집중합니다.
제거된 기능:
/shop/*/cart/checkout/mypage/orders/mypage/wishlist/mypage/addresses
이를 통해 불필요한 상태와 데이터 의존성을 줄이고 커뮤니티 운영에 필요한 사용자 흐름을 단순화합니다.
5.2 JSON Layout 기반 UI
페이지를 JSON Layout 기반으로 구성합니다.
주요 구성 요소:
layouts/*.jsonlayouts/partials/- 선언형 데이터 소스
- UI 컴포넌트
- 이벤트 및 상태 바인딩
레이아웃과 컴포넌트를 분리하여 화면 구성의 재사용성과 유지보수성을 높입니다.
5.3 데이터 의존 최소화
API 응답이 없거나 초기 데이터가 준비되지 않은 상황을 고려합니다.
- 안전한 데이터 바인딩
- fallback 구조
- 초기 상태 처리
- 빈 데이터 대응
- API 오류 시 UI 안정성 고려
단, API 오류 상황에서 모든 기능의 정상 동작을 보장한다는 의미는 아닙니다.
5.4 UI 일관성
다음 디자인 원칙을 적용합니다.
- Low Contrast UI
- Border 기반 인터랙션
- 과도한 시각적 강조 최소화
- 정보 중심 레이아웃
- 반응형 화면 구성
5.5 재현 가능한 배포 구조
사전 빌드된 dist/ 자산을 배포 패키지에 포함합니다.
운영 환경에서 Node.js 또는 npm 빌드를 수행하지 않고도 배포된 자산을 사용할 수 있도록 설계했습니다.
6. 포함된 페이지
Public
| 경로 | 기능 |
|---|---|
/ |
메인 페이지 |
/boards |
게시판 목록 |
/search |
통합 검색 |
User
| 경로 | 기능 |
|---|---|
/mypage/profile |
내 프로필 |
/mypage/profile/edit |
프로필 수정 |
/mypage/change-password |
비밀번호 변경 |
/mypage/notifications |
알림 |
/mypage/board |
내 게시글 관리 |
실제 페이지 접근 가능 여부는 호스트의 라우트 설정, 사용자 권한 및 설치된 확장 상태에 따라 달라질 수 있습니다.
7. 필수 의존성
이 템플릿은 Gnuboard7 호스트 프로젝트와 Template Engine을 전제로 합니다.
템플릿 메타데이터 기준 최소 버전
| 구분 | 식별자 | 최소 버전 |
|---|---|---|
| Gnuboard7 Core | gnuboard7 |
7.0.0-beta.2 |
| 게시판 모듈 | sirsoft-board |
1.0.0-beta.4 |
| 페이지 모듈 | sirsoft-page |
1.0.0-beta.2 |
| Daum 우편번호 플러그인 | sirsoft-daum_postcode |
1.0.0-beta.2 |
위 버전은 v1.0.3의 template.json에 선언된 최소 요구 조건입니다.
실제 운영에서는 사용 중인 Gnuboard7 코어와 확장 모듈의 호환성을 별도로 확인하는 것을 권장합니다.
필수 확장 모듈을 먼저 설치한 후 템플릿을 설치하고 활성화해 주세요.
8. 설치 방법
8.1 관리자 페이지에서 설치 (권장)
Gnuboard7 관리자 페이지에서 템플릿을 설치할 수 있습니다.
- 관리자 페이지에 로그인합니다.
- 템플릿 관리 → 수동 설치 → GitHub로 이동합니다.
- 다음 저장소 URL을 입력합니다.
https://github.com/glitter-node/sirsoft-basic_comm
- 템플릿 설치를 진행합니다.
- 설치 완료 후
sirsoft-basic_comm템플릿을 활성화합니다. - 사이트 화면과 정적 자산 로딩 상태를 확인합니다.
8.2 ZIP 패키지로 설치
다음 파일을 다운로드합니다.
설치 절차:
- ZIP 배포 패키지를 다운로드합니다.
- 관리자 페이지의 템플릿 관리 → 수동 설치 → 파일 업로드로 이동합니다.
- ZIP 파일을 선택합니다.
- 설치 결과를 확인합니다.
- 템플릿을 활성화합니다.
패키지 구조가 설치 관리자의 요구 사항과 일치하는지 확인해 주세요.
8.3 SSH를 이용한 번들 설치
운영 호스트의 Gnuboard7 프로젝트 디렉터리로 이동합니다.
cd /path/to/project
템플릿 번들 디렉터리에서 저장소를 복제합니다.
cd templates/_bundled
git clone https://github.com/glitter-node/sirsoft-basic_comm.git sirsoft-basic_comm
cd sirsoft-basic_comm
git checkout v1.0.3
배포용 소스에서 Git 메타데이터가 필요하지 않은 경우 제거할 수 있습니다.
rm -rf .git
이후 관리자 페이지에서 템플릿 설치 및 활성화를 진행합니다.
8.4 소스에서 직접 빌드하는 경우
v1.0.3 배포 패키지에는 사전 빌드된 자산이 포함되어 있으므로 일반적인 운영 설치에서는 별도 빌드가 필요하지 않습니다.
소스를 수정하거나 프런트엔드 자산을 재생성해야 하는 경우에만 빌드합니다.
cd /path/to/project/templates/_bundled/sirsoft-basic_comm
npm install
npm run build
빌드 결과를 확인합니다.
test -f dist/js/components.iife.js
test -f dist/css/components.css
두 파일이 정상적으로 생성되었는지 확인한 후 프로젝트의 템플릿 빌드 및 업데이트 절차를 따릅니다.
주의: 템플릿 설치·활성화·업데이트·캐시 삭제 명령은 운영 상태를 변경할 수 있으므로 실행 전에 대상 환경과 영향을 확인해야 합니다.
9. 배포 패키지 구성
주요 디렉터리와 파일의 역할은 다음과 같습니다.
sirsoft-basic_comm/
├── assets/
├── components.json
├── dist/
│ ├── css/
│ └── js/
├── extensions/
├── lang/
├── layouts/
├── src/
├── CHANGELOG.md
├── LICENSE
├── routes.json
├── seo-config.json
└── template.json
| 항목 | 설명 |
|---|---|
assets/ |
템플릿 정적 리소스 |
components.json |
컴포넌트 관련 정의 |
dist/ |
빌드된 CSS/JavaScript |
extensions/ |
템플릿 확장 구성 |
lang/ |
다국어 리소스 |
layouts/ |
JSON Layout 및 partial |
src/ |
프런트엔드 소스 |
CHANGELOG.md |
변경 이력 |
LICENSE |
라이선스 |
routes.json |
라우트 구성 |
seo-config.json |
SEO 구성 |
template.json |
템플릿 메타데이터 |
배포 패키지를 경량화할 경우에도 설치 및 런타임에서 필요한 파일은 유지해야 합니다.
특히 template.json, layouts/, lang/, dist/ 및 실제 참조되는 구성 파일은 임의로 제거하지 않는 것이 좋습니다.
10. 설치 후 확인 사항
설치 및 활성화 후 다음 항목을 확인해 주세요.
- 템플릿 설치 완료
-
sirsoft-basic_comm활성화 - CSS 및 JavaScript 정상 로딩
- 메인 페이지 정상 표시
- 게시판 목록 및 게시글 조회
- 게시글 작성 및 수정
- 첨부파일 업로드
- 회원 로그인 및 사용자 페이지
- 한국어 및 영어 리소스
- 모바일 및 데스크톱 화면
- 브라우저 콘솔 오류
- API 응답 및 캐시 상태
화면 로딩 오류가 발생하는 경우
다음 항목을 우선 확인합니다.
- 템플릿이 정상적으로 활성화되었는지 확인합니다.
dist/자산이 배포되었는지 확인합니다.- 필수 확장 모듈의 설치 상태를 확인합니다.
- 브라우저 개발자 도구에서 API 및 JavaScript 오류를 확인합니다.
- 레이아웃 검증 오류가 있는지 확인합니다.
필요한 경우 관리자 페이지에서 다음 기능을 사용합니다.
관리자 → 환경설정 → 고급 → 캐시 모두 삭제
캐시 삭제는 운영 환경에 영향을 줄 수 있으므로 원인을 확인한 후 수행하는 것이 좋습니다.
11. 운영 기준
권장 운영 대상
- 커뮤니티 사이트
- 게시판 중심 서비스
- MVP 및 베타 서비스
- 내부 커뮤니케이션 플랫폼
- Gnuboard7 템플릿 구조 연구
- JSON Layout 기반 UI 개발
운영 전 확인할 사항
- 호스트 Gnuboard7 버전
- 필수 모듈 설치 및 활성화
- 템플릿 설치 상태
- 정적 자산 배포 상태
- 게시판 권한 및 API 동작
- 파일 업로드 기능
- 사용자 인증 상태
- 다국어 리소스
- 캐시 및 로그
12. 장애 대응 범위
템플릿에서 다루는 영역
- UI 레이아웃
- JSON Layout 구성
- 컴포넌트 바인딩
- fallback 처리
- 템플릿 정적 자산
- 사용자 화면 구성
호스트 환경에서 별도 관리해야 하는 영역
- 데이터베이스 및 데이터 무결성
- 사용자 데이터 관리
- 외부 API 장애
- 서버 및 네트워크 인프라
- Gnuboard7 코어 오류
- 확장 모듈 자체의 오류
- 서버 보안 및 접근 제어
템플릿은 호스트 프로젝트의 기능을 활용하는 UI 계층이며, 모든 서버 측 기능을 독립적으로 제공하는 패키지는 아닙니다.
13. 프로젝트 상태
Beta / v1.0.3
현재 프로젝트는 다음 방향을 중심으로 개발되고 있습니다.
- 커뮤니티 중심 구조
- 쇼핑몰 의존성 제거
- JSON Layout 기반 UI
- 재사용 가능한 컴포넌트
- 배포 및 재설치 가능한 템플릿 구조
- 다국어 지원
- 코어 수정 최소화
실제 운영 적용 전에는 대상 Gnuboard7 버전과 확장 모듈 조합에서 기능 검증을 수행하는 것을 권장합니다.
14. 향후 계획
- 커뮤니티 기능 확장
- 알림 및 소셜 기능 개선
- UI 컴포넌트 정리
- JSON Layout 재사용성 개선
- 다국어 리소스 확대
- 반응형 UI 개선
- 템플릿 배포 및 설치 절차 개선
향후 계획은 개발 상황에 따라 변경될 수 있습니다.
15. 추천 대상
이 프로젝트는 다음 사용자에게 적합합니다.
- Gnuboard7 기반 사이트 개발자
- 게시판 중심 커뮤니티 구축자
- 빠르게 MVP를 구성하려는 개발자
- JSON Layout 기반 UI 설계를 학습하려는 사용자
- 템플릿 확장 구조를 참고하려는 개발자
- 이커머스 기능이 필요하지 않은 커뮤니티 운영자
16. 라이선스
MIT License
본 템플릿은 MIT License로 제공됩니다.
개인 및 상업적 이용, 수정 및 재배포가 가능합니다.
단, 재배포 시 기존 저작권 및 라이선스 고지를 유지해야 합니다.
자세한 내용은 저장소의 LICENSE 파일을 참고해 주세요.
17. 정리
**SIRsoft Basic Community (sirsoft-basic_comm)**는 Gnuboard7에서 커뮤니티 전용 템플릿을 어떻게 설계하고 배포할 수 있는지 보여주는 예제 프로젝트입니다.
이 프로젝트는 다음 질문에 대한 구현 사례를 제공합니다.
- 커뮤니티 중심의 템플릿은 어떻게 구성할 것인가?
- 이커머스 의존성은 어떻게 제거할 것인가?
- JSON Layout 기반 UI는 어떻게 설계할 것인가?
- 컴포넌트와 레이아웃을 어떻게 분리할 것인가?
- 재설치 가능한 배포 구조는 어떻게 만들 것인가?
- 코어 수정 없이 사용자 템플릿을 어떻게 확장할 것인가?
단순한 화면 디자인보다 구조, 확장성, 재현성 및 유지보수성에 초점을 둔 프로젝트입니다.
프로젝트 및 다운로드
- GitHub: https://github.com/glitter-node/sirsoft-basic_comm
- Release v1.0.3: https://github.com/glitter-node/sirsoft-basic_comm/releases/tag/v1.0.3
- ZIP: https://github.com/glitter-node/sirsoft-basic_comm/releases/download/v1.0.3/sirsoft-basic_comm-v1.0.3.zip
- tar.gz: https://github.com/glitter-node/sirsoft-basic_comm/releases/download/v1.0.3/sirsoft-basic_comm-v1.0.3.tar.gz
SIRsoft Basic Community — Gnuboard7 Community Template
이 개발자의 다른 프로젝트