제로보드

1 개요

웹 프로그래머 고영수(제로)가 PHP로 개발한 웹 게시판 시스템. DB는 MySQL을 사용한다.

2 인기

2000년대 초에 개인 홈페이지 제작 열풍이 불었었고, 이때 다양한 이지보드, 세팔보드 등의 웹 게시판 시스템들이 여럿 개발되었다. 제로보드는 그 중에서도 본좌급 인기를 자랑하던 물건. 심지어 리그베다 위키엔젤하이로 밑에 들어가 있던 시절의 각종 게시판들도 제로보드였으니 말 다했다. 디시인사이드도 2000년대 중후반까지 이걸 마개조해서 사용하다가 자체 게시판으로 갈아탔다.[1]

또한 이 프로그램 덕분에 저가형 웹호스팅 시장은 아파치+PHP+MySQL 외의 다른 포맷이 사실상 전멸했을 정도의 인기를 끌었고[2], 개인 홈페이지 뿐만 아니라 기업이나 단체 홈페이지 등에서도 엄청나게 쓰면서(+더군다나 공짜이기까지 했으니) 적당한 호스팅 구해서 제로보드 깔고 스킨 다운받아서 깔고 페이지 몇 개 나모 웹에디터로 뚝딱해서 붙이면 (겉보기에는) 그럴싸해 보이는 사이트가 하나 나왔으니 너도나도 웹 사이트 제작에 뛰어들게 되고, 이런 이유로 사이트 평균 퀄리티와 단가 하락을 가져온 주범으로 지목당하기도 한다.

제로보드를 쓰는 홈페이지들은 대부분 페이지의 구조를 테이블로 짜고, 제로보드 게시판 설정의 헤더와 푸터에 각각 테이블 윗쪽 부분과 아래쪽 부분을 넣어주면 그럴싸한 페이지가 완성되었다. 당시에는 웹 표준 같은 개념이 없었으니 IE 이외의 환경에서 깨지건 말건 신경도 안 썼다.

3 특징

제로보드의 형태는 댓글을 제외하면 PC통신의 게시판 형태를 거의 그대로 가져왔다. 한국은 초고속인터넷이 다른 나라보다 빠르게 보급, 대중화되면서 인터넷의 바로 전 단계에 해당되는 PC통신이 먼저 대중화되었다. 제로보드보다 앞서 태어난 WWWBoard나 WayBoard[3], 워니보드 등등이 PC통신의 게시판 형태를 그대로 도입했다. 이 대세를 제로보드도 그대로 따른 것이다.

이 게시판의 보급과 인기로 인해 한국의 인터넷 게시판들은 게시물을 작성하면 그 밑으로 댓글이 달리는 형태가 주류로 자리잡게 되었다. 덕분에 한국의 네티즌들이 서양의 포럼형 게시판이나 일본의 스레드플로팅형 게시판을 처음 접하게 되면 어색함과 불편함을 많이 느끼곤 한다.

3.1 장점

간편한 스킨(게시판의 디자인) 시스템과 회원 관리 시스템 등이 높은 인기 요인. 스킨은 구조가 간편해서, 구조를 어느 정도만 파악하고 이미지 제작 능력만 있다면 누구나 자신의 홈페이지에 맞춰서 쉽게 스킨을 새로 만들 수 있었다. 회원 관리 시스템은 동시대의 다른 게시판 프로그램에 비해 기능이 강력해서 인기가 좋았다.

3.2 단점

하지만 2002년에 출시된 4.1 버전 이후 개발자의 사정으로 계속해서 업그레이드가 되지 않았었고, 이후 블로그의 인기와 이런저런 문제점들이 지적되어 인기가 떨어졌었다. 지금도 개인 홈페이지에서는 쓰는 사람들이 많지만, 웹 표준 문제도 있고 보안상 허점으로 사이트가 자주 털리는 사례가 많아 현재는 사용을 권장하지 않는다.

3.2.1 보안 문제

제로보드 4의 보안 문제는 당대 게시판 중 상당히 심각한 수준으로, 웹을 크롤링하면서 제로보드 4를 발견하면 자동으로 해킹하는 봇까지 있었을 정도이다. 특히 SQL 주입 취약점이 심각한 수준으로, 상당수의 제로보드 4 웹사이트가 이 취약점을 이용하여 해킹당한 사례가 있다. 대표적인 사례로 뽐뿌.

제로보드의 스킨 구현방식이 제로보드의 핵심 파일을 수정하는 방식이기에, 보안 패치가 되었다 해도 보안 패치 적용 전의 스킨을 사용시 보안 패치가 적용되지 않는 문제점이 있다. 게다가 제로보드는 2009년 이후로 개발이 중단된 상태이기 때문에, 보안 문제가 발생해도 대처하기가 어렵다.

