워드프레스에 불평 몇 가지

[ 2007년 09월 03일, 23시 12분] [ 글 갈래 : 워드프레스, 잘난 척 하기 ]

나는 2004년부터 워드프레스라는 블로그 도구를 쓰고 있다. 1.5판 때부터 썼는데 어느 날 보니 2.2까지 판올림 돼있더라. 내 주변 몇 몇 사람은 알다시피 난 워드프레스 지지자였다. 상당히 열렬했다. 그 많은 확장기능들과 겉모습 껍데기들(template)은 정말 대단하다. 더구나 확장기능이나 껍데기를 만들 때 확장하기 참 좋은 구조를 가지고 있어서, 워드프레스로 이것 저것 시도할 수 있는 것도 참 많다. 워드프레스 몸통은 작은 편인데, 그 몸이 참 실한데다 무슨 일이든 해낼 수 있을만큼 유연해서 참 좋아했다. (쉽게 말해서 안정성 좋고 확장성 좋다는 말)

그런데 몇 개월 전부터 나는 워드프레스가 불편하다고 느끼고 있다. 첫째는 자동 광고 등록기 때문이고, 둘째는 자잘한 오류나 문제점들 때문이다. 워드프레스는 이용자가 무척 많다. 그래서인지 워드프레스로 날아오는 광고 글은 무척 많다. 많은 것들을 akismet 이라는 거름기(filter)가 걸래내고 있지만, 그래도 제법 이 거름기를 뚫고 무사히(?) 광고 댓글이 달리곤 한다. 뭐, 이건 워드프레스만 안고 있는 문제가 아니라고 치고.

두 번째 불편함은 워드프레스의 강점이 문제가 된 상황이다. 이 글에서 도마 위에 올리려는 내용도 바로 이 부분이다. 워드프레스는 그 자체를 최대한 작게 만들었다. 요즘엔 기본 기능처럼 쓰이고 있는 꼬리표(tag) 기능도 워드프레스엔 아직도 없다. 워드프레스 깔면 썰렁한 느낌이 들 정도로 기능이 아주 적다.

대신 여러 확장도구를 만들어 쉽게 붙여 쓸 수 있게 구조를 아주 잘 만들었다. 어지간한 거의 모든 것은 워드프레스에서 확장기능(도구)과 껍데기로 만들 수 있다. 놀라울 정도로 확장성 있는 구조 덕에 이용자들은 자신이 원하는 기능만 가져다 붙여서 쓸 수 있다. 확장 도구는 전 세계에 있는 수 많은 사람들이 만들어서 공개하고 있기 때문에 아주 다양하고 그 수도 많다. 바로 이 점에 내가 반해서 3년 가까이 써온 것이다.

그런데, 문제는 워드프레스 구조가 확정되어 고정된 상태가 아니라는 데에 있다. 워드프레스 구조는 지금도 꾸준히 조금씩 바뀌고 있으며 가끔 중요 정책이 바뀌기도 한다. 이렇게 구조나 정책이 바뀌면 예전 판에 호환되는 일부 확장도구는 호환성에 문제가 생기기도 한다. 예를 들면, 워드프레스에서 꼬리표(tag) 기능으로 널리 쓰이는 Ultimate Tag Worrior 3.x판은 워드프레스 2.1과 잘 어울리질 못했다. 그래서 글을 쓸 때마다 예전 글에 쓴 꼬리표들이 홀라당 날아가곤 했다. 물론, 이런 저런 문제점을 해결한 Ultimate tag worrior 최종판(final)이 나오긴 했지만, 한동안 이 문제로 괴로워했다.

즉, Wordpress를 개발하고 배포하는 곳에서는 그 작은(?) Wordpress만 보완할 뿐, 본체인 Wordpress에 붙어서 움직이는 확장 도구는 건드리지 않는다. 그래서 Wordpress가 기침이라도 한 번 하면 여러 확장도구들이 몸살을 앓는 경우도 있다.

또 다른 문제는, Wordpress 정책이나 구조 변화가 오래 전부터 Wordpress를 써오던 이용자에게 독이 되는 경우이다. 확장도구 문제가 아니라 바뀐 Wordpress 정책이 예전 Wordpress 정책과 충돌해서 Wordpress 안에서 문제가 발생하는 경우이다.

