그누보드를 쓰면서 개인적으로 아쉬운 점 정보
그누보드를 쓰면서 개인적으로 아쉬운 점본문
현존하는 최고의 무료 배포 프로그램인 그누보드를 감사하게 사용하면서 아쉬움을 드러내 송구하기도 하지만
개인적으로 깊이 사용하다보면 아쉽게 느껴지는 부분이 있어서 끄적여 봅니다.
1. class는 css 스타일링 즉 디자인의 영역만으로 제한하고, 자바스크립트나 기능적인 영역은 id 나 data-
* 와 같은 별개의 attribute로 역할을 명확히 구분하면 스킨 제작시 얼마나 자유로울까 생각해봅니다.
css 안에 클래스로도 스타일링을 하고 아이디로도 스타일링을 하고,
자바스크립트에도 클래스명이 selctor가 되기도 하고 이렇게 혼재 되어있다보니
간단히 디자인만을 변경하고 싶어도 이 클래스명에 관여하는 기능이 있는지, 이 아이디로 스타일링된 부분이 있는지 체크해야 하다보니 아쉬움이 있네요.
그리고 css 클래스명도 다른 것과 충돌하지 않도록 종속적으로 코딩을 하거나 별도의 특별한 구분자를 넣어주면 좋지 않을까 싶습니다 .
예를들어 기본 css에 .btn 이 정의되어 있는데 다른 곳에서도 .btn이라는 클래스를 사용할 수 있는데
g5 처음 사용할 때 제가 작성한 .btn이 요상하게 나와서 한참을 찾았었네요.
.parent > .btn 이런식이라던가, .gnu-btn 과 같이 다른 css와 중복(충돌)될 가능성을 최대한 줄여주는 코딩이 필요해 보이네요.
2. 코어와 테마와 스킨이 명확히 분할되어 있다면 얼마나 좋을까?
코어에도 기본 레이아웃이 입혀져 있고,
또 테마내에서도 별도의 스킨이 적용가능하고,
거기다 모바일이라는 폴더내에 별도의 테마나 또다시 스킨이 있고
이렇게 복잡한 구성이다 보니 불필요한 파일들이 이곳저곳에 너무 많이 혼재되어 있다보니
비슷한 파일들이 여기저기 덕지덕지 중복되어 파일갯수가 엄청 많아지는데
개발하실때 여러가지 상황으로 고려하여 어련히 최적의 방향으로 파일 구성을 하신 것일 테지만
(예를들어 테마내에 스킨이 따로 또 있는건 배포와 설치의 편의성을 고려하셨다던가....)
어차피 기본 그누보드 순정에도 테마 basic이 포함되어 있으니
이참에 레이아웃을 구성하는 파일들은 테마로 통일을 하고,
모듈? 콤포넌트? 들은 skin으로 통일하고,
모바일도 요새는 반응형이 대세이다 보니
코어에 별도의 mobile 이 있는 거 보다
각 테마와 스킨에서 충분히 반응형 처리를 할 수 있고
구조나 기능상 모바일이 별도로 구분되어야 하더라도 각 테마와 스킨에서 별도의 인클루드를 통해 처리할 수 있지 않나 싶네요.
3. 게시판별로 정렬방식을 설정할 수 있다면 좋지 않을까?
게시물 정렬이 항상 등록순인게 아니기 때문에 특별한 스킨을 만들다보면 정렬방식 수정을 위해서 부득이하게 코어파일인 list.php 를 건드리게 되는데 extend 통해 게시판별로 주가 정렬 조건을 부여할 수 있다면 좋지 않을까도 생각해 봅니다.
뭐든지 아쉬운게 있는데 이렇다보면 한도 끝도 없겠지만 개인적으로 아쉬운 것들을 적어봤습니다.
빈수레가 요란하다고 잘도 모르면서 이래저래 주절거린거 같아 죄송합니다.
그리고 좋은 파일을 배포해주셔서 그누보드 담당자분들께도 감사의 말씀을 드립니다.
2
베스트댓글
개발자로서의 자존심과 성장엔 관심이 없는 사람들은 다 그누보드 찬양 하더라구요.
댓글 20개

CSS 클래스명이나 스크립트에서 사용하는 셀렉터로 사용하는 방법 등 말씀하신대로 오래전에나 사용하던 방식을 유지하고있죠.
현재의 레이아웃이나 테마, 스킨들은 그대로 두면서 사장시키고 별도의 기본 테마+스킨으로 새로 만들어야겠죠. 기본으로 제공되는 공통된 스크립트 등도 별개로 작성해야할텐데 문제는 다른 스킨, 플러그인 등과의 호환성이 깨질 가능성이커서 사실상 아주 큰 변화가 되어버리기 때문에 그누보드 6이나 5.6 등 메이저 업데이트가 아닌 이상 기대하기 어렵다고 봐야겠죠.
2. 테마는 예상하신 것처럼 배포를 위해 레이아웃+스킨을 묶은 세트입니다.
필요하지 않다면 스킨을 포함하지 않아도 되고 테마가 적용되었다 하더라도 루트의 스킨 폴더에 있는 스킨들을 사용할수있고요.
굳이 루트에있는 레이아웃(head, tail 등)이 남겨진 이유는 레거시 때문인 것같지만….
반응형이 자리잡은지는 오래됐지만 현실적으로 모든 사이트를 반응형으로 제작하기는 쉽지않아서 스마트폰과 그 외의 기기를 나눠서 만드는게 나은 경우가 많죠.
필요하지 않다면 모바일 모드를 끌수있고 반응형으로만 레이아웃과 스킨을 적용할수있습니다.
https://github.com/gnuboard/gnuboard5/blob/8bcac60bdabe91eb7dc980111da53bd908a0bf3e/config.php#L135-L143
이 설정은 테마에서 덮어쓸수도 있습니다.
https://github.com/gnuboard/gnuboard5/blob/8bcac60bdabe91eb7dc980111da53bd908a0bf3e/theme/basic/theme.config.php#L4-L8
3. 게시판 설정에서 정렬 대상 필드를 선택할수있습니다. 목록에 없는 것이라면 코드를 수정해야겠지만 게시판 별로 설정에서 변경할수있죠.

그래도 뭔가 차기 버전이 준비 중인것 같아서 많은걸 기대할수는 없겠지만 기다려지긴 하네요.

저도 배포용 테마하나 만들고 있는데 그누보드 내장된 css나 스크립트를 싹 다 쳐냈습니다.
하지만, 레이아웃, 스킨 외에도 코어레벨에서 출력하는 html 코드에 포함된 class나 일부 스크립트 유지가 필요해서 부분적으로 가져와 사용해야하지만요.
특히 관리자에서 정렬 필드 변경할 수 있는건 오늘 처음 알았네요. ㅎㅎ. 정렬필드나 조건이 너무나 다양해지는 경우가 있어서 제가 필요로 하는 설정은 아니지만..


필요한사람 원하는데로 맞춰주면 되죠.
없으면 만들면 되죠.
개발 그만두고 싶다 언제 그만두지... 가난해서 못 그만두겠네 내 영혼...



예를 들어
<a href="naver.com" class="btn">버튼</a>이라고 할때
style 에서 .btn{} 이지만
<div class="new">
<a href="naver.com" class="btn">버튼</a>
</div>
이라고 하면
style 에서 .new .btn{} 이으로 바뀌겟죠
아니면
<a href="naver.com" class="btn new-btn">버튼</a>
일때 중복 클라스로
style에서 .btn.new-btn으로 해결해도 되구요



개발자로서의 자존심과 성장엔 관심이 없는 사람들은 다 그누보드 찬양 하더라구요.