당연히 비밀번호 암호화 방식도 케케묵은 옛날 방식이다. MySQL의 password 암호화 방식을 사용해서 암호화하는데, 문제는 DB 테이블에서 password의 자릿수가 딱 16자로 잡혀 있어서 4.1 이후 버전의 MySQL password 암호화를 저장할 수가 없게 되어 있다. 이것은 MySQL의 password 암호화가 4.0 버전까지 16자로 나왔기 때문인데, 4.1 버전에서 암호화를 바꾸면서 자릿수가 40자로 늘어났다. 이 때문에 제로보드는 4.1 이후 버전의 MySQL과 호환이 안 되게 되었고, 국내 웹 호스팅의 euc-kr 호스팅의 MySQL 버전이 4.0에서 멈추게 된 문제를 제공했다.(여담이지만 그누보드는 진작에 암호화를 갈아치워 최신 버전의 MySQL과도 호환이 잘 된다)

3.2.2 웹 표준 문제

옛날에 개발된 웹 게시판답게 웹표준을 지키지 않아 모질라 파이어폭스 등의 타사 웹 브라우저는 물론이요, 인터넷 익스플로러도 10 이상이면 (호환성 보기를 설정하지 않는 이상) 화면이 이상하게 나오거나 일부 기능이 작동하지 않는 등의 문제가 생긴다. 그 중에서 몇가지 문제점들을 뽑자면...

  • 인터넷 익스플로러 이외의 웹 브라우저에서는 목록에서 카테고리 선택이 되지 않는다. 인터넷 익스플로러 11에서도 (호환성 보기를 설정하지 않는 이상) 카테고리 선택이 되지 않는다. 이 문제는 카테고리 선택을 select box로 출력되게 할 경우 발생하는데, 코드를 뜯어보면 IE가 아닐 경우 이 부분이 출력 안되게 아예 막아놔서 벌어지는 현상이다. 저 부분을 풀어버리면 작동이 된다.
  • 일부 브라우저에서, 회원가입을 진행할 수 없다. 아이디를 쓰고 Check ID 버튼을 수백번 눌러봐야 아무 반응도 없다. 비표준 자바스크립트 사용으로 인한 문제로 추정된다.
  • 일부 브라우저에서, 사용하지 않는 버튼들이 그대로 표시된다. 예를 들어서, 글을 쓸 수 없는 게시판인데도 글쓰기 버튼이 표시된다거나 하는 문제 말이다. 이 문제는 글 쓸수 없는 게시판의 버튼을 삭제할 때 그냥 삭제하는 것이 아니라, '<Zeroboard'라는 접두어를 앞에 붙여 비정상적인 태그로 만들어 브라우저가 출력 안되게 인식하는 방법을 쓰기 때문이다. 파폭이나 크롬 같은 경우는 저걸 고쳐서 출력하기 때문에 문제가 된다.

인터넷 익스플로러 10 이상에서는 소스를 수정해서 호환성 보기를 강제로 설정시켜도 되겠지만,[4] 인터넷 익스플로러가 아니면 아무 소용 없다. 아니면 소스를 아예 웹 표준에 맞게 수정해도 되겠지만, 그럴 바에는 그냥 다른 시스템으로 바꾸는게 훨씬 낫다.

3.2.3 폐쇄적인 라이센스 정책

제로보드는 원래 라이센스 정책이 굉장히 폐쇄적이다. 유료 버전을 사지 않으면 스킨 상에 나타나는 저작권 문구조차 못 지우게 했으니(...) 그러나 차기 버전이 나오면서 제로보드라는 이름을 쓰지 않는 조건하에 수정 및 재배포가 가능해졌다.

3.2.4 플러그인 제작 문제

추가 플러그인 제작이 불편하다. 이 문제 때문에 사용자마다 제로보드의 소스가 다른 문제가 발생했다. 팁 게시판에 올라온 것을 바탕으로 수정해서 사용하던 사람이 많았기 때문. 4.1 버전 이후 업데이트가 안되고 보안 업데이트도 어려웠던 이유 중 하나이기도 하다.

4 현재

현재는 고영수씨가 NHN(현 네이버)으로 직장을 옮기고,[5] 제로보드 또한 NHN에 인수되었다. 4 버전의 개발 및 배포는 완전히 중단되었다.

2005년경 제로보드 5를 개발했으나, 베타까지 나오고 중지되었다. 그러다 2008년, NHN의 지원을 받아 제로보드 XE라는 이름으로 후속작을 내기 시작했다. 중간에 명칭을 XpressEngine으로 바꿔 지금도 꾸준히 업데이트를 하는 중. XpressEngine은 게시판 프로그램이 아니라 사이트 자체를 제작하는 웹 빌더 프로그램이다. 제로보드 4에서 DB 데이터 이전은 가능하지만 스킨 시스템이 완전히 바뀌어서 호환성은 없다. 거의 별개의 프로그램이라고 봐도 된다.

