2006/05/01 22:44
제로보드 - 멍청함의 현명함.
스스로도 제로보드에 데인 적이 몇 번인가 있긴 하지만, 여전히 사람들이 게시판 솔루션을 추천해달라고 하면 제로보드를 추천하곤 합니다. 다른 분들과 마찬가지로 제로보드에 불만이 있기는 하지만, '아직까지도' 그걸 대체할만한 솔루션이 나타나지 않았기 때문입니다. 제로보드가 오래된 구조를 가지고 있고, 추가적인 개발이 더 이상 아루어지지 않고 있어 슬슬 솔루션으로써의 수명이 다해 가고 있기는 하지만, '여전히' 대체할 만한 솔루션이 없는 것도 사실입니다. 때문에 이 레거시 솔루션을 유지하기 위한 웹서버와 데이터베이스가 시대의 흐름을 반영하지 못하고 있기도 하지요.
문제는 위에서도 두번이나 반복했듯이 제로보드를 대체할 솔루션이 '없다'는 겁니다. 분명 혹자는 이런 저런 게시판들이 있으며, 게시판을 만들기도 쉬우며, 스킨이 없다면 스킨 정도는 '만들면' 된다고 이야기하겠습니다만, 그럴 가능성은 '없습니다.' 절망적일 정도로, 일반 사용자들에게 그런 일을 바랄 수 없습니다. 애초에 제로보드의 스킨조차도 만들어본 적이 없는 사람들에겐 무리입니다.
제로보드가 인기있었던 점은 모두가 아시는 대로 스킨 때문일 겁니다. 그러면 '어째서 제로보드에는 그렇게 다양한 스킨이 있는가.'라는 질문에 대한 답을 생각해보면, 꽤 멍청한 해답이 나옵니다. 근래에 만들어지는 게시판 솔루션들은 군더더기 없는 좋은 구조로 만들어져서인지 스킨을 하나 만들기 위해서는 게시판 솔루션 자체의 리퍼런스를 참고하고, 게시판 자체가 어떤 식으로 돌아가는지에 대해서 충분한 지식을 가지지 않으면 안됩니다. 게시판의 각 부분이 훌륭하게 클래스화 되어 있다면, 자신이 필요한 기능이 어느 클래스에 들어가 있는지 소스를 읽거나, 제작자의 메뉴얼을 읽어야 할겁니다. 그리고 대부분의 경우 개발에 필요한 데이터는 스스로 파악하지 않는 한 거의 알 수 없지요. (근래에는 태터툴즈가 대표적입니다. 태터툴즈의 플러그인 이벤트 리퍼런스를 보신 적이 있습니까?)
멍청한 방법이기는 하지만, 제로보드는 '매우 전통적인' 웹 스크립트 구현방법을 답습하고 있기 때문에 스킨 파일에서 게시판에 들어갈 최종 데이터인 'data' 배열에 멋대로 접근할 수 있습니다. 필요한 기능이 어디 붙어있는지, 어떻게 사용하는지에 대한 지식같은건 크게 필요하지 않습니다. 출력 직전의 데이터 배열에 멋대로 접근해서 멋대로 변경하고, 멋대로 추가한 다음, 출력단을 수정해주면 뭐라도 만들 수 있습니다. 제로보드를 이용한 겔러리에서부터 방명록, 일정관리, 예약관리시스템, 텍스트 아카이브, 블로그 등이 아무렇지도 않게 나올 수 있었던 것은 이런 멍청한 구조가 있었기 때문입니다. 그리고 제로보드와 스킨에 있어서 이 구조는 대단한 장점입니다.
어째서 요즘 만들어지는, 똑똑하게 설계된 좋은 게시판 솔루션들이 널리 활용되지 못하는 걸까요. 답은 간단합니다. '멍청하지 않기 때문'입니다. 게시판이 아무리 적은 서버 자원을 차지하고, 효율적으로 움직이고, 높은 확장성을 가지고 있다고 해도 그 방법이 제로보드가 사용하던 전통적이고도 지금에 와서 보면 멍청해 보이는 수준의 확장 방법을 제공해 주지 못하고 있기 때문입니다. 계속해서 이야기하지만, 이 방법은 지금에 와서 보면 멍청하기 짝이 없는 방법이지만, 난이도 면에서 이에 준하는 방법이 나오지 않는 한은 앞으로도 오랜 기간 동안 이 레거시 솔루션이 서버의 한 구석을 차지하고 있어야 할 겁니다.
제로보드가 오픈소스로 굴러나와 개선되느냐, 아니면 다른 솔루션이 멍청하도고 현명한 확장 방법을 제공하느냐. 어느 한쪽이 실행되지 않는 이상은 지금의 상태가 계속해서 유지되겠지요.
