나만의 블로그엔진 개발 : Papyrus

머 눈썰미 있으신분들은 이미 보고 아셨겠지만..
제 블로그의 기본 시스템이던 Zog 를 들어내고, 직접 만든 블로그엔진으로 교체를 시도하고 있습니다.
아직 미완성이지만, 이름/코드명은 제가 좋아하는 단어인 Papyrus 로 붙여봤습니다.
그냥 종이에 먼가를 적는 다는 느낌으로 쓰는게 맞을거 같네요. 혼자만 쓸려고 만드는데 이름만 너무 거창한가요 ^^;

일단, 기존 제로보드 데이타는 그대로 유지한채, 트랙백과 코멘트양식은 조그의 것을 그대로 가져왔습니다.
데이타 호환이 되야하는지라, 어쩔수 없는 선택인거죠. 차후엔 아예 DB 구조를 바꿀예정입니다만..
그건 작업이 좀 많을거 같아서, 전문 웹 개발자가 아닌 제가 하기엔, 아마도 아주 먼 훗날에나 가능할 것 같습니다 ^^

어쨋거나 조금 허접하지만, 새로운 시스템의 장점은..

  1. XHTML , CSS2 표준 준수
    LikeJAzz 님 처럼 XHTML 1.0 Strict 까지는 아니더라도 표준 XHTML 1.0 Transitional 까지는 지키고 있습니다.
    관련글 : →Table-based design is so Stupid!
    조금만 수정하면 Strict 까지도 가능하지만.. anchor 에서 target=_blank 를 좋아하는 저로선, 현재가 좋습니다. ^^

    그리고 이에 따라 가장 큰 개선점인. Cascading Style Sheet Level 2(CSS2) 만을 이용한 화면 디자인이 이루어졌습니다.
    메뉴처리부분을 테이블없이 하느라 고생했습니다. 지금은 각 브라우저별로 상이한 스펙을 맞추느라 정신없네요. 휴..

    FireFox 사용자 분께서는 하단 상태표시줄 맨앞의 아이콘을 클릭하시면 왼쪽으로 메뉴를 옮긴
    Alternate StyleSheet : Left Nav 와
    검정색 배경의 Black Back StyleSheet 를 적용해 보실수 있습니다.
    IE 나 Opera같은 브라우저 사용자께선 어쩔수 없이 인자를 통해 CSS 파일명을 전달하는 방식을 사용하여
    Left Nav 스타일 Black Back Style 을 클릭 하시면 보실수 있습니다. ^^
    ( CSS 파일이나, 쿠키처리가 완벽하지 않습니다. 그냥 테스트 모드 정도입니다. )

    CSS 를 공부해나가면서 새로운 형식의 디자인을 계속 만들어 볼려고 생각중입니다.
    Ari 님의 Style Sheet 골라쓰기을 적용해서 쿠키까지 구워내면, 입맛에 맞게 볼수있는 블로그가 될것 같아요.

    생각해 보니 External CSS라는 인자 제공만 하면, 직접 만드신 CSS 로 볼수도 있을거 같네요. 아무도 안하실거 같지만.. ^^

  2. html 확장자를 가지는 permalink 제공
    국내 설치형 블로그 엔진들은 거의 php 기반으로 되어서인지, 각 글의 고유링크(Permalink)가
    index.php?id=112 이런식으로 보이게 됩니다. 하지만 외산툴인 MovableType 같은 경우는 Perl 을
    이용해서 112.html 과 같이 .html 의 확장자를 가지는 완전한 html 문서로 글이 남게 됩니다.
    관련글 : →무버블타입과 정보의 가치

    검색엔진이 html 형식을 좋아하는지 어떤지는 잘 모르겠습니다.
    하지만 저런식으로 파일번호가 남는것이 훨씬 보기에는 좋은거 같습니다.

    그래서 이번에 구현을 하면서 편법으로 나마 외부에는 168.html 과 같이 보여지도록 구성을 해봤습니다.
    Apache 의 RewriteRule 적용만으로 쉽게 해결이 되더군요.
    httpd.conf 의 디렉토리부분에 추가한 내용은 다음과 같습니다.

    RewriteEngine on
    RewriteBase /blog/
    RewriteRule ([0-9]+)\.html index.html?no=$1

    데이타는 DB 에 남고, 외부에는 각각의 html 로 보여지고.. 혼자 무지 만족하고 있습니다 ^^* (멋진 팁일까요 ?)

  3. 속도 개선
    며칠전에 제가 블로그의 속도에 대해 포스팅을 하나 했는데요. 찾아봐도 해결이 잘 안되서,
    그냥 심플한 시스템을 개발해보자 하는 생각을 하다가, 일을 벌리게 되었습니다.
    어차피 저혼자 글을 작성하는 블로그라, 로그인이나 기타 기능을 삭제하고 돌려보니.. 체감속도는 상당히 빨라진것 같습니다. ^^

    곰곰히 생각도 해보고, FireFox 의 Web Developer Extension 가지고 분석및 속도체크도 해봤는데,
    이미지를 없애고, CSS 를 이용해서 HTML 문서상의 디자인코드를 최소화 한것도 초기 전송속도 향상에 도움이 된것 같습니다

  4. 모든게 내 맘대로~
    저 혼자 뚝딱 거리니, 기능추가하는게 맘대로라 편하다는게 가장 클거 같습니다.
    미디어로그,링크블로그도 Frame 을 이용하지 않고 그냥 파일로 구현하니 보기도 좋구요. ^^

    조금 안정화 되면, MiniWini 처럼 계층형 코멘트를 넣어볼까 고민중입니다. 위쯔님이 제로보드에서 DB변경없이 계층형 코멘트 추가 하는법을 적어 놓으셨네요. 답 리플달기가 훨씬 수월해 질듯합니다 ^^

    급하게 만들다보니 , 글쓰기 페이지도 아직 안되어 있군요. 현재는 보기및 코멘트달기만 가능한 엔진입니다. ^^;
    로그인관련기능을 안넣다보니.. 트랙핑 날리기도 빠져있군요. 슬슬 추가해 봐야겠습니다.