아직까지도 제로보드 4.1로 웹사이트를 운영하는 곳이 적지 않다. 제로보드 4.1은 보안이 취약하고 더 이상 사용자 지원도 되지 않기 때문에 운영에 적지 않은 어려움이 있다. 하지만 웬만큼 규모가 큰 사이트는 그 규모 때문에 다른 프로그램으로 옮기기가 쉽지 않은 상황. php 5.4 버전부터 제로보드 4.1이 제대로 작동하지 않는 문제가 있어서 호스팅 서버의 사양이 높은 사이트는 대부분 XpressEngine이나 그누보드로 바꿔서 운영하고 있다.

너무 오래 개발이 되지 않다 보니 최신 버전의 PHP와 MySQL에서는 쓰기 힘들다. 상술했듯이 PHP 5.4에서 PHP 4 시절의 오래된 기능의 호환을 제거하면서 작동이 되지 않게 되었다.[6] MySQL은 더 심한 것이, 이미 오래전에 나온 4.1 버전부터 작동이 되지 않는다. 이는 MySQL의 password() 함수의 비밀번호 생성 알고리즘이 보안성을 이유로 향상되면서 호환성이 없어진 것이 원인.[7] 거기다 euc-kr 기반이라 요즘 많이 쓰는 UTF-8 환경에서는 쓰는 것도 어렵다. 배포가 중지되기 직전 UTF-8 버전이 배포된 적이 있지만 이미 그때는 XE가 개발된 이후라 쓰는 사람도 많지 않았다. 이 때문에 국내 호스팅 제공 업체의 euc-kr 지원 호스팅은 대다수가 MySQL 버전이 4.0에 머물러 있는 것을 볼 수 있다.

현재 제로보드와 비슷하면서도 계속해서 업뎃이 되고 사용자가 활발한 게시판에는 오픈소스 프로그램인 그누보드가 있다.

4.1 제로보드를 사용하는 사이트

  1. 지금도 갤로그 등 일부 기능에서 제로보드의 흔적이 보이기도 한다. 다만 PC 버전 갤러리는 2013년 8월 이후로 제로보드의 흔적이 완전히 없어졌다.
  2. 사실 이건 해외도 마찬가지다. 해외도 2000년대에는 저 조합을 쓰는 phpBB나 다른 포럼형 게시판이 인기를 끌었고, 그 이후에는 역시 저 조합을 쓰는 워드프레스가 인기몰이하다가 2010년대 중반부터는 워낙 서버값이 싸지다보니 그냥 가상서버 이상급을 끌어다 쓰는 경우가 많아져서 조합은 아무래도 좋게 되었다. Node.js, 루비, NoSQL계열이 인기 많아진건 덤. 그래도 아파치를 제외하면 아직 정석급 자리를 차지하고 있다.
  3. 훗날 이 보드는 그누보드에 큰 영향을 준다.
  4. lib.php파일 상단에 header ("X-UA-Compatible: IE=EmulateIE9");를 추가해주면 된다.
  5. 정확히는 근무하던 회사를 NHN이 인수하면서 NHN 소속이 된 것.
  6. 설치 페이지에서부터 엄청난 양의 Deprecated가 반겨주며 제로보드 4.1을 사용하려던 홈페이지 제작자를 벙찌게 만든다. 5.5 이후의 최신 PHP 버전들에서는 현재도 업데이트 중인 그누보드 4마저 이미지 불러오기 관련 Deprecated가 뜬다. 그누보드 5는 최신 버전에서 PHP 7.0 대응 업데이트가 완료되었기 때문에 이런 문제는 없다.
  7. 호환성을 위해 예전 알고리즘이 old_password()라는 함수로 남아있기 때문에 소스를 수정하면 4.1 이후 버전에서도 사용이 가능하긴 하다.
  8. 위에서도 언급했지만, 보안상의 취약점으로 인해 개인정보가 유출되는 사태가 발생했다.
  9. 보안상의 취약점으로 인해 게시물의 악성코드가 삽입되는 일이 자주 일어난다고 한다. 참고로 2012년 초반 디시인사이드에서 일어났던 일이다.
  10. 주소체계를 자체적으로 변경해서 사용중.
  11. 한때 XpressEngine으로 이전하려는 계획이 있었으나, 서버 이전으로 인해 계획이 취소되었다. 해당 문서 참조.
  12. 자체적으로 꽤 많이 마개조하여 사용중이다.