서브메뉴

텍스트큐브 1.8 소개

by Textcube_Admin

텍스트큐브 1.8

사용자 삽입 이미지
사용자 삽입 이미지
  1. 소개
  2. 텍스트큐브 1.8 Secondary Dominant (R20)
  3. 새로운 기능
    1. 관리 패널 인터페이스
    2. 블로그 인터페이스
    3. 다른 추가된 기능들
  4. 변경된 점
  5. 성능 개선 및 버그 수정
    1. 성능 개선
    2. 버그 수정
  6. 이후의 텍스트큐브

소개

텍스트큐브(Textcube) 는 설치형 블로깅 소프트웨어인 텍스트큐브의 최신 버전입니다. 텍스트큐브는 웹 위에 생활을 기록하고 의견을 교환하는 개인부터, 개인화된 블로깅 서비스를 구축하고 싶은 단체까지 넓은 폭에 걸쳐 사용할 수 있는 도구를 목표로 개발되고 있습니다. 텍스트큐브는 내장 RSS리더 및 네트워킹 기능등을 통하여 소통 및 의견 교환이 용이한 환경을 제공합니다. 또한 텍스트큐브는 확장이 용이한 플러그인 구조와 테마 시스템, 다국어 지원을 통하여 블로그 소프트웨어의 기능을 넘어선 무한한 확장성을 제공합니다.

텍스트큐브는 '(대기업과 사용자 사이의 중립에서) 웹의 다양성을 유지'를 대전제로 활동하는 단체인 태터 네트워크 재단(Tatter Network Foundation, TNF) 및 구체적 실행 조직인 니들웍스(Needlworks) 가 제작하고 있습니다. 텍스트큐브는 설치형 블로그 소프트웨어이면서, 동시에 '웹 위에서 모든 개인이 자신의 의견을 표현할 수 있는 웹 위의 자유성과 민주성의 보장'을 지향합니다. 이를 위하여 텍스트큐브는 오픈소스 및 자유 소프트웨어 라이선스인 GPL(General Public License) 하에서 누구나 자유로이 사용할 수 있도록 배포되고 있습니다.

텍스트큐브는 자신 또는 기업의 서버, 호스팅 서버 또는 자신의 컴퓨터에 설치하여 사용할 수 있습니다. 서버는 아래의 조건을 만족해야 설치할 수 있습니다.

  • 웹서버
    • Apache 1.2 이상
    • IIS 7 이상 (IIS 6는 비공식 지원)
    • nginx 0.6.22 이상
    • lighttpd 1.4.22 이상 (베타 테스트 중)
  • PHP
    • PHP 5.2 이상 (PHP 5.2.10 이상 권장)
  • 데이터베이스
    • MySQL 4.1 이상 (MySQL 5.1 이상 권장)
    • Cubrid 2008 R 1.3 이상
    • PostgreSQL 8.3 이상

텍스트큐브는 6개월마다 큰 개선사항을 포함한 버전이 공개되며, 각 버전은 발표 후 6개월간 기능 및 버그 수정 지원, 1년간 보안 관련 업데이트를 지원합니다. 각 버전들의 기록 및 향후 버전에 대한 정보는 텍스트큐브 개발 페이지의 마일스톤 에서 확인할 수 있습니다.

텍스트큐브 및 TNF, 니들웍스에 대한 정보는 니들웍스 웹페이지 에서 확인할 수 있습니다. 텍스트큐브 개발 및 TNF의 활동 참여는 TNF 포럼 을 참조하시기 바랍니다.

텍스트큐브 1.8은 2008년 6월 텍스트큐브 1.7 발표 후 1년 6개월동안 하부 구조의 리팩토링 및 PHP 5.2 로의 이전을 포함하고 있는, 변화가 굉장히 큰 버전입니다. 텍스트큐브 1.8 은 텍스트큐브 1.7 발표 이후 다양한 환경에서 보고된 서버들에 대한 호환성을 모두 개선하고, 핵심 부분을 새로 작성한 버전입니다. 또한 텍스트큐브 1.7에서 제안되었던 다양한 기능을 담고 있습니다.

텍스트큐브 1.8은

  • 하부 구조의 재작성을 통한, 이후의 업그레이드를 위한 준비 작업
  • 컨텐츠의 유통을 편하게 하기 위한 각종 기능 추가

가 이루어 졌습니다.

아래에서는 텍스트큐브 1.8에서 추가된 기능들을 간단히 요약합니다.

텍스트큐브 1.8 Secondary Dominant (R20)

