안녕하세요. 다름이 아니오라,
대학교 졸업 작품으로 그누 보드5 기반 웹사이트를 구축할까 라는 생각을 했습니다.
그러나, 수많은 난관에 부닥치게 되었습니다.
그 중 핵심적인 문제점을 꼽자면,
1. 프론트엔드와 백엔드 구현부 사이에 형성된 과도한 의존성

대략 이런느낌,,,??
2. 오래된 코드가 너무 많음...
하위 호환성을 계속 유지하는 것도 좋지만, 버전 사이클 별로, 청소가 필요해 보입니다.
3. hook다운 hook의 부재.
A. 한 예로, 포인트를 지급하기 위한 조건을 추가할 때 수정해야 하는 범위가 너무 커집니다.
B. 다른 어플리케이션과의 연동을 하기위해서 수정해야 하는 범위가 너무 넓습니다.
예를 들어, 포인트가 얼마만큼 쌓였을 때 특정한 동작을 수행한다던지....
C. 또, A와 B를 했다고 쳐도 버전이 올라가면 어디를 어떻게 수정해야 하는지 수작업으로 일일히 찾아서 업그레이드해야 합니다. (diff 툴이 있다고 해도,... 수작업이 필요하죠,...)
4. Shorten URL (mod_rewrite)가 조금 부실함. (php 코드 수정을 수반합니다)
그 외에도 많은 문제점들이 있지만 그 가운데 대표적인 4가지만 꼽아봤습니다.
그러다가, 그냥 그누보드5 기반 웹 사이트 말고, 그누보드 자체를 재작성하는 건 어떨까? 라는 생각을 하게 되었고, 그러면 저작권은 어떻게 되는건지, 아니 애초에 "그누보드"라는 이름을 써도 되는 건지가 궁금해서 질문 글을 남기게 되었습니다.
일단 현재, 워드프레스와 그누보드5를 참조해서 기반 프레임웤 구성했고,
스테이징 기반으로 동작하며, 파일 기반 모듈링까지는 구성을 한 상태입니다.
배포는 LGPL로 진행될 거 같고, 졸업작품으로 제출하기 전에 깃 허브에 공개 코드로 진행해도 되는 건지는 대학교에 물어봐야 할꺼 같아서,...
대략적인 설계는 아래와 같습니다.

개별 스테이지는,
stage::on('route', function() {
if (self::$_choosen_route) {
/*
* 라우팅 이벤트를 발생시킵니다.
* 각 핸들러는 주어진 route에 변수를 셋팅하거나,
* 조작하는 등의 동작을 수행합니다.
* */
events::raise('http:route', [
self::$_choosen_path,
self::$_choosen_route,
self::$_choosen_params
]);
}
});
이런식으로 등록되며, 이벤트와 달리 등록된 스테이지 핸들러들은 반드시 실행됩니다.
그누보드5 DB 테이블 설계 명세를 거의 고스란히 따라가게 될 것 같아서,
`그누보드`라는 이름을 써도 되는지, 질문글을 남겨 봅니다.
답변 5개
답변을 작성하려면 로그인이 필요합니다.