이 자리를 빌어, 좋은 코드를 제공해주신 zogMan 님과 Oliver 님, LikeJAzz님께 감사드립니다.
트랙백 관련한 코드는 Zog 에서, 페이지 링크및 카테고리보기는 Oliver님 플러그인 에서,
JavaScript 와 Form 관련 Tag 등은 LikeJAzz 님 홈페이지에서 참조하였습니다.
(혼자만 쓸꺼니깐.. 용서해 주실꺼죵 ^^)

2004.09.16 추가 : LikeJAzz 님의 TypeKey 를 통한 Single Sign On 관련 글을 보고 적용해봤습니다.

아래 코멘트 등록 버튼 옆에 있는 TypeKey 로그인를 통해 로그인한후에 글을 남기면 이름옆에 TypeKey Member Icon 표시가 나오고 이 표시를 클릭시 TypeKey Profile 페이지로 이동합니다.
(아직 DSA Verification 은 안되므로 해킹하시면 안되욧! ^^*)

나만의 블로그엔진 개발 : Papyrus”에 대한 19개의 생각

  1. 구루

    [+한날님] 아직 고쳐야할 부분이 많은거 같습니다.
    홈주소를 적어주셨으면 저도 가서 진행중이신거를 좀 볼수 있었을텐데요 ^^;

    응답
  2. AKI

    구루님 회사일은 한가하신가보네..언제 이런걸 다 한데 그랴
    너도 참 이런거 보면 타고났다 타고났어… 천직이다 정말
    십년을 넘게 하면서도 아직도 재미있어 할수 있다니
    난 돈주고 하라고 해도 귀찮아서 못하겠더만..

    응답
  3. 구루

    [+AKI] 회사일이 한가하다니! 내 여가시간내서 취미생활 하는것이얍
    회사일도 잘하고 여가생활도 즐기는 멋진 사람이라고 해줘. 캬하하

    응답
  4. 구루

    [+쿠마님] 후다닥 작업해서 붙인거라 복호화 체크도 안됩니다 ^^;
    가벼운거 같다는거 칭찬이신거죠 ? 감사합니다~

    [+LikeJAzz님] 계속 저에게 이런저런 도전거리를 만들어 주시네요. 계속 부탁드려요~ ^^*

    응답
  5. 하늘

    수고하셨네요.. 디자인도 이쁘고, 기능이나 그런 면에서 모두 좋군요. 한 번 패키징을 시도 해 보셔서 버전 관리를 해 보시지요?

    응답
  6. 구루

    [+하늘님] 감사합니다! 그런데.. 소스코드가 워낙 지저분해서 패키징까지는 힘들듯 합니다. -_-;
    저 혼자 CVS 로 버젼관리만 하고 있답니다. 🙂

    응답
  7. 구루

    [+oliverne님] ^^ 어쩌다 보니 이렇게 되었네요.
    올리버님 스크립트가 정말 많은 도움이 되었습니다. 감사합니다

    응답
  8. 구루

    [+ilovja님] 아직 따라하기 수준입니다 ^^ DSA 검증부분은 손도 못대는걸요..
    [+Longhorn님] TypeKey 는 MovableType 을 제작하는 SixApart 에서 만든 블로그를 위한 오픈인증 시스템입니다.
    위에 LikeJAzz님 사이트에 가시면 자세한 설명을 보실수 있습니다 ^^

    응답

댓글 남기기

이메일은 공개되지 않습니다.