본문 바로가기
IT

처음부터 끝까지 이해하는 그누보드 구조 한눈에 보기

by 비누91 2025. 5. 7.
반응형

복잡한 그누보드, 어떻게 쉽게 파악할 수 있을까?


그누보드는 국내에서 널리 쓰이는 오픈소스 게시판 솔루션으로, 구조가 체계적이지만 처음 접하는 사람에게는 다소 어렵게 느껴질 수 있습니다.
이 글에서는 그누보드의 전체 구조를 직관적으로 파악하는 방법과 함께 파일 흐름, 디렉토리 구조, 그리고 페이지 로딩 과정 등을
쉽고 명확하게 설명드립니다.


디렉토리 구조부터 이해하자

그누보드의 핵심은 디렉토리 구조입니다.
가장 기본적인 디렉토리는 아래와 같이 구성되어 있습니다.

디렉토리 설명

bbs/ 게시판 관련 파일이 집중된 핵심 디렉토리
skin/ 사용자 인터페이스 템플릿 (스킨) 폴더
theme/ 테마 기반 전체 UI 변경 가능 폴더
lib/ 함수, 라이브러리 등 공통 기능 포함
data/ 업로드 파일, 설정 값 저장 위치
plugin/ 확장 기능 추가 플러그인 위치

핵심: 각 디렉토리의 역할을 파악하면 전체 흐름이 자연스럽게 연결됩니다.


페이지는 어떻게 실행될까? (페이지 로딩 흐름)

"게시판 글을 클릭하면 무슨 일이 벌어질까?"
한 예로 read.php를 클릭했을 때의 흐름을 보겠습니다.

1단계: /bbs/read.php 실행
2단계: lib/common.lib.php 포함
3단계: 게시글 정보 호출 (DB에서 쿼리 실행)
4단계: skin/board/스킨명/read.skin.php 호출
5단계: 화면에 출력

중요: 모든 실행 흐름은 lib/common.php → 개별 bbs 파일 → skin 순으로 연결됩니다.


설정 파일은 어디서 관리될까?

그누보드 설정은 크게 두 곳에서 관리됩니다.

파일 역할

config.php 사이트 전체 환경설정
common.php 전역 함수 및 공통 기능 포함

이 두 파일은 모든 페이지에 자동 포함되며,
include_once 또는 require_once 형태로 연결되어 동작합니다.


테이블 구조와 DB 연동 흐름 이해하기

그누보드의 데이터는 대부분 g5_로 시작하는 테이블에 저장됩니다.
예시로 게시판 글 데이터를 보면 아래와 같습니다.

테이블명 역할

g5_board 게시판 설정 정보 저장
g5_write_게시판ID 게시판 실제 글 저장
g5_member 회원 정보

핵심: 글은 g5_write_게시판ID에서 읽고, 설정은 g5_board에서 불러옵니다.


관리자 페이지는 어떻게 구성될까?

/adm/ 폴더 아래에 있는 admin.head.php, admin.menu.php 등
관리자 화면은 별도로 구성되어 있고, 로그인 여부에 따라 접근이 제한됩니다.
관리자는 일반 페이지와 별도로 다음과 같이 구성됩니다.

  1. /adm/index.php → 관리자 메인
  2. admin.head.php → 상단 공통 헤더
  3. 메뉴 클릭 → 개별 관리 페이지 호출

중요: 관리자 영역도 결국 같은 구조 (config + lib + bbs + skin)를 따릅니다.


그누보드 구조 학습을 위한 추천 순서

초보자라면 아래 순서대로 구조를 분석하는 것이 효율적입니다.

단계 학습 포인트

1단계 디렉토리 구조 전체 파악
2단계 config.php, common.php 코드 분석
3단계 bbs/ 내부 실행 흐름 이해
4단계 DB 테이블과 연동 구조 확인
5단계 skin, theme의 시각적 출력 방식 익히기

핵심: 처음부터 skin을 보기보다 bbs 실행 흐름을 먼저 파악하세요.


짧은 상황극으로 정리해보기

"게시판 글을 보고 싶은 사용자 A"

A: 게시판 글을 클릭한다
→ 서버는 bbs/read.php를 실행
→ 내부에서 게시글 번호로 DB 조회
→ skin/board/basic/read.skin.php 파일을 통해 내용 출력
→ 사용자 A는 완성된 화면을 본다

정리: 결국 모든 흐름은 php 파일과 스킨이 함께 작동하는 구조입니다.


구조 파악 후 어디서 커스터마이징할까?

디자인 변경은 skin/, 기능 변경은 bbs/ 또는 lib/에서 이루어집니다.
단, 시스템에 영향을 주는 common.php나 config.php는 백업 후 수정해야 안전합니다.

목적 수정 위치

디자인 변경 skin/board/스킨명/파일들
기능 수정 bbs/ 내부 php 또는 lib/ 함수
관리자 변경 adm/ 내부 php 파일들

필수: 구조를 제대로 이해하면 커스터마이징도 훨씬 쉬워집니다.




반응형