커뮤니티 사이트의 미래와 그누보드 확장성
엔피씨님이 제기하셨던 '커뮤니티 사이트의 미래' 에 관한 토론을 이곳에서 이어가 봤으면 좋겠네요.
(제가 제대로 이해했다면) 엔피씨님의 제안은, '회원이 손쉽게 선택/설치하고 커스터마이징 할 수 있는 위젯'을 도입하자는 것입니다. 물론 엔피씨님의 제안은 이것보다 더 개념적이고 상위적일텐데, 일단 손에 잡히는 형태로 보자면 '위젯'과 이러한 위젯을 관리하는 위젯 스토어? 개념일 것 같습니다.
개념자체는, 엔피씨님과 다른 분들이 지적한대로, 이미 다른 웹 솔루션 들에서 구현/운영하고 있는 것일텐데,
이를 그누보드에 도입하기 위해서 어떤 작업과 접근방법이 필요할지 한번 얘기해봤으면 해서요..
제 기억에 여러분들이 애드온이나 그누보드의 CMS화 등에 대해서 의견을 내어놓으셨는데, 자게에서는 그닥 토론이 잘 이루어 지지 않은것 같아서 여기로 옮겨봤습니다.
타 php 솔루션의 플러그인 메카니즘 (후킹, 이벤트 처리 등)과 그누보드의 스킨 시스템의 장단점,
그누보드 플러그인의 보다 구조적인 표준화 등 기술적인 접근방법에 대해서 의견을 나눠봤으면 좋겠습니다.
또한 엔피씨님이 시작하신, '커뮤니티 사이트의 새로운 방향'에 대해서도 아이디어를 모아볼 수도 있을것 같습니다. :)
댓글 17개
YEBdotKR
13년 전
왜 아무도 시작하지 않죠 ?
13년 전
그러게요.. ^^;
하긴 제가 워낙 듣보잡이라.. ^^;
하긴 제가 워낙 듣보잡이라.. ^^;
YEBdotKR
13년 전
님 글은 항상 잘보고 있어요~ 특히 반응형 웹 부분요 *^^*
상당한 실력자인것 같은대요 ~~
그누스타디도 잘 되시죠 ?
상당한 실력자인것 같은대요 ~~
그누스타디도 잘 되시죠 ?
13년 전
앗, 지켜보고 계시는 군요. ^^'
저도 잘 몰라서 배우고 있는 부분입니다.
그누스터디도 그런 의미로 하고 있고요. ^^
저도 잘 몰라서 배우고 있는 부분입니다.
그누스터디도 그런 의미로 하고 있고요. ^^
13년 전
헉, 저는 이리 옮겼단 말 듣고 좀더 자료를 철저하게 할까 하고 늦어지고 있네요. + _ +;
13년 전
기대됩니다 !!!!!
13년 전
전 좀.. 부정적인 의견이라서..
지금 상태에서 그누에 앱스토어 시스템을 적용하려면 화면에 뿌려주는 내용을
텍스트큐브나 드루팔, JSP프로그램 처럼 버퍼에 담았다가 뿌려주도록 재구성하는것이 먼저 필요합니다.
또는 head.sub.php 에 담당 자바스크립트를 추가시킨 후 화면 onload 후에 플러그인을 적용할 수 있게 js파일이 화면을 재구성하도록 해야겠죠.
지금 상태에서 그누에 앱스토어 시스템을 적용하려면 화면에 뿌려주는 내용을
텍스트큐브나 드루팔, JSP프로그램 처럼 버퍼에 담았다가 뿌려주도록 재구성하는것이 먼저 필요합니다.
또는 head.sub.php 에 담당 자바스크립트를 추가시킨 후 화면 onload 후에 플러그인을 적용할 수 있게 js파일이 화면을 재구성하도록 해야겠죠.
13년 전
꼭 '지금 상태' 일 필요는 없지 않을까요? ^^
오히려 라엘님의 구현방법이 더 흥미롭습니다. 언제한번 더 자세히 들어볼 수 있는 기회가 있었으면 좋겠습니다. ^^
오히려 라엘님의 구현방법이 더 흥미롭습니다. 언제한번 더 자세히 들어볼 수 있는 기회가 있었으면 좋겠습니다. ^^
13년 전
그누보드 자체도 스킨이나 익스텐드에 대한 모듈화가 '나름' 구현되어 있긴 하지만 컨트롤러를 후킹해 기능을 더하거나 빼는 등의 형태가 안되다보니 대다수의 스킨이 컨트롤러를 겸하게 되어 지금의 상황이 되었다 봅니다. 기존 방식의 장점은 아무래도 기존 플로의 개발 방식(절차지향의..)을 그대로 유지할 수 있는 점이고 단점은... 모듈화가 쉽지 않다는 점인데...
만약 소스 전체를 모듈화해서 리펙토링 하지 않는 이상 위와 같은 에드온을 도입 하기 위해서는 워드프레스와 같은 add_action, do_action을 도입하는 방법이 가장 빠르다고 봅니다. 데이터를 조작하는 각 포인트마다 후킹 포인트를 do_action으로 지정해주고 add_action으로 연결해주는 식인데 라엘님 말씀대로 전체 버퍼에 담아서 템플레잇 하는 것보다는 좀 더 간편하게 되지 않을까 생각되네요.
만약 소스 전체를 모듈화해서 리펙토링 하지 않는 이상 위와 같은 에드온을 도입 하기 위해서는 워드프레스와 같은 add_action, do_action을 도입하는 방법이 가장 빠르다고 봅니다. 데이터를 조작하는 각 포인트마다 후킹 포인트를 do_action으로 지정해주고 add_action으로 연결해주는 식인데 라엘님 말씀대로 전체 버퍼에 담아서 템플레잇 하는 것보다는 좀 더 간편하게 되지 않을까 생각되네요.
13년 전
저도 비슷한 고민을 했던적이.. ^^
http://blog.gnuboard.org/2012/04/gnuboard-extend-framework/
그나저나 호주는 겨울이겠네요? ^^:
http://blog.gnuboard.org/2012/04/gnuboard-extend-framework/
그나저나 호주는 겨울이겠네요? ^^:
13년 전
탁월한 분석글이네요. 현행 그누보드에서 가장 빠르게 전환할 수 있는 방법이라 판단됩니다. 후킹에 대한 네이밍 룰만 잘 정해진다면 어느 정도 표준화도 끌어낼 수 있으면서 학습곡선도 완화하고 작업도 빠르게 진행될 수 있으리라 생각됩니다.
춥습니다 여기 ^^; 그래도 조금씩 봄이 오려고 하네요.
춥습니다 여기 ^^; 그래도 조금씩 봄이 오려고 하네요.
13년 전
^^
네이밍 룰이나 접근 방식으로, byfun님의 나린위키의 방법은 어떨까 합니다.
사용중인 이벤트 목록은 http://narinwiki.org/docs/folder/narin/events 입니다.
버전이 올라가면서 더많은 이벤트 (또는 후킹포인트) 를 지원할 수 있겠죠.
플러그인/애드온/위젯의 구현도 어느정도 표준화하고 설치위치도 고정하는 등의 과정도 거쳐야 겠고요..
지금의 스킨 시스템과의 충돌은 없을까하는 생각을 잠깐 해보고 있습니다.
말씀대로 스킨안에 컨트롤러 기능이 다 들어가 있으니, 장점으로는 스킨 레벨에서 do_action 같은 것을 시행할 수도 있고, 반대로 그것이 단점이 될수도 있겠네요..
네이밍 룰이나 접근 방식으로, byfun님의 나린위키의 방법은 어떨까 합니다.
사용중인 이벤트 목록은 http://narinwiki.org/docs/folder/narin/events 입니다.
버전이 올라가면서 더많은 이벤트 (또는 후킹포인트) 를 지원할 수 있겠죠.
플러그인/애드온/위젯의 구현도 어느정도 표준화하고 설치위치도 고정하는 등의 과정도 거쳐야 겠고요..
지금의 스킨 시스템과의 충돌은 없을까하는 생각을 잠깐 해보고 있습니다.
말씀대로 스킨안에 컨트롤러 기능이 다 들어가 있으니, 장점으로는 스킨 레벨에서 do_action 같은 것을 시행할 수도 있고, 반대로 그것이 단점이 될수도 있겠네요..
13년 전
결과적으로 봤을 때 그누 전반적인 부분을 갈아엎는거네요.
(flow는 그대로이나 코드는 다 엎기)
(flow는 그대로이나 코드는 다 엎기)
13년 전
어떤 방식이든, 원본 수정은 불가피 하지 않을까 생각합니다. ^^
오히려, 원본의 수정 여부보다는, 기존 스킨과의 호환성이, 아마도 현재 그누보드 사용자를 계속 이어나갈 수 있는 관건이 되지 않을까 하고요. ^^
스킨 개발자/사용자 분들에게, 보다 많은 '함수'를 제공하는 차원이랄까요?
오히려, 원본의 수정 여부보다는, 기존 스킨과의 호환성이, 아마도 현재 그누보드 사용자를 계속 이어나갈 수 있는 관건이 되지 않을까 하고요. ^^
스킨 개발자/사용자 분들에게, 보다 많은 '함수'를 제공하는 차원이랄까요?
13년 전
위 방식으로 하면 완전히 갈아 엎기 보다는 후킹 포인트만 만들어주면 되니 그나마 좀 덜 갈아엎는(?) 편입니다.
13년 전
보안적인 부분에서 걸리는 것 외에는 전진님 올리신 글처럼 가는 것이 좋겠습니다.
보안은... 워프도 공식 사이트에 올라오는 플러그인은 코드리뷰가 된 플러그인만 업로드 되는 방식이지만 그누보드는 그렇지 않으니까요.
그리고 스킨이 뷰와 컨트롤러를 확실하게 분리하면 좋긴 하겠지만 그러면 러닝커브가 심하니 기존 그누보드가 가져오던 장점(이라 얘기되는) 부분에 마이너스 요소가 될 것 같아서...
글로만 하니 두루뭉술한 얘기만 계속 쓰게 되네요 ㅎㅎ
보안은... 워프도 공식 사이트에 올라오는 플러그인은 코드리뷰가 된 플러그인만 업로드 되는 방식이지만 그누보드는 그렇지 않으니까요.
그리고 스킨이 뷰와 컨트롤러를 확실하게 분리하면 좋긴 하겠지만 그러면 러닝커브가 심하니 기존 그누보드가 가져오던 장점(이라 얘기되는) 부분에 마이너스 요소가 될 것 같아서...
글로만 하니 두루뭉술한 얘기만 계속 쓰게 되네요 ㅎㅎ
13년 전
보안부분은.. 만일 위젯스토어? 가 sir 등에 생긴다면, 리뷰어들을 두는 방법도 괜찮겠네요.. 강제사항은 아니더라도 리뷰가 되었다는 정보를 제공해주는 정도로..
글쵸? 코드를 짜면서 얘기해야 하는데..
밀로즈님이 어디에든지 저장소 하나 만들어 주시면 거기서 얘기해봐도 좋을듯 합니다.. ^^
글쵸? 코드를 짜면서 얘기해야 하는데..
밀로즈님이 어디에든지 저장소 하나 만들어 주시면 거기서 얘기해봐도 좋을듯 합니다.. ^^
게시글 목록
| 번호 | 제목 |
|---|---|
| 8265 | |
| 20403 | |
| 20402 | |
| 20401 | |
| 20400 |
웹서버
서버 동시접속자 설정 변경하기
|
| 8259 | |
| 20399 | |
| 20398 | |
| 8255 | |
| 8249 | |
| 8246 | |
| 8242 | |
| 20396 | |
| 8240 | |
| 20395 | |
| 20394 |
MySQL
테이블 복사 쿼리
|
| 31033 | |
| 28385 | |
| 20393 |
PHP
현재 접속중인 사용자 나타내기
|
| 28380 | |
| 20392 |
MySQL
mysql select 후 update 하기
|
| 28377 | |
| 20391 | |
| 20390 |
PHP
한글문자열 자르는 법 입니다.
|
| 20389 | |
| 20388 | |
| 20387 |
PHP
이메일주소 검사하기 입니다.
|
| 20386 | |
| 20385 | |
| 20384 |
node.js
Node js 게시판 프로젝트 소개합니다.
|
| 20383 |
PHP
pc 모바일 체크
1
|
| 20382 |
PHP
계정 사용량(용량) 확인
|
| 8238 | |
| 20380 | |
| 20379 |
MySQL
소수점 반올림 버림
|
| 28376 | |
| 28372 | |
| 20378 | |
| 20377 |
PHP
에러 로그파일 생성하기
|
| 8235 | |
| 20375 | |
| 20374 | |
| 20373 |
PHP
후이즈검색 하기 입니다.
|
| 20372 |
PHP
그래프 그리기 입니다.
|
| 20371 |
JavaScript
자바스크립트로 구현한 number_format() 입니다.
|
| 20370 |
JavaScript
금액 관련 숫자를 한글로 변환하기 입니다.
|
| 28370 | |
| 20369 |
PHP
PHP 날짜 계산 관련 함수
|
| 28366 | |
| 20368 |
jQuery
jQuery 1.x와 2.x 버전 동시에 사용하기
|
| 20367 | |
| 20366 | |
| 20365 |
JavaScript
사업자 등록번호 검사하기 입니다.
|
| 20364 | |
| 20363 |
JavaScript
항상 같은곳에 광고창 만들기 입니다.
|
| 20362 |
JavaScript
부메뉴 나오게 하기 입니다.
|
| 20361 |
JavaScript
특정문자 제거하기 입니다.
|
| 20360 |
JavaScript
휴대폰번호 검사 하기 입니다.
|
| 20359 |
JavaScript
이미지 좌우로 이동 갤러리 입니다.
|
| 8231 | |
| 20358 | |
| 20357 |
JavaScript
쉬운 replaceAll 입니다.
|
| 20356 | |
| 20355 | |
| 20354 | |
| 20353 | |
| 20352 |
JavaScript
콤보스타일 메뉴 입니다.
|
| 20351 |
JavaScript
쿠키를 이용한 레이어 공지창 입니다.
|
| 20350 |
JavaScript
효과있는 텍스트 틱커 입니다.
|
| 20349 | |
| 20348 |
PHP
HTTP 인증 하기 입니다.
|
| 20347 |
JavaScript
외부 문서 불러오기 입니다.
|
| 20346 |
JavaScript
지정한 날짜까지 New 이미지를 띄워주기 입니다.
|
| 20345 | |
| 20344 |
JavaScript
메일 주소 검사하기 체크박스 입니다.
|
| 20343 |
JavaScript
무단링크 금지하기 입니다.
|
| 20342 | |
| 20341 |
MySQL
DB백업 및 복원
|
| 20340 |
JavaScript
페이지가 다른 사이트의 프레임에 갇히는 것을 막기 입니다.
|
| 20339 | |
| 20338 | |
| 20337 |
jQuery
input text 대문자만 받는 Jquery
|
| 20336 | |
| 20335 |
JavaScript
이미지 업로드와 미리보기 입니다.
|
| 20334 |
JavaScript
배경음악 랜덤 재생 하기 입니다.
|
| 20333 |
JavaScript
css 지원 여부 확인해서 다른 페이지로 이동하기 입니다.
|
| 20332 |
JavaScript
하부메뉴가 보였다가 숨겨졌다 하는 토글버튼 입니다.
|
| 20331 |
JavaScript
개별 페이지에 인덱스로 거쳐 들어오게 하기 입니다.
|
| 20330 |
JavaScript
랜덤으로 이미지 출력 되기 입니다.
|
| 20329 |
JavaScript
사용자 해상도 알아내기 입니다.
|
| 20328 |
JavaScript
붙여넣기 금지하기 입니다.
|
| 20327 |
MySQL
대소문자 데이터 조회하기
|
| 20326 |
JavaScript
퇴장시 팝업창 한번한 띄우기 입니다.
|
| 20325 | |
| 20324 | |
| 20323 |
JavaScript
시도, 구군, 동 주소 select
|
| 20322 |
MySQL
커리로 DB 테이블 명세서 출력하기
|
| 20321 |
JavaScript
브라우저 해상도 구분없는 절대 x,y 좌표 값 구하기 입니다
|
| 20320 |
PHP
rss 읽어오기 입니다.
|
| 20319 |
JavaScript
자바스크립트로 Ajax 효과내기 입니다.
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기