글 수 1,435

제로보드의 몇가지 문제점에 대해

조회 수 994 추천 수 2 2008.04.02 09:16:11

이걸 적을까 말까 하다가 이 문제를 제기한 사람이 없는것 같아서 적어봅니다.
제가 제로보드로 사이트를 구성하면서 느꼈던 몇가지 문제점들에 대해서 적어보겠습니다.


1. 스킨 디렉토리 구조가 너무 비효율적이다.

스킨 만들기 시작하기도 전에 질렸습니다; 난해한 디렉토리 구조에 너무 복잡했기 때문이죠.
제로보드는 모듈/위젯/애드온으로 각각을 구분하는데 이 프로그램들의 기능들을 보면 '서비스형/관리형/기능성/부가모듈/기타' 나누는데 이 모든 프로그램이 단지 모듈과 위젯/애드온으로만 구분되어 정리되어 있습니다.
프로그램이야 큰 상관은 없지만 자주 업데이트가 일어나는 스킨의 경우 상당히 복잡합니다.

zeXE / modules / 모듈프로그램 / skins / 스킨종류 / 스킨파일
zeXE / modules / 모듈프로그램 / skins / 스킨종류 / images / 이미지파일
등등...

각각 모듈별로 따로 놓고 봤을때 이러한 구조는 크게 문제는 안될듯 보입니다.
그러나 제로보드가 통합사이트 구축을 목표로 만들어진 프로그램인 만큼, 전체적인 시야에서 본다면 이러한 구조는 비효율적이라 생각됩니다. 수정해야 하는 프로그램들의 스킨을 찾는것도, 관리 하는 것도 복잡하기 때문이죠. 스킨 폴더를 실제 사용하는 사람들은, 홈페이지에 접속하는 네티즌도 아니고 프로그램을 개발하신 개발자도 아닌 사이트를 만드는 유저입니다. 프로그램의 통일성이나 보기 좋은 폴더 보다는 관리/유지가 쉬운 방법이 낫지 않을까요.

  1. 위젯의 스킨 공유.
    사이트 구축시 위젯의 디자인은 자주 반복되는데, 스킨의 이용이 가장 많이 사용되는 부분입니다. 이러한 위젯의 디자인을 공유한다면 더욱 간결해지지 않을까 생각합니다.

    즉, 사이트 레이아웃을 따로 관리하듯이, 위젯 레이아웃을 기본으로 만들어 두고 그 안에처리는 각 위젯프로그램에 따라 달라질 수 있는거죠. 위젯들은 디자인의 구성이 간단한 만큼 변형도 그리 많지 않습니다.

    단지 '제목'과 '내용', 그리고 디자인을 결정하는 레이아웃입니다.

    제목은 유/무에 따라 출력하면 될테고, 내용만(또는 제목도) 따로 html 스킨파일로 제작해두어서 포함시키면 지금보다 스킨제작이 더 간단해지지 않을까요?
  2. 제로보드4나 그누보드처럼 스킨 폴더를 따로 두고 관리 하는 것입니다.
    애드온은 스킨이 거의 없으니 addon 폴더 하나면 될듯 합니다. 위젯은 거의다가 섭스형이기 때문에 굳이 분류할 필요 없이 스킨이 있는 위젯만 분류하면 되겠죠.

    모듈의 경우 스킨을 쓰는 모듈이 그리 많지 않은반면, 각각의 모듈에서 정의하는 스킨파일들은 꽤 많습니다. 그래서 각각의 모듈명으로 폴더를 만들어도 크게 상관은 없을거라 생각하고 있습니다.


2. XE에서 사용된 명칭(용어)이 모호하거나 다른 단어로 쓰여 혼란을 준다.

문서화/매뉴얼 포럼에서는 용어집의 필요성을 이야기한 분이 계시더군요. 서로다른 명칭(용어)이 사용되면 독자 입장에서도 혼란이 오기 때문이죠.

제로보드에서도 스킨과 프로그램에서 많은 용어들이 의미가 불분명하거나 또는 다르게 사용되거나 하는 변수들, 속성들이 많습니다.