텍스트큐브 1.8 (R20. 텍스트큐브 1.5 이후 20번째 버전입니다.) 의 이름은 Secondary Dominant 입니다. Secondary dominant는 화성 진행을 부드럽게 하기 위한 기법의 하나입니다. Dominant 7th 코드 앞에 그 코드를 1도 화음으로 하는 조성의 5도 화음으로 만든 7th 코드를 붙여 원래 조성에 없는 음을 넣음으로써 변화를 주는 기법입니다. 이 이름은 텍스트큐브 1.9 및 텍스트큐브 2.0으로 '전조'하기 위한 예비 단계로서의 의미를 담아 전통대로 악상기호를 빌려 명명되었습니다.

개발 이야기 및 목적

텍스트큐브 1.8의 원래 개발 의도는 텍스트큐브 1.7과 완전히 동일한 기능과 외양을 갖지만 PHP 5 및 MySQL 4.1 이상에 대응한 버전이었습니다. 이러한 버전을 통하여 사용자들이 쉽게 새로운 서버 환경으로 이전하여 이후 텍스트큐브 2.0으로 이전을 쉽게 하도록 하기 위한 일종의 가교 역할로 기획 되었습니다.

그렇지만 텍스트큐브 1.8의 개발 중, PHP 5에서 사용하기 위하여 2008년 6월부터 2008년 9월까지 설계한 프레임웍을 실제 구현한 결과 성능이 굉장히 좋지 않음을 발견하였습니다. 이에 텍스트큐브 1.8의 일정을 연장하고, 하부 구조를 기존 텍스트큐브 1.7의 PHP 5 대응 버전이 아니라 완전히 새로 설계하기로 결정하였습니다. 이를 위하여 하부 구조를 다시 설계하는 것에 구현이 집중 되었습니다. 이 과정에서 텍스트큐브 1.8은 1.7의 단순한 PHP 5 대응 버전을 넘어 그동안 꾸준히 제기된 여러 요구사항을 반영하여 기능이 추가되고 개선되었습니다.

텍스트큐브 1.8의 하부 구조는 새로 설계 되었지만, 블로그 기능을 하는 대부분의 기능은 기존 텍스트큐브 1.7의 함수 및 컴포넌트를 호환모드를 통하여 대부분 재사용하고 있습니다. 이후 텍스트큐브 1.9에서는 텍스트큐브 1.8의 하부구조에 따라 대부분의 코드를 재작성할 예정입니다.

새로운 기능

텍스트큐브 1.8에는 여러 기능이 추가되는 동시에 그러한 기능을 새로운 구조 위에서 구현하였습니다. 18개월의 긴 기간동안 세세한 여러 부분이 개선되었습니다만, 그 대부분은 백포트 (back-port, 최신 버전의 기능이 예전 버전에서도 지원되도록 구현하는 것을 뜻합니다) 를 통하여 1.7의 마이너 업데이트 버전에도 반영 되었습니다. 그런 이유로 텍스트큐브 1.7.8과 비교하였을 때 텍스트큐브 1.8만의 새로운 기능은 쉽게 드러나지 않습니다.

여기서는 텍스트큐브 1.8에서 새로 추가된 기능들 중 텍스트큐브 1.7.8까지 반영되지 않은 기능들을 중심으로 그 일부를 소개합니다. 또한 실험적인 기능들도 여럿 소개합니다. 이 글은 간단한 안내를 위해 쓰여진 글이므로, 텍스트큐브 1.8에서 변한 여러 부분을 보기 위해서는 텍스트큐브의 1.8 발표 공지에 연결된 여러 문서들을 참고하시기 바랍니다.

관리 패널 인터페이스

텍스트큐브 1.8의 관리 패널은 텍스트큐브 1.7과 미묘한 점에서 달라졌지만 기본적으로 거의 유사합니다. 여기서는 1.7과 비교하여 사용성이 변하였거나 개선된 부분에 대해서 간단하게 안내하도록 하겠습니다.

Canon 스킨

눈에 드러나는 변화를 보기 위해서는 기본 관리 패널 스킨인 whitedream 대신 canon 스킨을 사용해야 합니다. 하지만 canon 스킨은 Internet Explorer를 지원하지 않습니다. webkit 기반의 사파리, 구글 크롬 및, gecko 기반의 파이어폭스 브라우저에서만 canon 스킨을 사용할 수 있습니다. 아래의 스크린샷은 webkit 기반의 브라우저에서 canon 스킨을 사용하는 경우를 기준으로 찍었습니다.

사용자 삽입 이미지

