그누보드
기본 정보
- 이름: 그누보드 (Gnuboard)
- 영문명: Gnuboard
- 분류: 오픈소스 CMS / 게시판 솔루션
- 개발 언어: PHP
- 데이터베이스: MySQL, MariaDB
- 라이선스: GPL
- 관련 주제: #그누보드 #PHP #CMS #게시판 #웹개발
개요
그누보드는 대한민국에서 개발된 PHP 기반 오픈소스 게시판 및 CMS(Content Management System)이다.
회원관리, 게시판, 포인트, 쪽지, 파일 업로드, 관리자 기능 등을 기본 제공하며, 기업 홈페이지, 커뮤니티, 쇼핑몰, 예약 시스템 등 다양한 웹 서비스 구축에 활용된다.
현재 그누보드5(G5)가 가장 널리 사용되고 있으며, 영카트(Youngcart)와 연동하여 쇼핑몰 기능도 제공할 수 있다.
주요 특징
- PHP 기반
- MySQL/MariaDB 지원
- 오픈소스(GPL)
- 관리자 페이지 제공
- 회원 관리 기능
- 게시판 생성 기능
- 포인트 시스템
- 파일 업로드 지원
- 다양한 스킨 구조 지원
- 플러그인 및 커스터마이징 용이
기본 구조
Browser
↓
Apache / Nginx
↓
PHP
↓
그누보드
├── 회원관리
├── 게시판
├── 관리자
├── 포인트
├── 쪽지
├── 스킨
└── 플러그인
↓
MySQL / MariaDB
주요 기능
회원관리
- 회원가입
- 로그인
- 아이디 찾기
- 비밀번호 찾기
- 회원등급 관리
- 포인트 지급
게시판
- 자유게시판
- 공지사항
- Q&A
- 갤러리
- 자료실
- FAQ
게시판은 관리자에서 자유롭게 생성할 수 있다.
관리자 페이지
- 회원관리
- 게시판관리
- 포인트관리
- 접속통계
- 팝업관리
- 메뉴관리
- 환경설정
포인트 시스템
회원 활동에 따라 포인트를 지급하거나 차감할 수 있다.
예시
- 회원가입
- 로그인
- 글쓰기
- 댓글 작성
- 추천받기
쪽지 기능
회원 간 내부 메시지 기능을 제공한다.
파일 업로드
게시글에 이미지 및 파일을 첨부할 수 있으며, 업로드 개수와 용량은 관리자 설정으로 제한할 수 있다.
디렉터리 구조
/
├── adm/
├── bbs/
├── skin/
├── mobile/
├── theme/
├── plugin/
├── data/
├── extend/
├── lib/
├── js/
├── img/
└── config.php
주요 폴더 설명
| 폴더 | 설명 |
|---|---|
| adm | 관리자 페이지 |
| bbs | 게시판 기능 |
| skin | 게시판 스킨 |
| theme | 테마 |
| plugin | 플러그인 |
| extend | 사용자 확장 |
| lib | 공통 함수 |
| data | 업로드 파일 |
데이터베이스 주요 테이블
| 테이블 | 설명 |
|---|---|
| g5_member | 회원 |
| g5_board | 게시판 설정 |
| g5_board_file | 첨부파일 |
| g5_write_* | 게시글 |
| g5_point | 포인트 |
| g5_login | 로그인 기록 |
| g5_visit | 방문자 통계 |
| g5_group | 게시판 그룹 |
게시판 생성 과정
관리자
↓
게시판 생성
↓
g5_board 등록
↓
g5_write_xxx 생성
↓
게시판 사용
게시판마다 g5_write_게시판명 테이블이 생성된다.
스킨 구조
skin/
└── board/
└── basic/
├── list.skin.php
├── view.skin.php
├── write.skin.php
└── style.css
스킨을 수정하여 게시판 UI를 자유롭게 변경할 수 있다.
테마 구조
theme/
└── basic/
├── head.php
├── tail.php
├── index.php
└── css/
테마를 통해 사이트 전체 디자인을 관리한다.
대표 함수
회원 정보 조회
$member = get_member($mb_id);
SQL 조회
$row = sql_fetch($sql);
SQL 목록
$result = sql_query($sql);
알림창
alert("처리되었습니다.");
리다이렉트
goto_url("/index.php");
이벤트(Hook)
run_event(
'member_login_check_before',
$mb_id
);
확장 기능 개발 시 이벤트 시스템을 활용할 수 있다.
주요 활용 분야
- 커뮤니티
- 기업 홈페이지
- 쇼핑몰
- 예약 시스템
- ERP 연동
- 사내 게시판
- 고객센터
- Q&A 시스템
장점
- 국내 사용자층이 많음
- 설치와 사용이 쉬움
- 게시판 기능이 강력함
- 커스터마이징이 자유로움
- PHP 개발자 접근성이 높음
- 다양한 플러그인과 스킨 존재
단점
- 레거시 코드가 일부 존재
- 대규모 서비스에서는 구조 개선이 필요할 수 있음
- 기본 UI가 다소 오래된 편
- 커스터마이징 시 유지보수 전략이 중요함
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
theme폴더 중심으로 개발extend를 활용해 공통 기능 추가- 원본 파일 수정 최소화
- Prepared Statement 또는 입력값 검증으로 SQL Injection 방지
htmlspecialchars()로 XSS 방지- 관리자 권한 체크 필수
- 파일 업로드 시 MIME 타입과 확장자 검증
- UTF-8(
utf8mb4) 사용 - Slow Query 및 인덱스 최적화 수행
- Git으로 버전 관리
그누보드와 함께 사용하는 기술
관련 문서
출처
- SIR 공식 홈페이지
- 그누보드 GitHub 저장소
- 그누보드 공식 문서