예를들어 웹에서 타이틀(title)이라 하면 사이트의 제목으로 통합니다만, 제로보드의 CSS에서는 글 제목에서도 리플 제목에서도 사용됩니다. 또하나 예를들면, 제로보드 프로그램상으론 'vote'라 사용되는 '추천' 변수는 스킨에서는 'recommend' 또는 'vote'로 혼용되어 사용되고 있습니다.

이런 명칭/용어들의 통일성은 프로그램 개발이나 스킨의 공유시에 가장 중요하다고 생각합니다.


3. 제로보드는 스킨에 많은 자유도가 없다.

  1. 제로보드는 무료임에도 불구하고 기본으로 깔끔한 스킨이 제공됩니다.
    그러나 제로보드의 공식 기본 스킨은 이미 '완성형' 스킨이기 때문에 새로 만들려 하거나, 수정하려면 상당히 고생해야 합니다.
    수정하면서 일단은 써보려고 하는데 위의 2번에 적은 것처럼 스킨을 수정하는데 어려운 점이 있습니다.

    특히, 이전 제로보드4 보다 스킨들이 세분화 되어서 이 작업은 좀 노가다라 해야할 정도로 이 파일 저 파일 열고 수정해야합니다; (디렉토리가 상당히 복잡하다는 것도 한 몫합니다.)

    이 부분에 대해서는 스타일을 배제한 순수 템플릿 코드와 HTML 코드로만 이뤄진 '기본형' 스킨을 배포하는게 옳다고 생각합니다.
  2. 제로보드 공식 스킨을 기본으로 하여 'common'으로 지정한 CSS 또는 자바스크립트들은 새로운 스킨 제작에 방해가 되기도 합니다.
  3. 폼 버튼의 경우 자바스크립트를 수정하지 않으면, 이미지로된 버튼을 쓸수 없는 경우도 있습니다. (글 작성시)
    이 경우 이미지/일반 폼버튼 둘다 지원하는게 옳다고 생각합니다.
  4. 각 스킨페이지(특히 게시판처럼)에서 사용할 수 있는 값들이 어떤것들이 있는지 일반 유저가 알아내기 힘듭니다.
    PHP를 조금 한다면 직접 파일을 분석하면서 알수 있겠지만, 비효율적이라 생각합니다. 제로보드4처럼 각 페이지에서 사용가능한 변수만 정리해주어도 상당히 유용할 듯 합니다.


4. 이외에...

유저가 변형한 프로그램들에 관해서.
이 부분은 제로보드의 자유도가 떨어지기 때문에 일어나는 점이라 생각됩니다. 제로보드는 지금으로서도 충분히 강력한 보드임에는 틀림없습니다만, 문제가 되는 부분은 제로보드에서 옵션으로 또는 간단한 기능 추가등을 유저가 관리자화면에서 변경할 수 없기 때문에 php 코드를 직접변경하는 것으로 이뤄지고 있습니다.

이러한 유저의 개인 변형 프로그램(기존 제로보드에서 약간 수정하여)이 없기 하기 위해서는 제가 볼땐 2가지 방법이 있습니다.
1. 제로보드의 관리자 설정의 자유도를 높이는 것과 2. 제로보드는 기본적인 관리 기능과 API 기능만을 제공하면서 유저의 모듈 개발을 독려하는 것이죠.

1번의 경우 각 모듈을 계속 개발/보수해야하고, 이렇게 관리해야 하는 프로그램들은 계속 늘어나기 시작할 겁니다. 그럼 나중에 가면 그 양은 엄청나게 커질것입니다. 이러한 대규모 프로젝트를 오픈프로젝트로 모두 통제한다는 것은 정말 피곤하고 사실상 거의 불가능하지 않나 생각해 봅니다. (제로님이 제로보드 코어와 모듈, 위젯, 애드온들 모두 직접 감독하고 끌어 나가기에..)

제로보드는 오픈소스를 표방한 만큼 유저들의 자유로운 개발을 장려하고 뒷받침 해줘야 한다고 생각합니다. 그러면서 제로님의 역할은 안정성을 확인하여 공식 모듈로 인정해주는 것이 더 중요해지겠죠. 사실 모듈이라는 것도 이미 완성형이기 때문에 다른게 나온다거나 하기는 힘들 수도 있습니다. (제로보드 기본 게시판 모듈 외에 새로운 게시판 모듈을 개발하는게 낭비다 라고 생각될 정도로...)