이전의 글 작성시에는 글 작성을 선택한 후 키로그 및 페이지, 공지등의 여부를 선택하는 방식으로 글의 종류를 결정하였습니다. 마찬가지의 방법을 여전히 지원하지만, 여기에 추가적으로 글을 쓰는 버튼을 다양하게 지원하여 바로 글쓰기를 할 수 있도록 인터페이스가 추가되었습니다.

사용자 삽입 이미지

또한 태그들을 일괄적으로 합치거나 지울 수 있는 태그 관리 메뉴가 추가되었습니다.

사용자 삽입 이미지
사용자 삽입 이미지
꾸미기

간단한 인터페이스를 사용하여 변경하던 관리 패널 스킨이 블로그 스킨과 동일한 인터페이스로 관리되도록 변경되었습니다.

사용자 삽입 이미지
서비스 관리

텍스트큐브 1.7까지는 서비스 관리자가 로그인하면 첫번째 블로그에 메뉴가 하나 더 생기는 식으로 서비스 관리 패널이 추가되었습니다. 텍스트큐브 1.8부터는 서비스 전체의 관리를 위하여 별도의 페이지가 준비되어 있습니다. 주소는 /admin 입니다.

현재의 서비스 관리 패널의 디자인은 whitedream을 원용하여 만들어져 있습니다만, 향후 서비스 관리 코드의 개선및 기능 추가와 함께 새로운 디자인이 입혀질 예정입니다.

블로그 인터페이스

아이팟 터치 (ipod touch) / 아이폰 (iphone) 전용 인터페이스

텍스트큐브 1.8에서는 텍스트큐브 1.7에서 추가된 아이폰 지원 페이지의 사용성을 더욱 강화하였습니다. 페이지의 로딩 및 스크롤에 하드웨어 가속을 사용하여 끊기지 않는 인터페이스를 제공합니다. 또한 최근 댓글, 최근 트랙백 및 방명록을 바로 볼 수 있는 메뉴가 추가되었습니다. 또한 블로그 아이콘을 등록한 경우, 아이폰에서 바탕화면에 바로 가기를 추가하면 블로그 아이콘이 바로 가기의 아이콘이 됩니다.

텍스트큐브 1.9에서는 아이폰 및 아이팟터치를 포함한 스마트폰을 위한 관리 패널을 준비할 예정입니다.

피드 형태의 다양한 출력 제공

텍스트큐브 1.8은 댓글, 트랙백 및 두가지 모두를 한 번에 묶은 피드를 제공하는 것을 넘어 카테고리, 태그, 검색어에 대한 ATOM 형태의 피드 출력을 제공합니다. 또한 이러한 피드의 링크를 스킨에서 사용할 수 있도록 치환자들도 제공합니다. 이를 이용하여 블로그를 방문하지 않고도 원하는 정보를 자신의 RSS 리더로 실시간으로 따라 볼 수 있습니다.

사용자 삽입 이미지

카테고리 출력에 피드를 함께 출력할 수 있습니다. 관리 패널에서 선택할 수 있습니다. 기존의 스킨에는 피드 아이콘을 보여주기 위해 CSS 작성등이 필요합니다.

댓글 페이징

텍스트큐브 1.8에서는 댓글을 불러올 때 기존의 방식에 덧붙여 댓글을 필요할 때만 불러올 수 있습니다. 이 경우 댓글이 많이 달리는 블로그에서 발생하는 부하를 크게 줄일 수 있습니다. 페이징을 사용할 경우 댓글을 항상 불러오지 않고, 댓글 보기 링크를 눌렀을 때만 AJAX를 이용하여 동적으로 댓글을 불러옵니다. 댓글은 AJAX를 통하여 요청할 때만 불러오게 되며, 불러온 댓글들은 페이징되어 출력됩니다.

AJAX를 사용하여 댓글을 불러올 때는 최근 댓글이 위로 출력됩니다. 댓글 사용성을 테스트한 결과, 댓글이 적은 블로그의 경우는 작성된 시간 순서대로 댓글을 읽어서 주제를 따라 가는 것이 유리한 반면, 댓글이 많은 블로그의 경우에는 즉시성이 더 중요하게 취급되는 것을 알 수 있었습니다. 텍스트큐브 1.8 의 댓글은 페이징을 사용하느냐 그렇지 않느냐에 따라 불러지는 댓글의 정렬 순서가 서로 다릅니다. 혼란이 있을 수 있으므로 참고하시기 바랍니다.

관리 패널의 스킨-상세설정에서 댓글 페이징 여부를 선택할 수 있습니다. 기본값은 사용함으로 되어 있습니다.

사용자 삽입 이미지

라인 기능 (테스트 중)

