[include(틀:다른 뜻1, other1=이전에 제로보드 XE라고 불렸던 시스템, rd1=XpressEngine)] ||<-2>
{{{+1 '''제로보드'''}}}[br][[파일:zeroboard4 로고.png|width=80%]] || || '''종류''' ||전자 게시판 || || '''언어''' ||[[PHP]] || || '''라이선스''' ||제로보드 독자라이선스 || || '''개발''' ||고영수 || || '''최초 버전''' ||1.0 (1999년 말) || || '''최신 버전''' ||4.1 pl10 (2009년 9월 22일) || || '''유지보수''' ||중단됨 || [목차] == 개요 == 웹 프로그래머 고영수(제로)[* 2023년 기준, 라인 넥스트 대표]가 [[PHP]]로 개발한 웹 게시판 시스템. DB는 [[MySQL]][* 후술하겠지만, MySQL 4.0 이하 버전에 대응하는 버전이 없는 [[MariaDB]]는 쓸 수 없다.]을 사용했다. == 역사 == 2000년대 초에 [[개인 홈페이지]] 제작 열풍이 불었었고, 이때 다양한 [[이지보드]], 세팔보드 등의 웹 게시판 시스템들이 여럿 개발되었다. 제로보드는 그 중에서도 본좌급 인기를 자랑하던 물건. 심지어 [[리그베다 위키]]가 [[엔젤하이로]] 밑에 들어가 있던 시절의 각종 게시판들도 제로보드였다. [[디시인사이드]]도 2013년 7월까지 이걸 [[마개조]]해서 사용하다가 자체 게시판으로 갈아탔다. 또한 이 프로그램 덕분에 저가형 웹호스팅 시장은 [[아파치 HTTP 서버|아파치]]+PHP+MySQL 외의 다른 포맷이 사실상 전멸했을 정도의 인기를 끌었고, 개인 홈페이지 뿐만 아니라 기업이나 단체 홈페이지 등에서도 엄청나게 쓰면서(+더군다나 공짜이기까지 했으니) 적당한 호스팅 구해서 제로보드 깔고 스킨 다운받아서 깔고 페이지 몇 개 [[나모 웹에디터]]로 뚝딱해서 붙이면 (겉보기에는) 그럴싸해 보이는 사이트가 하나 나왔으니 너도나도 웹 사이트 제작에 뛰어들게 되고, 이런 이유로 사이트 평균 퀄리티와 단가 하락을 가져온 주범으로 지목당하기도 한다. 사실 이건 해외도 마찬가지다. 해외도 2000년대에는 저 조합을 쓰는 [[phpBB]]나 다른 포럼형 게시판이 인기를 끌었고, 그 이후에는 역시 저 조합을 쓰는 [[워드프레스]]가 인기몰이하다가 2010년대 중반부터는 워낙 [[서버]]값이 싸지다보니 그냥 가상서버 이상급을 끌어다 쓰는 경우가 많아져서 조합은 아무래도 좋게 되었다. [[Node.js]], [[Ruby]], [[NoSQL]] 계열이 인기 많아진 건 덤. 그래도 아파치를 제외하면 아직 정석급 자리를 차지하고 있다. 제로보드를 쓰는 홈페이지들은 대부분 페이지의 구조를 테이블로 짜고, 제로보드 게시판 설정의 헤더와 푸터에 각각 테이블 윗쪽 부분과 아래쪽 부분을 넣어주면 그럴싸한 페이지가 완성되었다. 당시에는 웹 표준 같은 개념이 없었으니 IE 이외의 환경에서 깨지건 말건 신경도 안 썼다. 2009년 9월 22일 배포된 제로보드 4.1 pl10 버전을 마지막으로 개발 및 배포가 중단되었다. 인터넷을 찾아보면 이 버전을 구할 수는 있지만 보안 취약점이 많으므로 사용을 권장하지 않는다. 개발 중단 이후 다른 유저들이 비공식적으로 수정한 버전이 몇개 존재하지만, 이 역시 현재 시점에서는 보안 취약점이 많으므로 사용을 권장하지 않는다. 제로보드 5가 2005년경 나왔으나, 베타 버전인 0.0.5 까지만 나온 상태로 중지되었고, 이후에는 XpressEngine이라는 새로운 프로젝트가 시작되었다. 아직까지 제로보드 4.1로 웹사이트를 운영하는 곳도 있다. 제로보드 4.1은 보안이 취약하고 더 이상 사용자 지원도 되지 않기 때문에 운영에 적지 않은 어려움이 있다. PHP 5.3 버전부터 제로보드 4.1이 제대로 작동하지 않는 문제가 있어서[* 5.3부터 추가된 경고성 문구인 Deprecated(제거 예정)가 한몫 했다.] 호스팅 서버의 사양이 높은 사이트는 대부분 [[XpressEngine|XE]], [[라이믹스]], [[그누보드]], [[워드프레스]] 등으로 전환했다. == 특징 == 제로보드의 형태는 댓글을 제외하면 [[PC통신]]의 게시판 형태를 거의 그대로 가져왔다. 한국은 초고속 인터넷이 다른 나라보다 빠르게 보급, 대중화되면서 인터넷의 바로 전 단계에 해당되는 PC통신이 먼저 대중화되었다. 제로보드보다 앞서 태어난 WWWBoard나 WayBoard,[* 훗날 이 보드는 [[그누보드]]에 큰 영향을 준다.] 워니보드 등등이 PC통신의 게시판 형태를 그대로 도입했다. 이 대세를 제로보드도 그대로 따른 것이다. 이 게시판의 보급과 인기로 인해 한국의 인터넷 게시판들은 게시물을 작성하면 그 밑으로 [[댓글]]이 달리는 형태가 주류로 자리잡게 되었다. 덕분에 한국의 네티즌들이 서양의 포럼형 게시판이나 [[일본]]의 스레드 플로팅형 게시판을 처음 접하게 되면 어색함과 불편함을 많이 느끼곤 한다. 이에 대해서는 [[스레드#s-2]] 문서와 [[플로트#s-2]] 문서, [[인터넷 포럼]] 문서를 참고. === 장점 === 간편한 스킨(게시판의 디자인) 시스템과 회원 관리 시스템 등이 높은 인기 요인. 스킨은 구조가 간편해서, 구조를 어느 정도만 파악하고 이미지 제작 능력만 있다면 누구나 자신의 홈페이지에 맞춰서 쉽게 스킨을 새로 만들 수 있었다. 회원 관리 시스템은 동시대의 다른 게시판 프로그램에 비해 기능이 강력해서 인기가 좋았다. === 단점 === 하지만 2002년에 출시된 4.1 버전 이후 개발자의 사정으로 계속해서 업데이트가 되지 않았었고, 이후 [[블로그]]의 인기와 이런저런 문제점들이 지적되어 인기가 떨어졌었다. 지금도 개인 홈페이지에서는 쓰는 사람들이 많지만, 웹 표준 문제도 있고 보안상 허점으로 사이트가 자주 털리는 사례가 많아 현재는 사용을 권장하지 않는다. ==== 코드 퀄리티 ==== 코드 퀄리티는 제로보드가 만들어진 당시 기준으로도 상당히 엉망이다. [[프레임워크|중심이 되는 설계]]가 없고[* 사실 PHP용 프레임워크(Laravel, CodeIgniter, CakePHP 등)는 5.4버전 즈음 되어서야 본 궤도에 올랐다.], 그때그때 원하는 기능을 덕지덕지 이어붙인 형태라서 모듈화가 제대로 되어 있지 않고 사방에 전역 변수가 떡칠되어 있다. 제로보드 4가 보안에 취약하다는 악명은 보안에 취약한 코드를 만들기 쉬운 당시 PHP의 특성과 제로보드 4의 코드 퀄리티가 빚어낸 결과이다. 제로보드 4의 강점이었던 스킨 시스템도 어떤 인터페이스를 제공하는 것이 아니라 그냥 생짜 PHP 코드를 집어넣는 형태로 구현되어 있다. 유저가 제작한 스킨으로 인해 보안 문제를 일으키는 경우나 제로보드가 버전업 될 때마다 동작하던 스킨이 깨지는 경우가 비일비재했다. 더 큰 문제는 제로보드 스킨 제작으로 PHP에 입문한 사람들이 많다는 것이다. 사실상 그런 사람들에게는 제로보드 4 코드가 레퍼런스인 셈인데, 코딩 습관이 제로보드 4에 맞춰지게 된다. 이로 인해 제대로 된 강좌 없이 막히는 부분이 있으면 다른 소스에서 복사 붙여넣기 하는 개발문화가 형성되었고 이들이 프로그래머로 진출하면서 비슷한 수준의 코드를 생산하게 되는 일이 많았다. ==== 보안 문제 ==== 제로보드 4의 보안 문제는 당대 게시판 중 상당히 심각한 수준으로, 웹을 크롤링하면서 제로보드 4를 발견하면 자동으로 해킹하는 봇까지 있었을 정도이다. 특히 [[SQL injection|SQL 주입]] 취약점이 심각한 수준으로, 2000년대 말~ 2010년대 초반 상당수의 제로보드 4 웹사이트가 이 취약점을 이용하여 해킹당한 사례가 있으며 이 시기 수많은 서브컬처 계열 사이트가 폐쇄되거나 리뉴얼을 해야만 했다. 대표적인 사례로 [[뽐뿌 개인정보 해킹 사건|뽐뿌]]. 제로보드의 스킨 구현 방식이 제로보드의 핵심 파일을 수정하는 방식이기에, 보안 패치가 되었다 해도 보안 패치 적용 전의 스킨을 사용시 보안 패치가 적용되지 않는 문제점이 있다. 게다가 제로보드는 2009년 이후로 개발이 중단된 상태이기 때문에, 보안 문제가 발생해도 대처하기가 어렵다. 당연히 비밀번호 암호화 방식도 케케묵은 옛날 방식이다. MySQL의 password 암호화 방식을 사용해서 암호화하는데, 문제는 DB 테이블에서 password의 자릿수가 딱 16자로 잡혀 있어서 4.1 이후 버전의 MySQL password 암호화를 저장할 수가 없게 되어 있다. 이것은 MySQL의 password 암호화가 4.0 버전까지 16자로 나왔기 때문인데, 4.1 버전에서 암호화를 바꾸면서 자릿수가 41자로 늘어났다.[* [[SHA|SHA-1]](결과값이 40자다)을 두 번 돌리고 앞에 [[별표]]를 붙인다.] 이 때문에 제로보드는 4.1 이후 버전의 MySQL과 호환이 안 되게 되었고, 국내 웹 호스팅의 euc-kr 호스팅의 MySQL 버전이 4.0에서 멈추게 된 문제를 제공했다. 여담이지만 [[그누보드]]는 진작에 암호화를 갈아치워 최신 버전의 MySQL과도 호환이 잘 된다. 게다가 구 버전의 PHP와 MySQL을 쓰기에 SQL 주입을 원천적으로 차단하는 Prepared statement[* 쿼리 명령과 변수를 분리해서 기술하는 기법.]도 쓸 수 없다. 그야말로 [[답이 없다]]. ==== 웹 표준 문제 ==== [[웹 표준]]을 지키지 않아 [[Chrome]]이나 [[Firefox]] 등의 타사 [[웹 브라우저]]는 물론이고 [[Internet Explorer]]도 10 이상이면 화면이 이상하게 나오거나 일부 기능이 작동하지 않는 등의 문제가 생긴다. 그 중에서 몇 가지 문제점들을 뽑자면 다음과 같다. * Internet Explorer를 제외한 [[웹 브라우저]]에서는 목록에서 카테고리 선택이 되지 않는다. Internet Explorer도 10 이상에서는 호환성 보기를 설정하지 않으면 카테고리 선택이 되지 않는다. 이 문제는 카테고리 선택을 select box로 출력되게 할 경우 발생하는데, 코드를 뜯어보면 Internet Explorer가 아닐 경우 이 부분이 출력이 안 되게 아예 막아놔서 벌어지는 현상이다. 저 부분을 풀어버리면 작동이 된다. * 일부 브라우저에서 회원가입을 진행할 수 없다. Internet Eplorer 역시 10 이상에서 문제가 발생한다. 아이디를 쓰고 Check ID 버튼을 아무리 눌러도 반응이 없다. 비표준 [[JavaScript|자바스크립트]] 사용으로 인한 문제로 추정된다. * 일부 브라우저에서 사용하지 않는 버튼들이 그대로 표시된다. 예를 들어서, 글을 쓸 수 없는 게시판인데도 글쓰기 버튼이 표시된다거나 하는 문제 말이다. 이 문제는 글을 쓸 수 없는 게시판의 버튼을 삭제할 때 그냥 삭제하는 것이 아니라, '