제 개인적으로는 제로보드는 기본 기능과 강력한 API의 지원이면 충분하다고 생각하고 있습니다. 새로운 기능 추가는 유저의 몫으로 맡겨야 진정한 오픈소스 프로그램이 되지 않을까요.

그런점에서 제로보드에서 API 부분의 매뉴얼화가 시급하다고 생각합니다.
각 함수의 정의와 사용법 간단한 예제 등... 이런 상세한 매뉴얼이 지원 된다면 아마 좀더 다양한 프로그램들이 나오지 않을까요.


이런것을 생각해본건 와우의 애드온을 보면서 였습니다.
Ace 라는 강력한 애드온 API가 있어서 지금은 정말 다양하고 강력한 기능의 애드온들이 많이 나왔죠. 요즘 애드온은 거의다 Ace를 기반으로 만들어질 만큼...
Ace 애드온은 각각의 기능별로 구분되어서 라이브러리화(표준화) 되어서 필요한 기능만 받아서 사용하도록 되어 있습니다.
이런식의 개발방법은 정말 좋은 방법이라 생각합니다.

아시는 것도 있을테고 이미 논의된 것인데 제가 못보고 적은것들도 있을지도 모르지만; (사이트를 살펴보긴 했는데 제가 못 찾은건지 아니면 권한이 있어야 하는건지 모르겠네요;)
아무튼 스킨 만들다 지쳐서 몇글자 적고 갑니다...;
앞으로도 좋은 프로그램 만들어 주시길... :)


(수정. 보기 불편할거 같아서 정리좀 했습니다;)


MDbradly1

2008.04.02 12:58:25
*.244.4.66

지금 묘듈이나 그런것은 기본적으로 XE안에 있는 묘듈이 기초가 되어서 (그리고 또 사용자들이 만드시거나) 사용자들이 XE에 필요한 파일들을 만들 수 있도록 하고있어요..

그리고 제로보드는 오픈인데

2.0.0 : 장기적인 목표로서 장기적인 관점에서 처리가 되어야 할 이슈들을 등록합니다.
1.1.0 : 새로운 기능의 추가등이 포함되는 것인데 기본 구조를 크게 바꾸지 않는 이슈들에 대해 등록합니다.
1.0.1 : 바로 전 짝수 버전(1.0.0 이나 1.0.2) 등에서 발생한 버그만 해결하는 마이너 업그레이드 이슈를 등록합니다.

이렇게 한다고 되어있거든요. 그래서 프로그램 추가나 그런것은 없을것 같고 그냥 버그 수정이나 개인이 원한다면 기본패키지에서 제거해주는 식인것 같아요..

아마도 이제부터는 프로그램 추가나 그런것은 없을것 같아요..^^

그리고 API부분의 메뉴얼화가 심각하다고 하셨는데 제가 메뉴얼팀이라 여러 상황을 알거든요..

그런데 그런것은 개발그룹에서 해야 한다고요..

profile

[레벨:5]댣군

2008.04.04 00:00:50
*.10.176.157

API가 여기 맞는표현인지는 잘 모르겠지만 이에대한 설명은 현재로써는 계획에도 없는것으로 알고있습니다.
제가 잘 모르는것일수도 있지만 (공식)개발자 메뉴얼 보시면 아시겠지만 '구조'에대한 설명만 적히도록 구성되었고 그나마도 거의 방치상태입니다. (bradly1님 말처럼 문서화 작업하시는 분들중에 이쪽 관련으로 아시는분이 적은것도 문제점중 하나입니다.)
그래서 지적해주신것과 같이, 사실상 지금 제로보드 모듈,애드온,위젯,컴포넌트 등을 만들려면 doxygen을 보거나 기본으로 있는그것들을 해부해가면서 개발해야합니다.
개발팀이나 어느쪽에서 이부분에 대한 지원을 해주던가 어떤 방법을 강구할 필요가 있을것 같습니다.

[레벨:4]Dustwo

2008.04.03 21:52:35
*.207.50.175

