그누보드

 

1. 개요
2. 역사
3. 기능
3.1. 영카트
3.2. 그누커머스
3.3. 라온보드
4. 특징
4.1. 탈퇴 기능
5. 관련 문서


1. 개요


2000년대 초반부터 쓰이고 있는 PHP 기반 오픈소스 설치형 인터넷 게시판 프로그램(CMS). 홍석명이 처음 개발하였으며 "에스아이알소프트"라는 회사를 설립하여 지속적으로 버전업을 하면서 배포하고 있다. 독자적인 라이센스를 사용하고, 게시판 밑에 저작권 표기하라고 했던 제로보드와는 달리 GNU 개념의 프로그램이고, GPL 라이센스를 사용한다. 이름부터가 자유 소프트웨어를 뜻하는 '그누(GNU)'일 정도. 라이센스 자체가 오픈소스인데다 유저가 만든 스킨이나 플러그인에는 GPL을 적용 안해도 된다는 예외조항이 있기 때문에, 스킨이나 플러그인 개발이 많고 여러 가지 웹빌더도 나와 있다.

2. 역사


제로보드가 웹 게시판을 꽉 잡고 있을 때 나온 프로그램이라 초창기에는 그다지 인기가 없었다. 하지만 제로보드의 개발자 고영수가 제로보드 4의 개발 및 사후지원을 중단하고 새로운 프로그램인 XpressEngine을 공개함에 따라 상황이 바뀌었다. 기존 제로보드 4는 가뜩이나 해킹 공격에 취약한데 사후 지원마저 중단되어서 더 이상 사이트 플랫폼으로 쓰기 힘들어졌다. 한편 XpressEngine은 단순한 게시판 프로그램이었던 제로보드와는 달리 사이트를 통째로 구축하는 웹 빌더 프로그램이어서 패러다임 자체가 달랐다. 당연히 기존 제로보드의 각종 스킨과 플러그인과는 호환이 되지 않은 데다 기본 구조 자체가 아예 달랐기 때문에 이미 제로보드로 사이트를 구축해둔 대규모 홈페이지들이 옮겨갈 엄두를 낼 수가 없었다. 덕분에 그누보드가 제로보드의 대안으로서 각광을 받은 것이다. 스킨이나 플러그인 호환은 되지 않았지만 DB 구조도 엇비슷하고 변환 프로그램도 많이 나와 있어서 이전도 쉬웠던 것도 인기의 한 원인.
2013년 3월부터는 웹 접근성 향상 버전을 새로 만들고 있다. 여담이지만 개발자의 네이밍 센스가 독특하다. 해당 프로그램의 애칭은 지포스('''G'''nuboard'''4s'''). 데모 사이트의 이름은 "글을 써라"라는 의미의 써글. 그러다가 2013년 9월을 기점으로 '그누보드 5'로 이름이 바뀌었다. 그리고 2014년 6월 10일, 1년 넘게 달고 있던 베타 딱지를 떼고 그누보드 5의 정식 버전이 공개되었다. 그누보드 5는 구조를 새로 짰기 때문에 4의 스킨이나 플러그인과는 호환이 되지 않는다. DB도 일부 달라졌고, 이 때문에 변환 프로그램을 거쳐야 그누보드 4의 DB를 5로 옮겨올 수 있다.[1] 그러나 XE처럼 개념이 완전히 달라진 것은 아니고, 1년 넘게 베타 테스팅을 해서 제작에 참고할 만한 스킨도 있어서 큰 혼란은 적었다.
그누보드 4는 2016년 5월 현재 2015년 11월 30일에 배포된 4.37.38 버전을 끝으로 버전 업데이트가 중단되어 있다. PHP 5.3에서부터 Deprecated 경고가 뜨며 PHP 7에서는 아예 작동 불가이다!

3. 기능


WYSIWYG도 기본으로 지원하는데, 상용 에디터인 cheditor를 무료로 배포하고 있다. 라이센스는 에디터에 한하여 재배포하지 않는다는 조건. 개인적으로 구입하면 33만원인데, 제작자와 따로 재배포 라이선스 계약(220만원)을 맺어서 그누보드에 한해서만 배포를 하는 듯 하다. 그누보드 5는 처음에는 cheditor가 빠지고 ckeditor라는 오픈소스 에디터가 기본으로 들어갔으나, 5.0.6에서 네이버에서 개발한 스마트에디터 2도 포함됐고, 이것이 5.0.8에서 기본으로 바뀐다. 그러다 5.0.24에서 ckeditor가 제외되고 별도 배포로 바뀌었으나 5.2.6에서는 cheditor가 다시 포함되었다.
나린위키라는 그누보드의 플러그인도 있는데, 이름에서 알 수 있듯이 위키위키 플러그인이다.
5.1로 버전이 올라가면서 테마 기능이 들어갔다. 기존의 스킨 디렉토리에서 각각으로 관리되던 스킨과 헤더, 푸터 등 사이트 디자인을 이루던 거의 모든 것을 테마로 통합해서 뺀 것이다. 추가적으로 lib 파일도 연결시킬 수 있기 때문에 이전보다 그누보드 소스를 직접 수정해야 되는 일이 많이 줄어들었다. 큰 변경사항 같지만 스킨 함수나 변수 등의 API는 동일하기 때문에 큰 변경 없이 마이그레이션이 가능하다. 또한 이 버전 중간에 PHP 7 대응패치가 되었다.
2016년 7월 25일 5.2로 중간 버전이 올라갔는데, 변경점은 그냥 보안 패치다. 그누보드와 연동되는 영카트 쪽에서 네이버페이를 지원하는 메이저 업데이트가 있었기 때문에 버전 정보를 서로 맞추느라 이렇게 된 것이다.
2017년 11월 21일 5.3 베타 버전이 나왔고, 2018년 4월 1일 5.3 정식 버전이 나왔다. 소셜로그인을 기본으로 지원하고 관리자 페이지와 기본 스킨의 디자인이 개편되었다.
2019년 12월 2일 5.4 정식 버전이 나왔다. 이전에 나왔다가 개발이 중지된 그누보드M에서 먼저 선보인 후크(Hook) 기능이 들어갔다. 이 기능으로 워드프레스와 비슷한 방식으로 플러그인을 제작할 수 있게 되어 기능 추가시 그누보드 원본 소스 수정을 최소화 할 수 있게 되었다.