예를 들면, UTF-8를 지원하지 않는 mysql이 두루 쓰이던 Wordpress 1.5판 시절엔 Wordpress는 문자열을 어거지로 UTF-8 상태로 DB에 넣었다. 당연히 문자열은 깨져서 들어갔다. 그런데 시대는 변해서 요즘엔 UTF-8를 지원하는 mysql 깔린 곳이 많다. 무심코 옛 Wordpress 내용을 utf-8 를 지원하는 mysql로 옮기면 글을 검색하지 못하는 문제가 생긴다. 글자형이 다르기 때문에 일치하는 문자열을 찾는 Wordpress 검색 기능으로는 분명 존재하는 글인데도 찾지 못하는 문제가 생기는 것이다. 게다가 Wordpress는 아직도 DB 테이블을 만들 때 utf-8로 글자형을 지정하지 않고, mysql에서 설정한 기본 글자형을 그대로 쓰고 있다. T_T 만약 호스팅 업체에서 mysql 기본 글자형을 latin1 처럼 utf-8로 안할 경우 방금 얘기한대로 DB에는 글자가 깨져서 들어가게 된다. ㅜㅜ 범용성 때문에 이러는 것 같은데, 사실 이건 mysql 환경 설정 변수를 검색해서 utf-8가 아니면 set names utf8; 이라는 mysql 명령어 한 번 실행해주면 해결되는 문제이다! ㅜㅜ

물론, 정책이 바뀐다고 해서 언제나 안좋은 것은 아니다. 문자열 거름 정책이 바뀌어서 예전엔 쓸 수 없었던 > _ < 같은 글자(정확히는 < 이것)를 이젠 쓸 수 있다. 하지만, 크건 작건 정책이나 구조가 바뀌면서 혼란이 일어날 수 밖에 없다.

이외에도 글 낱장주소 구조를 /%postname%/ 으로 하고 글 slug(낱장주소 이름)를 숫자로 할 경우 999까지만 쓸 수 있고 1000부터는 워드프레스가 글을 찾지 못하는 증상도 문제이며, 이 문제는 아직 해결되지 않고 있다. 예를 들면, http://www.hannal.net/blog/999 는 접근이 되는데 http://www.hannal.net/blog/1000 엔 그런 것 없다는 오류를 만나게 된다. 숫자로 된 주소 앞이나 뒤에 문자를 넣어줘야 한다. /blog/a1000 나 /blog/1000a , 혹은 /blog/entry/1000 이런 식으로 말이다. 아마도 RewriteRule 과 관련된 충돌인 듯 하다. (물론, 몇 개월 전에 오류 보고를 했지만 답을 아직 받지 못했다)

정리하면 워드프레스의 강점인 작은 몸체와 유연한 확장 도구 구조가 여러 정책 변화나 상황에 맞물려 오히려 독이 되는 경우가 생기는 점이다. 그래서 나는 텍스트큐브로 옮기는 걸 고민하고 있다. 기존 낱장주소(permalink)를 보존하고 보장할 방법이 아직 마땅지 않아서 갈아타고 있진 않지만, 예전 주소를 보존할 수 있는 방법을 찾는다면 망설임 없이 텍스트큐브로 갈아타려 한다. 태터툴즈 시절엔 무겁고 느려서 쓸 생각도 안했는데(분석 차원에서 깔아다 끄적대긴 했지만), 태터툴즈부터 쌓인 개발자들의 개발/운영 경험이나 한결 가볍고 빨라진 구조를 보면 이제는 마음 놓고 쓸 수 있겠다.

언제쯤 예전 낱장주소를 보존할 수 있는 방법을 제시해줄 것인지 알 수는 없지만, 예전 낱장주소를 보존할 방법이 나온다면 바로 텍스트큐브로 갈아타련다.

덧쓰기 : 어째 글 마무리는 얼른 해결 방법 제시해달라고 떼 쓰는 것 같네? 히히.