음;; 리플에서도 적었는데 매뉴얼 팀에 대한 요구는 아닙니다. 제로보드가 많은 유저들의 자발적 참여로 개발되기 때문에 이에 대한 어려움은 알고 있습니다. 그리고 '꼭 이렇게 바꿔야 한다' 또는 '당장 해야한다'는 식의 글이 아닙니다. 저는 단지 제가 생각하는 몇가지 문제점을 제시한 것이고, 이것을 어떻게 받아들이거나 이에대한 토론을 벌이는 것이나 다른 해법을 제시하거나 등등은 개발자분들의 자유이고요. 저 또한 API가 뭔지는 알고 있고, 어떤식으로 작업될지도 알고 있습니다;

아무튼 문서화 작업은 매뉴얼팀에서 하게 될지도 모르겠지만, 제가 바라는건 일단 API를 이용할 수 있는 기본 코드에 대한 소개와 API 함수들에 대한 간략한 설명이라도 필요한 것에서 한 말이었습니다; 제가 이 글을 올린것도 매뉴얼 포럼이 아닌 여기에 올린것도 인지해 주시기 바랍니다;

...

MDbradly1

2008.04.03 18:36:48
*.189.210.47

메뉴얼팀의 인원이 거의 학생이고 저 역시 곧 고등학교 진학해야 되서 메뉴얼작업을 못하는데 API의 경우는 개발그룹에서 지원을 해줘야 할듯해요..

[레벨:4]Dustwo

2008.04.02 23:22:10
*.207.50.175

프로그램의 추가가 중요한게 아니고, 제로보드의 구성을 좀더 효율적으로 바꾸는게 좋지 아니한가 하는 글이었습니다만 제 글이 좀 엉망인것 같습니다;; 제가 느낀것은 주로 스킨을 제작할때 느끼는 부분들이고 제로보드의 코어나 프로그래밍에 대한 부분은 가급적 뺐습니다. 제가 이런 글을 적은 이유는, 제로보드가 주로 사용해야는 유저들이 대부분 초보자들이고 그렇다 보니 좀더 유저친화적인 설계가 필요하다고 생각합니다.

지금의 제로보드 스킨의 구성은 너무 프로그래머 중심으로 설계된 느낌입니다. 그렇기 때문에 실제로 스킨을 만들고 수정할때 FTP 전송할때나 관리/수정할때 애로사항이 많죠.

'API의 매뉴얼화가 심각하다고' 적으셨는데 다시 보시면 아시겠지만, '시급하다고' 적었습니다. 매뉴얼팀에 불만이나 요구를 적은 내용은 없습니다. (단지 매뉴얼팀에서 토론을 제의한 '용어의 통일화'를 예로 들면서 적었습니다.)

아무튼 API의 매뉴얼은 일단 제로보드에 많은 스킨이나 모듈이 나와야 제로보드의 사용이 활발해 질 수 있기 때문에 건의를 한 것입니다.
profile

[레벨:7]Adios

2008.04.05 11:34:41
*.146.9.207

동감입니다. 일단 함수세트에 어떤 함수들이 포함되고 함수들이 기본기능이 무엇인지만이라도 명시되었으면 하는 바램입니다. 함수이름을 A~Z까지 늘어놓고 함수의 기능과 args만이라도 달아놓는다면 한결 좋지 않을까 싶네요. 현재로써는 ZBXE안에 어떤 함수가 들어있고 어떤 기능을 하는지 '전혀'파악을 못하고 있습니다. (물론, 실력이 부족해서 그렇기도 합니다.. ^^;;;)

덧붙여서, 스킨이 모든 모듈, 혹은 위젯에 종속적인것도 역시 불만이기 합니다. 화면에 보이는 부분을 수정하기 위해서 포함되어 있는 여러 요소의 위치를 파악하고 찾아들어가서 스킨과 CSS를 보면서 다시 분석하고 적용하고 확인하고 다시 분석하고를 반복하는것도 상당히 피곤한 일이더군요.. 이 부분도 시간이 지나면서 개선되기를 바래봅니다.