텍스트큐브 1.8에는 라인 기능이 추가되었습니다. 라인은 짧은 기록을 가능하게 하는 기능입니다. 블로그의 경우 긴 글을 적기 때문에 즉시성이 떨어지는 문제가 있지만, 라인은 짧은 글을 빠르게 쓸 수 있습니다. 또한 라인은 브라우저의 검색 엔진으로 등록하여 검색 표시줄을 이용하여 바로 글을 쓰는 기능이 있습니다.

사용자 삽입 이미지

버튼을 눌러 검색 표시줄에 라인 글쓰기를 검색엔진으로 등록할 수 있습니다.

또한 라인 기능은 여러 마이크로블로깅 서비스와 연동되어 동기화할 수 있습니다. 마이크로블로깅 서비스의 글을 자신의 라인으로 읽어 와서 저장할 수 있고, 서비스에 댓글이 달리는 경우 댓글 또한 자신의 라인으로 읽어와서 붙일 수 있습니다.

사용자 삽입 이미지

트위터 플러그인을 이용하면 관리 패널에서 직접 트위터를 작성할 수도 있고, 새 글을 작성하면 트위터로 제목을 알려줄 수도 있습니다. 이후 라인과 트위터의 연동 기능을 준비 중입니다.

플러그인 다국어 지원

기존의 텍스트큐브 1.7은 환경 설정에서는 다국어 기능을 지원하지만, 플러그인 코드 안에서 다국어를 지원하기 위한 부분은 없었습니다. 텍스트큐브 1.8에서는 플러그인 별로 다국어를 지원할 수 있도록 준비되어 있습니다. 자세한 설명은 플러그인 개발자를 위한 텍스트큐브 1.8 안내 를 참고하시기 바랍니다.

확장팩 플러그인

텍스트큐브 1.8 확장팩에는 블로깅을 여러 방법으로 즐길 수 있는 플러그인이 추가되었습니다. 트위터 클라이언트가 통째로 들어가서 바로 트위터를 즐기거나 새 글을 트위터로 알릴 수 있는 트위터 플러그인과, 과거의 글을 달력 형식으로 볼 수 있는 아카이브 썸네일 플러그인등이 추가되었습니다.

사용자 삽입 이미지

변경된 점

발행 기능에서 이올린 제외

텍스트큐브 1.8에서는 발행 버튼을 눌러도 기본적으로 이올린에 글을 싱크하지 않습니다. 이올린에 글을 보내기 위해서는 텍스트큐브 1.8 확장팩에 포함된 sync to eolin 플러그인을 사용하셔야 합니다. 텍스트큐브 1.8에는 XML-RPC ping을 지원하는 서비스의 경우 기본적으로 핑을 보낼 수 있는 기능이 있으며, 다른 스펙을 사용하는 경우라도 플러그인을 통하여 발행할 수 있도록 이벤트가 추가되었습니다.

피드 출력시 필자 이름에서 괄호 제거

초창기 RSS 피드에서 있었던, 피드를 읽어 스팸 여부를 판단하는 서비스들 또는 피드의 내용으로 스팸을 만드는 서비스들의 동작을 막기 위하여 기존의 태터툴즈/텍스트큐브에서는 사용자 이름을 괄호로 묶어서 보여주는 트릭을 사용했었습니다. 그러나 시간이 흐르고 더이상 해당 기능이 문제를 해결하는데 도움을 주지 않기 때문에, 텍스트큐브 1.7.9 이상 부터는 필자의 이름이 괄호 없이 피드로 그대로 출력됩니다.

플러그인 드라이버 (index.xml) 기술 문법 변화

기존의 텍스트큐브 플러그인 구조에서, 드라이버의 문법이 listener / tag 별로 다르게 지원되는 부분이 있었습니다. 이러한 부분을 모두 통일된 문법으로 지원합니다. 기존 플러그인 드라이버의 경우에도 호환성을 보장합니다.

성능 개선 및 버그 수정

성능 개선

블로그는 블로그 주인과 블로그 방문자의 방문 횟수가 큰 차이를 보이는 도구입니다. 방문자가 많은 블로그 페이지와, 방문자가 필자들 뿐인 관리 패널 페이지는 완전히 다른 사용 패턴을 보입니다. 우리는 텍스트큐브 1.7까지의 사용 패턴을 보고, 기존의 코드에서 병목 현상을 일으키는 부분을 댓글, 다국어 지원 구조, 세션 으로 압축할 수 있었습니다.

이 세가지 부분을 해결하기 위하여 각각에 대한 대응 방법을 준비하였습니다.

Autoload 의 본격적 도입