8개의 댓글과 엮인글이 있습니다.

  1. gofeel:

    ㅋㅋ 이제 결자해지 댓글달리는 것만 구경하면 되는거군요..


    comment at 2007/09/04
  2. 한날:

    하하하.
    엄밀히 따지면 저러한 정책을 처음에 생각한(매듭) 이가 풀어야 하지 않겠습니까? s( -_-)y ~ 후우.


    comment at 2007/09/04
  3. fantastic902:

    태그기능은 2.3버전부터 Ultimate Tag Worrior가 기본으로 포함된다고 하네요 ‘-’

    저도 판올림 한번 했다가 약 300개정도의 포스트에 태그를 일일히 달아줬던 기억이..

    불만사항에 대해서 대체적으로 공감합니다.
    모르던 오류까지 알게 되서 다행이네요 :)


    comment at 2007/09/04
  4. 츄츄:

    워프 초보, 비 IT 인은 제게는 인지하지 못 했던 부분들도 있네요.
    사용자로 하여금 좀 더 좋은 환경을 꾸며주려는 워프자체도 그렇고, 워프 버전업에 따라 댓가 없이도 꾸준히 플러그인을 수정시켜주는 개발자분들이 있기에 다수의 사용자가 조금이라도 편하게 사용할 수 있는 것 같아요. 그런 환경이 제겐 너무 좋네요.^^


    comment at 2007/09/04
  5. 한날:

    # fantastic902님/
    오, 결국 그리 되는군요. 그래서 Ultimate Tag Worrior 판올림이 끝난 걸까요? (아님 정말 더 이상 할 게 없어서?)
    근데 300여개 글에 일일이 꼬리표를 다셨다니. 정말 대단하십니다. 전 예전 글엔 과감히 꼬리표를 달지 않았거든요. 하하.
    fantastic902님 블로그에 가보니 다행히(? ) 낱장주소를 숫자만으로 하진 않으셨네요. :D아는 녀석은 낱장주소 문제 때문에 아주 괴로워 하더군요. ㅡ.,ㅡ
    .
    # 츄츄님/ 네, 맞습니다. 그 많은 분들이 있기에 이토록 멋진 도구가 계속 나아가고 있는 것이지요. ^^ 저도 그 환경이 좋긴 합니다…만, 이젠 너무 워드프레스에 시달려서 orz


    comment at 2007/09/05
  6. bum:

    저도 워프가(다른 웹어플도) UTF-8을 기본으로 테이블과 필드를 생성하지 않아서 일일히 고치곤 합니다.
    그런데 set names UTF-8로 한방에 다 바꿔진다는 말씀이진지요?
    이미 생성된 DB, TABLE, FIELD를 한방에 다 UTF-8로 바꾸는 방법이 있을까요? ㅜㅜ


    comment at 2007/09/15
  7. 한날:

    다 바꿔지는 것은 아니고요. 그 명령어를 내릴 때부터 문자열을 UTF-8로 처리합니다. 그래서 UTF-8가 아닌 문자형으로 들어간 것도 UTF-8로 가져오지요. 이 말은, 깨져서 들어간 문자열을 안깨지게 적당히 가져온 뒤(euc-kr 이나 utf-8로) 다시 바꿔 넣을 때(update) 위 명령어를 먼저 실행하면 utf-8로 들어간다는 것이지요. 물론, 테이블도 utf-8로 먼저 바꿔줘야 합니다.
    .
    한 방에 싹 다 utf-8로 바꾸시려면 뭐니 뭐니해도 db를 문자열이 깨지지 않게 dump 받은 뒤(mysql-dump), 이 파일을 utf-8로 저장하고, dump 받은 파일 안에 테이블 생성하는 sql 문이 있다면 그곳에 utf-8로 테이블을 생성하는 구문을 넣어준 뒤 dump 받은 db를 다시 넣는 것이지요.
    .
    근데 말이죠. 이것도 귀찮아서 안하고 있어요. 으흐흐.


    comment at 2007/09/16
  8. dudtn:

    저는 워드프래스로 넘어온지 얼마 안된 사용자입니다.
    지금 워프의 확장성에 빠져서 행복해하고 있는데….
    이 글을 보니 너무 좋아해서는 안돼겠다는 생각이 드네요~
    좋은 글 잘 보고 갑니다.^^


    comment at 2007/09/16

댓글을 남기시면 좋은 일이 생길 겁니다.



XHTML: 옆의 HTML 태그를 사용할 수 있습니다 : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>