물론 현재 상황에서 기대하기는 이른감이 있습니다만.. 레이아웃 + 위젯 + 모듈스킨이 일체화된 형태의.. 예를들면 윈도우즈OS에서 말하는 '테마'와 같은 개념이 도입되는것도 좋지않을까 싶습니다. '(가칭)스킨테마'안에서 뼈대가 되는 부분들의 CSS를 공통분모로 가지고 있고, 나머지 부분을 각각의 요소에 종속되게 구성한다면 만드는 사람의 입장에서도 한결 간편하고, 만들어진 것을 사용하는 입장에서도 일관된 선택이 가능해지지 않을까.. 하고 생각해봅니다.. ^^;;

[레벨:1]송종근137

2008.05.13 16:23:43
*.246.253.225

저도 비슷한 생각을 가지고 있습니다..
지금 게시판 기능을 가지지만 좀더 복잡한 기능을 요하는 모듈을 작성하고 있습니다.
물론 제로님이 기본으로 넣어두신 게시판 모듈에서 약간의 변형만을 가한 모습일듯하고요.
근데.. 이거 함수 하나하나 어느 파일 어디에 있는지 찾아가기가 쉽지 않아..
몇일째.. 진도를 못나가고 있네요..

어찌됐건... 여러 이용자들을 위해. 뭔가 대책이 필요할 듯 싶어요

[레벨:8]착한악마

2008.05.29 10:54:04
*.55.81.95

저도 동감하는 부분이군요.
이곳저곳 수정해보고 짜집기 해보지만 되는부분은 짜집기수준이구
다른것을 수정하려고 많은 부분을 찾아야하는데 함수 하나하나 뭐하는것인지 어느파일을 봐야하는지 추적 또 추적 해야 하니.
실로 어렵습니다.
제로보드 4가 사랑 받았던것중 하나는 사용자가 많은 부분을 수정하고 디자인 하고 편하게 사용할수 있었던점입니다.
현재 많은 사람들이 고민하고 어려워하는 부분이 이런점인듯싶습니다.
더 많은 사람들이 문제 야기 할수도 있고 많은 사람들이 멀어질수도 있을듯싶습니다.
더욱 발전적인 제로보드가 되기를 바라면서 위 문제점에 대해 변화가 필요할 듯 싶습니다.
다들 고민하고 연구하면서 발전하면 되니........힘내자구요~~~

[레벨:1]클럽앨리스

2008.05.29 17:42:56
*.34.209.132


개인적인 의견을 덧붙이자면...

전체 구조의 틀을 변경한다는 건 의미없는 일일테지만...

전체 구조 및 변수, 함수 정의에 대한 포럼이나 CVS 형태의 관리는
도움이 되지 않을까 싶습니다.
간단한 계산이나 달력 클래스나 함수도 나날이 발전되어 갈 수 있고
일부 정의들이 반영된다면 전체 구조에 영향을 미치지 않는 범주내에서 더욱 원활한 의사소통이 되리라 생각되어 집니다.

그리고, 제 개인적인 추가바램은 (현재 구조로는 좀 불가능하지 않을까 싶지만...)
하나의 보드에 여러가지 스킨을 입히는 구조도 지원되었으면 합니다. (레이아웃외)
어차피 같은 TABLE의 게시판을 2가지 이상의 구조로 보여줄 필요성이 있어서요... ^^;

[레벨:1]클럽앨리스

2008.05.30 09:36:36
*.34.209.132

아... 소스적으로 처리할 생각은 못했네요...
감사합니다. 실행해보고 결과 올릴게요~

CMmooo

2008.05.29 20:09:12
*.237.51.172

제 생각에 하나의 게시판을 2가지 이상의 구조로 보여주는 것은 게시판 스킨에서 처리 가능할 것 같습니다.


modules/board/skins/xe_board/list.html 파일의 위 부분에 보면

modules/board/skins/xe_board/list.html
    <!--@if($module_info->default_style == 'webzine')-->
        <!--#include("./style.webzine.html")-->
    <!--@elseif($module_info->default_style == 'gallery')-->
        <!--#include("./style.gallery.html")-->
    <!--@elseif($module_info->default_style == 'forum')-->
        <!--#include("./style.forum.html")-->
    <!--@elseif($module_info->default_style == 'blog')-->
        <!--#include("./style.blog.html")-->
    <!--@else-->
        <!--#include("./style.list.html")-->
    <!--@end-->