기존에는 현재 필요한 함수 및 라이브러리 목록을 지정하고 불러오는 과정이 필요했지만, PHP 5 로 이전하게 되면서 정말 그 함수나 라이브러리가 요구 될 때 해당 파일을 불러올 수 있게 되었습니다. 텍스트큐브 1.8은 NAF 의 베타 버전의 구조에 기반하여 사용하는 컴포넌트의 로드를 최소화하는 식으로 설계 되었습니다.

댓글 페이징

댓글 페이징 기능은 위에서 설명 드렸습니다. 기본적으로는 댓글을 아예 불러오지 않게 하고, 호출이 있을 때만 일정 수씩 불러오도록 변경되었습니다. 기존의 사용 방식을 선호하는 경우도 많기 때문에, 관리 패널에서 옵션으로 기존의 방식과 새로운 방식 중에서 프리젠테이션 방법을 선택할 수 있도록 하였습니다. 댓글 절대 주소 (퍼머링크) 로 접근할 경우에는 글과 함께 그 댓글에 맞는 댓글 페이지를 자동으로 불러와서 보여 주도록 하는 배려도 되어 잇습니다.

다국어 지원 구조

텍스트큐브 1.7까지의 다국어 지원 구조는 po / php 변환을 기반으로 하는 하나의 큰 파일로 되어 있었습니다. 이 경우, 다국어 번역 리소스의 대부분을 차지하는 관리 패널 번역 내용이 블로그 출력시에도 항상 불러지는 문제가 있었습니다. 전체 언어 리소스 중 80퍼센트 이상은 관리 패널의 번역 내용입니다.

이 부분을 최적화 하기 위하여 텍스트큐브 1.8의 언어 리소스는 크게 블로그 프리젠테이션 영역 / 관리패널 영역 / 모바일 영역 / 설치 영역 / 업데이트 영역 (checkup) 의 다섯가지 종류로 나뉘어 있습니다. 이렇게 바뀐 언어 지원 구조 덕분에 한 번에 불러오는 코드의 양을 감소시킬 수 있었습니다.

세션 관리

텍스트큐브 1.8은 향상된 세션 관리를 지원합니다. 텍스트큐브는 세션을 데이터베이스를 이용해서 구현합니다. 이러한 방법은 세션을 통해 여러가지 기능을 지원하거나 기본 PHP 세션 기능에서는 지원하지 않는 방화벽/사내망 뒤에서의 접속시 세션 보안등을 지원할 수 있게 하지만, 데이터베이스의 부하를 늘립니다. 세션 관리 코드를 새로 작성함과 동시에, 메모리를 기반으로 하는 memcached 서버를 사용할 수 있는 경우 memcached를 사용하여 세션을 관리할 수 있습니다. 이를 통하여 동시 접속자가 몰릴 때에도 데이터베이스 부하를 줄여줍니다.

버그 수정

텍스트큐브 1.8에서는 1.7까지 보고된 많은 버그들과 함께, 서버 환경에 따라 서버에 따라 로그인이 되지 않는 문제를 포함하여 동작하지 않는 경우를 각 경우에 따라 모두 대응시켜서 거의 모든 경우 돌아가도록 개선하였습니다.

이후의 텍스트큐브

텍스트큐브 1.8은 워낙 많은 변화가 있는 만큼 그만큼 잘 정돈되지 않았습니다. 또한 텍스트큐브 1.8은 처음에는 가교 역할을 하는 판올림으로 계획된 만큼 텍스트큐브 1.7까지의 플러그인 호환성 지원등을 충실히 하도록 개발 되었습니다.

이후의 텍스트큐브 1.9는 크게 세가지를 목표로 개선 사항이 이루어질 예정입니다.

  • 텍스트큐브 1.8에서 부족하였던 UI 및 사용성에 관련된 부분들의 개선
  • 코어 코드 및 함수들의 새 플랫폼으로의 이전 완료
  • project codeball 위에서 돌아가도록 플랫폼 포팅

텍스트큐브 1.9는 올해 6월에 발표가 예정되어 있으며, 알파 버전의 테스트가 곧 시작될 예정입니다.

더 자세한 안내

텍스트큐브 1.8의 더 자세한 안내는 아래의 링크를 참고하시기 바랍니다. :)

사용자 삽입 이미지
2009/12/24 19:36 2009/12/24 19:36
받은 트랙백이 없고   댓글이 없습니다.
이 글의 댓글/트랙백 RSS : http://www.textcube.org/center/rss/response/12
이 글의 관련글(트랙백) 주소 : 이 글에는 트랙백을 보낼 수 없습니다