주제별 포럼 - 위키
글수 49
제로보드XE가 공개된 이후 운영하고 있는 사이트에 적용하기 위해 계속 분석을 진행하고 있습니다. 일단 기본적인 내용에 대해서 ZB4에서 하드코딩으로 직접 때려넣었던 부분들이나 마이그레이션 하면서 버릴 수 없는 기능같은 부분들은 애드온이나 모듈 스킨을 만들어서(혹은 기존의 것들을 필요에 맞게 고쳐서) 해결 할 수 있겠지만.. 이런저런 부분들을 계속 생각하다보니까 역시 욕심이 나는걸 어쩔수는 없네요.
새로 개편될 사이트에 '라이브러리'의 성격을 가지고 있는 메뉴섹션이 들어갈 예정입니다. 현재 방향성을 설정해 주기 위해서 별도의 위키를 만들어서 기본적인 SEED들을 만들어 두고 SEED역할을 할만한 문서들을 만들고 있습니다.. 그런데, 앞에서 언급한 데로 개편될 사이트의 메뉴 꼭지에 위키가 위치해야 하는 경우가 발생하더군요. 일단은 제로보드의 레이아웃을 이용해서 레이아웃 안에 위키를 때려넣을까, 혹은 ZBXE에서 만들어 쓸 레이아웃과 비스무리하게 위키의 테마를 만들어 쓸까(일단 모니위키를 쓰는 중입니다) 생각이 많은데, 문득 이런생각이 들더군요..
"ZBXE의 모듈 프로그램 라이브러리에 WIKI문법을 수용하는 모듈을 만들어 넣으면 어떨까?"
물론 웹보드와 위키는 근본부터 다른 프로그램이라는 생각에 이의는 없습니다. 대부분의 위키 프로그램들이 DBMS를 사용하지 않고 선형적인 구성의 웹보드와 비선형적인 위키의 성격상 근본적인 부분을 어느 한 쪽에 맞추기는 대단히 어려울것으로 생각됩니다. 하지만 두가지의 성격을 하나의 그릇안에 넣어두면 관리라든지 회원이라든지 이런 부분에서 많은 일거리를 줄일 수 있다는 생각에 미련을 버리긴 참 어려울것 같습니다.
"ZBXE안에 위키문법을 수용하는 위키모듈을 넣을 수 있을까" 하는 주제에 대해서 저는 막연하게 생각하고 있습니다.
1. 일단 최신 문서내용을 DB에 저장하고 있기
2. 나머지 CVS나 RCS와 관련한 버젼컨트롤은 각각의 PHP파일로 만들어서 보존하기.
3. 문서에 새로운 수정이 가해지면 기존의 문서를 다시 PHP로 저장하고 DB에는 새로운 문서로 변경
4. ZBXE에 위키 문법을 해석하는 Preprocessor를 두어 위키로 정의된 mid의 게시판에 접근하면 이것이 작동하며 게시물의 wiki문서를 번역
ZBXE가 새로운 모듈을 프로그래밍 해서 넣을 수 있다는 점에 이런 착안을 하긴 했지만 이 생각을 구체화하기엔 아직 갈길이 멉니다. 우선은 과연 이 생각들이 타당한가 하는 검증부터 해야겠지요. 생각나는데로 기록하는 통에 영 정리가 안되긴 하지만 아무튼 고민해둬야 할 부분이라고 생각하고 여러분들의 의견 또한 참고해야겠다는 생각에 부끄럼을 무릎쓰고 주욱 적어봤습니다.
여러분의 생각은 어떠신가요?
새로 개편될 사이트에 '라이브러리'의 성격을 가지고 있는 메뉴섹션이 들어갈 예정입니다. 현재 방향성을 설정해 주기 위해서 별도의 위키를 만들어서 기본적인 SEED들을 만들어 두고 SEED역할을 할만한 문서들을 만들고 있습니다.. 그런데, 앞에서 언급한 데로 개편될 사이트의 메뉴 꼭지에 위키가 위치해야 하는 경우가 발생하더군요. 일단은 제로보드의 레이아웃을 이용해서 레이아웃 안에 위키를 때려넣을까, 혹은 ZBXE에서 만들어 쓸 레이아웃과 비스무리하게 위키의 테마를 만들어 쓸까(일단 모니위키를 쓰는 중입니다) 생각이 많은데, 문득 이런생각이 들더군요..
"ZBXE의 모듈 프로그램 라이브러리에 WIKI문법을 수용하는 모듈을 만들어 넣으면 어떨까?"
물론 웹보드와 위키는 근본부터 다른 프로그램이라는 생각에 이의는 없습니다. 대부분의 위키 프로그램들이 DBMS를 사용하지 않고 선형적인 구성의 웹보드와 비선형적인 위키의 성격상 근본적인 부분을 어느 한 쪽에 맞추기는 대단히 어려울것으로 생각됩니다. 하지만 두가지의 성격을 하나의 그릇안에 넣어두면 관리라든지 회원이라든지 이런 부분에서 많은 일거리를 줄일 수 있다는 생각에 미련을 버리긴 참 어려울것 같습니다.
"ZBXE안에 위키문법을 수용하는 위키모듈을 넣을 수 있을까" 하는 주제에 대해서 저는 막연하게 생각하고 있습니다.
1. 일단 최신 문서내용을 DB에 저장하고 있기
2. 나머지 CVS나 RCS와 관련한 버젼컨트롤은 각각의 PHP파일로 만들어서 보존하기.
3. 문서에 새로운 수정이 가해지면 기존의 문서를 다시 PHP로 저장하고 DB에는 새로운 문서로 변경
4. ZBXE에 위키 문법을 해석하는 Preprocessor를 두어 위키로 정의된 mid의 게시판에 접근하면 이것이 작동하며 게시물의 wiki문서를 번역
ZBXE가 새로운 모듈을 프로그래밍 해서 넣을 수 있다는 점에 이런 착안을 하긴 했지만 이 생각을 구체화하기엔 아직 갈길이 멉니다. 우선은 과연 이 생각들이 타당한가 하는 검증부터 해야겠지요. 생각나는데로 기록하는 통에 영 정리가 안되긴 하지만 아무튼 고민해둬야 할 부분이라고 생각하고 여러분들의 의견 또한 참고해야겠다는 생각에 부끄럼을 무릎쓰고 주욱 적어봤습니다.
여러분의 생각은 어떠신가요?