라는 코드가 있는데 이 부분을 적절히 수정하면 하나의 게시판을 두가지 이상의 형태로 보여주는 게 가능할 거라고 생각합니다.

[레벨:30]zero

2008.05.30 11:34:47
*.8.106.246

익숙함 vs 생소함
깔끔한 코드 vs 어려운 코드
충실한 문서 vs 모자란 문서
.
.
.

위의 관점에서 아직 zbXE는 각각의 중간 정도인 것 같습니다.

몇가지 부분에서는 생소함으로 인한 어려움이 있다고 보여집니다.


가위로 손톱을 자르던 사람에게 손톱깎이는 어려울 수 있지만 조금만 쓰다보면 익숙해져서 더 편해질 거라 생각합니다.

제로보드XE의 경우 제가 만든 코드가 많아서 그런게 아니라 일단 사이트 운영할때 제로보드4보다 훨씬 편하고 활용도가 높습니다.

물론 제가 아마 제일 익숙한 사람중의 한 명일것이고 다른 분들은 모르는 부분을 잘 알고 있어서 그렇겠죠.

어느정도 완성이 되었다면 익숙해지실 수 있도록 노력해야 할텐데 아직 완성 단계라 보기도 어렵고 또 구현하고 싶거나 기존의 코드를 변경하고 싶은게 많아서 당분간은 익숙해지시기 어려울 수 있을 것 같습니다. ㅡ.ㅜ
List of Articles
제목 글쓴이 최종 글
개발자님...엮인글 rewrite mod로 바꿀 수 없나요? [2] [레벨:2]오병한 2009-05-05 13:03 by June Oh
isGranted() 함수의 세분화 필요성. [3] [레벨:17]하늘03 2009-05-04 12:14 by BNU
에디터 변경 및 권한 설정이 무시됩니다 file [1] [레벨:1]미무 2009-05-04 00:01 by 미무
액션후 url 설정에 관해서.. 궁금한점... [레벨:1]키네스  
xpress 에디터에 관한 몇가지 피드백 [레벨:2]xe9h0st  
에디터의 왜곡 file [3] [레벨:9]June Oh 2009-05-01 22:43 by 성빈애비
[질문] 액션이 실행이 안되는 거 같습니다. [3] [레벨:1]키네스 2009-05-01 17:27 by 김현준651
[질문] 액션 등록 확인 방법은 없나요?? [레벨:1]키네스  
궁금한게 있습니다. [2] [레벨:3]프로글래머김 2009-04-29 17:43 by 프로글래머김
모듈 개발 중 질문드립니다. file [2] CNSMaker 2009-04-29 17:08 by SMaker
궁금한게 생겼습니다. [2] [레벨:1]김현준651 2009-04-29 10:28 by B.G.M^^
XE 모듈 개발시 궁금점.. [6] [레벨:1]김현준651 2009-04-28 18:33 by 김현준651
개발자님 ie6에서 위젯스타일 상단 잘림에 대해 XE Issuetracker에 할당이 안되어 있어서요... file [2] [레벨:3]B.G.M^^ 2009-04-28 16:00 by B.G.M^^
아랍어도 가능할까요??? 한번 도전해 보고 싶습니다.. [4] [레벨:2]멀리서 2009-04-25 18:07 by bradly1
XpressEngine 문서화 링크가 다 깨져 있습니다. [1] [레벨:4]상오기 2009-04-25 06:52 by iuiu
HNO3님의 latexrender에 대한 피드백입니다. ^^ [2] [레벨:30]zero 2009-04-25 06:52 by nbn
개발자님~~ 위젯 개발시... file [4] [레벨:3]B.G.M^^ 2009-04-24 17:25 by B.G.M^^
SVN 커밋 권한이 없다고 나옵니다. [3] [레벨:3]프로글래머김 2009-04-21 18:34 by zero
게시글 관리 기능 중 휴지통 기능 버그 file [2] [레벨:3]NukeliaS 2009-04-21 10:46 by NukeliaS
제로보드의 몇가지 문제점에 대해 [12] [레벨:4]Dustwo 2009-04-19 22:59 by ugg