3.1. 영카트


그누보드 기반의 온라인 쇼핑몰 플러그인으로 다른 플러그인이나 빌더와는 다르게 그누보드 제작사 SIR이 직접 제작한다. 또한 다른 플러그인들과는 다르게 영카트 4까지는 유료로 판매했다. 유료로 판매되던 그누보드 4 기반의 영카트 4와 달리, 그누보드 5 기반의 영카트 5부터는 무료 배포가 결정되었다. XpressEngine의 쇼핑몰 플러그인들이나 카페24 쇼핑몰 창업 서비스처럼 판매 수익을 포기하는 대신 결제 수수료로 수익 구조를 전환했다. 그누보드를 자유 소프트웨어로 풀면서도 SIR이 영리사업체로 버티는 이유는 바로 이 영카트의 판매 수익과 결제 수수료가 있기 때문이다.

3.2. 그누커머스


워드프레스 용 그누보드 게시판+쇼핑몰 플러그인이다. 원래 그누프레스라는 이름으로 게시판 플러그인만 개발하고 있었지만, 쇼핑몰도 얹은 형태로 변경되었다. 어떻게 보면 영카트의 워드프레스 버전이다.
그누보드 5와 영카트 5와는 호환이 안 된다. 워드프레스는 그누보드와 구조가 다르기 때문이다.

3.3. 라온보드


그누보드5의 PHP 라라벨 프레임워크(PHP Laravel Framework) 버전이다.
View 자체를 독립 시키려고 라라벨을 사용하였으며 생각보다 사용자가 늘어나지 않아 개발을 중단 하였다.

4. 특징


개발된지 10년이 훌쩍 넘은 만큼 전체적으로 오래된 코드들이 많고, 긴 기간동안 여러명이 개발하면서 스파게티가 된 부분이 있다.
MVC패턴과 같은 보편적인 백엔드 개발 방법론 역시 지켜지지 않았기 때문에, 하나의 파일 안에서 SQL 쿼리를 실행하는 코드와 HTML을 출력하는 코드가 한번에 존재하는경우가 빈번하다. 컨트롤러로만 이루어져있어야 할 ./bbs 경로에서 HTML을 뿌리는 경우가 있기 때문에 테마/스킨만으론 고치지 못하는 HTML 구조가 있으며, 반대로 뷰로만 이루어져있어야 할 스킨 경로의 파일에서 쿼리를 직접 실행하는 경우도 있다. 비슷한 코드가 여러 파일에 걸쳐서 재작성 된 경우도 있고, 전역 스코프에서 선언해서 사용하는 변수/함수들도 일반적인 수준에 비해 훨씬 많은 편이다.
사용자에게 편의성을 제공하기 위한것 이라고 보기에는, 템플릿 엔진 지원이라던지 쿼리빌더의 사용 같은 개발 편의성을 위한 라이브러리 사용은 이루어지지 않고 있다.
그누보드를 사용한 위트랜드에서 사이트 속도가 느려지거나 다운되는 현상이 자주 발생해서 결국 운영자가 게시판 모듈을 처음부터 다시 설계해야 했다. 상술한 패턴없이 여기저기서 쿼리 실행하는게 원인인 듯(...)
업데이트는 꾸준히 한다. 오래되었기 때문에 기본적인 기능은 다 있어서 기능추가는 적지만, 보안 패치는 바로바로 나오는 편. 커뮤니티 쪽도 곤란할 때 도움받기 좋게 많이 활성화가 되어 있다.
단점으로는 웹 표준을 지원하지 않는다는 것. 개발자도 이 문제를 인지했는지 DTD 버전 이라고 해서 웹표준 지원 버전을 따로 만들고 있다. 문제는 기존 스킨이나 플러그인과 호환이 안 된다는 것. 결국 그누보드 5로 변경하여 스킨 구조를 아예 새로 짰다.
또한 보안성 면에서도 문제가 있는데, 기본적으로 제로보드와 비슷한 구조를 가지고 있다보니[2] 제로보드의 보안 취약점을 그누보드도 고스란히 가지고 있다. 이 보안성 문제는 업데이트로 어느정도 해결을 하고 있으니 아예 사후지원이 중단된 제로보드보다는 낫다.
기능 추가를 위해서 그누보드 원본의 소스 코드를 직접 수정하는 일이 다반사라서, 너무 많이 고쳤을 경우 업데이트가 어려워지는 문제점이 존재한다. 그나마 5.4 버전에서 후크 기능이 들어가서 소스 수정할 일은 많이 줄어든 편이다.

4.1. '''탈퇴 기능'''


탈퇴시 개인정보가 완전히 삭제되는 것이 아니라서 탈퇴 후 재가입할 때, 탈퇴했던 정보로는 가입할 수 없다.(사이트 운영자가 별도로 삭제하지 않는 한...) 그누보드는 탈퇴시 개인정보 중 아이디, 닉네임, 이름만 남기고 나머지 정보만 삭제하기 때문이다.

5. 관련 문서



[1] g4_import.php라는 이름으로 DB 변환 프로그램이 내장되어 있다.[2] SQL prepared statement 미지원, 자체적으로 구현한 환경변수 전역화 등.