한때, 웹사이트의 모든것을 혼자 다 만들 수 있다고 자만했던 웹사이트 제작자이자 울트라삽질러. -_-
지금, 언제나 사진에 목마른, 부족한 자신에 좌절하며 도전하는 쌈마이.
길스튜디오 실장 (http://gilstudio.co.kr)
핫셀클럽 운영자 (http://hasselclub.net)
지금, 언제나 사진에 목마른, 부족한 자신에 좌절하며 도전하는 쌈마이.
길스튜디오 실장 (http://gilstudio.co.kr)
핫셀클럽 운영자 (http://hasselclub.net)
2007.08.29 12:45:16 (*.196.5.184)
앗, 제로님의 빠른 답변.. 감사합니다. ![]()
그리고보니 diff를 잊고 있었는데, 저는 단순히 버젼정보의 나열과 각 버젼정보의 저장에 대해서만 생각하고 있었습니다. 구체화 하려면 여러가지 고민이 필요할듯 싶네요..
그리고, (이미 알고 계시겠지만) 위키의 경우 페이지의 퍼머링크를 가져다가 다른 페이지에 링크함으로써 목록이 만들어지는 매우 느슨한 방식이기 때문에 이것을 게시판에 끼워맞추는것은 어렵겠다는 생각도 듭니다. 해서, ZBXE의 '페이지' 모듈을 이용하는 어떨까 하는 생각이 드는데... 페이지 모듈을 기반으로 좀 더 발전시켜서 이것을 독립적인 위키로 이용할 수 있도록 하고 게시판모듈에서도 버젼컨트롤이나 자동링크, 동시편집, 위키문법을 이용한 글쓰기 등을 지원한다면 위키와 웹보드의 장점을 둘 다 활용할 수 있지 않을까 싶습니다. 물론 게시판에서 위키의 기능을 지원하는것은 몇개의 애드온을 묶어 세트로 지원하고 그것을 해당 게시판의 운영자가 선택할 수 있도록 해야겠죠.. 위키모듈 역시 페이지모듈과 별개의 모듈로 나중에 설치하도록 하는것이 맞을것 같구요.
솔직히, 위키를 사용하면서 어려운점이라면 위키의 이용방식 자체가 많은 사람들에게 매우 생소하고 다소 폐쇄적일 수 있기 때문에 이것을 기존의 웹 게시판에 접목할 수 있다면 제로님의 말씀처럼 100점짜리 CMS가 될것 같다는 생각이 드네요. (솔직히 거기까지는 생각하지 못했습니다..
)
참여를 모아서 프로젝트를 시작해도 좋을것 같다는 생각이 듭니다. ![]()
2007.08.29 13:12:03 (*.8.15.130)
제로보드XE의 경우 글마다 고유번호가 있고 퍼머링크가 있어서 링크함에 있어서는 문제가 없지 않을까도 생각합니다.
대략 다음과 같은 방식으로 진행되지 않을까요?
1. 위키모듈로 위키를 만든다
: 위키를 게시판처럼 별도로 만드는 것은 문서의 대상에 따른 분류 차원일 뿐입니다.
예를 들어 여기 사이트를 보면 위키모듈 개발문서, 마이그레이션 툴 문서등으로 나누면 편의성이 증대할 것 같습니다.
2. 해당 위키에 접속하면 index페이지, 즉 빈페이지가 있고 페이지를 작성하기 시작한다.
: 여기서 하나의 고민이 생깁니다.
사실 위키시스템은 별도의 페이지 목록을 보는 기능을 제외하면 index페이지 역시 직접 작성을 하게 됩니다.
[page_list] 와 같은 별도 태그를 지원해서 손쉽게 index페이지를 만들 수 있는 방법도 있을테고 아님 수작업으로 중요한 title만 모아 놓을수도 있고 스프링노트처럼 아예 hierarchical한 구조로 페이지의 종속관계를 지원하고 이를 목차로 바로 출력하는 것도 있겠죠.
[page_list]와 같은 태그가 페이지의 종속관계까지 찾아서 hierarchical한 구조로 표현을 해주면 좋을 것 같긴 하네요.
3. 작성된 페이지는 고유 퍼머링크를 가지고 document module, 즉 게시물과 같은 구조로 데이터를 입력한다.
: update가 발생하게 되면 수정 전 글을 따로 정한 format의 문서로 저장하고 db update를 한다.
이럴 경우 최신 페이지들을 대상으로 검색등이 가능하다.
./files/wiki/모듈명/.../고유번호.글버전.txt 등으로 규칙을 정해서 저장하면 될듯 합니다.
4. 글작성시 다른 위키 페이지의 제목 검색이나 네비게이션등으로 내용 내 링크 기능을 지원.
: 이는 제로보드XE의 에디터 컴포넌트를 하나 만들면 손쉽게 구현이 됩니다.
다만 페이지의 종속관계가 필요하냐, 필요하면 이를 어떤식으로 관리하냐에 따른 별도의 작업이 필요할 수 있겠네요.
위 4가지 방식으로 접근하면 어느정도 위키 기능의 구현이 되지 않을까요?
참 diff의 경우는 사실 에디터에서 정규화된 코드로 결과를 만들 수 있게 하고 이걸 line by line으로 비교하면 어느정도 가능한 것 같습니다.
글의 insert/update에 따른 history지원은 별도의 table로 관리를 하고 해당 table에는 글의 퍼머넌트 링크 + 작성자 + version 정도를 가지고 있으면 될듯 하네요.
동시편집은 역시 페이지 수정이 일어날 경우 lock을 걸고 푸는 기능이 필요하겠네요.
물론 위키 문법이나 좀더 재밌는 태그등에 대한 지원은 필요할 것 같습니다.
제가 위키 문서를 많이 써보지 못하였고 또 제로보드XE로 사이트 운영하면서 필요한 부분에 대해서만 고민을 하여왔기에 기존의 위키시스템과 성격이 다를 수도 있는데 이런 부분은 지적 부탁드립니다.
조금씩 더 의견을 모으고 정리를 하다보면 위키 모듈 제작이 그다지 어렵지 않을것 같다는 생각이 드네요.
대략 다음과 같은 방식으로 진행되지 않을까요?
1. 위키모듈로 위키를 만든다
: 위키를 게시판처럼 별도로 만드는 것은 문서의 대상에 따른 분류 차원일 뿐입니다.
예를 들어 여기 사이트를 보면 위키모듈 개발문서, 마이그레이션 툴 문서등으로 나누면 편의성이 증대할 것 같습니다.
2. 해당 위키에 접속하면 index페이지, 즉 빈페이지가 있고 페이지를 작성하기 시작한다.
: 여기서 하나의 고민이 생깁니다.
사실 위키시스템은 별도의 페이지 목록을 보는 기능을 제외하면 index페이지 역시 직접 작성을 하게 됩니다.
[page_list] 와 같은 별도 태그를 지원해서 손쉽게 index페이지를 만들 수 있는 방법도 있을테고 아님 수작업으로 중요한 title만 모아 놓을수도 있고 스프링노트처럼 아예 hierarchical한 구조로 페이지의 종속관계를 지원하고 이를 목차로 바로 출력하는 것도 있겠죠.
[page_list]와 같은 태그가 페이지의 종속관계까지 찾아서 hierarchical한 구조로 표현을 해주면 좋을 것 같긴 하네요.
3. 작성된 페이지는 고유 퍼머링크를 가지고 document module, 즉 게시물과 같은 구조로 데이터를 입력한다.
: update가 발생하게 되면 수정 전 글을 따로 정한 format의 문서로 저장하고 db update를 한다.
이럴 경우 최신 페이지들을 대상으로 검색등이 가능하다.
./files/wiki/모듈명/.../고유번호.글버전.txt 등으로 규칙을 정해서 저장하면 될듯 합니다.
4. 글작성시 다른 위키 페이지의 제목 검색이나 네비게이션등으로 내용 내 링크 기능을 지원.
: 이는 제로보드XE의 에디터 컴포넌트를 하나 만들면 손쉽게 구현이 됩니다.
다만 페이지의 종속관계가 필요하냐, 필요하면 이를 어떤식으로 관리하냐에 따른 별도의 작업이 필요할 수 있겠네요.
위 4가지 방식으로 접근하면 어느정도 위키 기능의 구현이 되지 않을까요?
참 diff의 경우는 사실 에디터에서 정규화된 코드로 결과를 만들 수 있게 하고 이걸 line by line으로 비교하면 어느정도 가능한 것 같습니다.
글의 insert/update에 따른 history지원은 별도의 table로 관리를 하고 해당 table에는 글의 퍼머넌트 링크 + 작성자 + version 정도를 가지고 있으면 될듯 하네요.
동시편집은 역시 페이지 수정이 일어날 경우 lock을 걸고 푸는 기능이 필요하겠네요.
물론 위키 문법이나 좀더 재밌는 태그등에 대한 지원은 필요할 것 같습니다.
제가 위키 문서를 많이 써보지 못하였고 또 제로보드XE로 사이트 운영하면서 필요한 부분에 대해서만 고민을 하여왔기에 기존의 위키시스템과 성격이 다를 수도 있는데 이런 부분은 지적 부탁드립니다.
조금씩 더 의견을 모으고 정리를 하다보면 위키 모듈 제작이 그다지 어렵지 않을것 같다는 생각이 드네요.




좋은 의견 감사합니다.
일단 위키 시스템의 제로보드 모듈 제작에 대해서는 저도 관심이 있습니다.
위키시스템의 경우 4가지를 고려해야 할 것 같습니다.
1. 위키문법의 지원 여부 : 위지윅 에디터를 좀 더 정형화 해서 지원할 수도 있고 위키문법만 적용할 수도 있고 이는 제로보드XE 위키 모듈 제작시 문제는 되지 않습니다.
2. 버전 관리 : 위키문서의 경우 버전 관리가 매우 중요합니다. 제로보드XE의 문서 모듈을 이용한 일반 게시물을 가장 최근 버전의 문서로 하고 그 이전의 history는 별도의 파일 시스템으로 관리하면 될 것 같기도 하네요.
즉 게시물 수정이 일어날때마다 수정 전 버전을 파일로 저장하고 history 기능을 제공하는 것입니다.
3. 문서 수정의 권한 : 이 부분은 모듈별 고유 권한 설정이 가능하기에 충분히 구현할 수 있을 것 같습니다.
4. 목차의 관리 : 위키시스템의 문서 분류를 일단 목차라고 가정할때 이 부분은 별도의 테이블로 관리가 가능할 것 같습니다.
일전에 고민하였을때에는 2번이 가장 큰 문제였습니다.
일단 문서간 diff를 구현을 어떻게 해야 하나 고민하다가 일단 차후에 개발하기로 한 적이 있습니다.
제로보드XE가 CMS로서의 반쪽짜리 기능을 하고 있다면 위키시스템, 즉 문서화 시스템의 도입으로 인해 100점짜리 CMS로 태어날 수 있을 것 같기도 합니다.
이 외에 또 또 다른 문제점등이 있을까요?
위키모듈 프로젝트를 시작하는 것도 좋을 것 같네요.