PHP5와 텍스트큐브
머리아픈 이야기 2008/08/29 01:14오랜만에 글을 적습니다. 핑계라면 핑계이겠습니다만, 살아가면서 가끔 여러 일들을 겪으며 정리가 필요한 시기가 니옵다. 비단 한 사람만이 아니라 사람들의 모임에도 그런 시가기 오지요. 그 시기를 어떻게 지나가는지가 참 중요하다는 생각이 듭니다.
간만의 글 치고는 고른 내용이 좀 딱딱하겠습니다. 텍스트큐브 1.8 이후부터 실행을 위해 PHP5.2 와 MySQL 4.1 이상을 기본 사양으로 요구하는데, 오늘은 그에 대한 설명이나 변화점을 이야기 하려고 합니다.
국내의 대부분의 PHP 어플리케이션들은 PHP4를 기준으로 제작되고 있습니다. 여러 이유가 있지만, 가장 큰 이유는 프로그램을 설치할 수 있는 환경을 주로 제공하는 호스팅 업체들이 PHP5 를 지원하는 경우가 적기 때문입니다. PHP4 와 PHP5 는 숫자 하나 차이가 나지만, 굉장히 다른 특성을 보이는 언어입니다. 그래서 PHP4를 기준으로 만들어진 응용 프로그램들은 PHP5에서 동작하지 않는 경우들이 간혹 있습니다.
그렇다고 PHP5 가 굉장히 새로운 언어는 아닙니다. 물론 PHP4 보다는 최근에 나왔지만, 어디까지나 상대적으로 보았을 때 입니다. 올해는 PHP5가 나온지 5년이 된 해입니다. PHP 5.3과 PHP6 이 개발 중에 있으며, 멀지 않아 사용할 수 있게 될 것입니다.
지금까지 PHP 4.3을 기준으로 제작되던 텍스트큐브가 PHP 5.2를 기본 환경으로 선택하게 된 근본적인 이유는, 더이상 PHP 4 가 개발되지 않는다는 점 때문입니다. PHP 4의 공식적인 지원은 얼마전 종료 되었습니다. PHP.net에서는 보안을 포함한 여러 문제로 사용자들이 PHP 5.2 이상으로 이주할 것을 권고하고 있습니다. 웹을 둘러싼 환경은 빠른 속도로 변하게 될 것입니다. 이러한 과정에서 니들웍스와 텍스트큐브 개발 그룹도 결정을 해야 했습니다.
텍스트큐브 1.7의 과거 환경 지원은 굉장히 폭넓습니다. PHP 4.3 과 MySQL 3.23 이상의 환경을 지원합니다. 이러한 지원은 사용자에게는 환경에 대한 고민을 하지 않아도 되는 이점이 있지만, 코드의 효율성 입장에서는 문제가 있습니다. 더 상위의 환경에서 텍스트큐브를 돌려도 속도의 이점을 볼 수 없기 떄문입니다. 예를 들면, 윈도우 비스타가 지원되는 환경에서도 도스 시절의 프로그램을 돌릴 수는 있지만 그 프로그램이 윈도우 비스타의 성능을 모두 끌어낼 수는 없는 것과 마찬가지입니다. 텍스트큐브가 하위 호환 모드로 동작할 때, 유니코드 환경 지원과 MySQL 3 데이터 베이스 지원을 위해 들어가는 서버 리소스는 텍스트큐브 전체 동작시 사용하는 리소스의 1/3 이상입니다.
개발 패러다임의 변화도 PHP 5.2를 택한 이유입니다. 텍스트큐브의 일부 컴포넌트는 객체 지향 패러다임을 기반으로 작성 되었지만, PHP 4 의 객체 지원은 굉장히 부족합니다. 또한 속도 부분에서 큰 손해가 있기 때문에 텍스트큐브 1.7까지는 일부의 객체 기반 코드 일부의 순차 처리 코드로 이루어져 있습니다. 그러나 텍스트큐브 2.0에서 사용될 TCF (텍스트큐브 코어 프레임웍 – 가칭입니다.)를 개발하는 과정에서 개발에 참여하는 분들은 현재 코드의 혼란을 최소화 하기 위해서 코드의 패러다임을 변경하기를 원했습니다.
위에서 설명 드린 것과 같이 PHP.net 에서의 PHP 4의 지원 중단, 과거 환경 지원으로 인하여 발생하는 성능 감소, 새 프레임웍을 둘러싼 개발 패러다임의 변화를 이유로 텍스트큐브 1.8 이후부터는 PHP 5.2와 MySQL 4.1 이상을 요구합니다. 새로운 프레임웍은 텍스트큐브 2.0부터 본격적으로 도입될 예정이며, 텍스트큐브 1.8은 텍스트큐브 1.x 코드를 새로운 환경의 특징을 살려 최적화하는, 다리 역할을 하는 주춧돌이 될 예정입니다. 텍스트큐브 1.8은 그 전까지 막혀 있던 병목들을 제거하여, 단위 시간당 더 많은 트래픽을 더 적은 CPU와 서버 로드를 사용해서 처리할 수 있는 가능성을 시험하게 됩니다.
간단하게 결졍된 내용은 아니었습니다. 기본 요구 환경의 변화와 관련하여 내부적으로 많은 토론이 있었습니다. 한국 호스팅 업체의 환경이 과련 이러한 요구 사항을 받아 줄 것인지부터, 새로운 환경의 어떤 특징을 살려서 코드를 써 나갈 것인지에 대한 이야기도 있었습니다.
그 논의에 참여하며 한가지 확신한 것이 있습니다. 정체는 무기력을 낳습니다. 텍스트큐브를 현재 한국 웹 호스팅의 현실에 맞게 개발하는 것도 중요합니다. 그렇지만 조금 눈을 밖으로 돌리고 조금 앞을 내다보려고 합니다. 지금이 현실에 대한 안주가 아닌 변화를 위한 적기입니다. 언젠가는 시작해야 하는 일입니다. 그래서 시작하려고 합니다.
덧) PHP 4.3 사용자 분들이 많고, 당장 쉽게 새로운 환경으로 이전하기 힘든 부분을 어떻게 지원할 것인지에 대한 논의도 있었습니다. 텍스트큐브 1.8을 개발하는 중, 성능 향상이나 기존 버전에서 구현이 불가능한 부분들을 제외한 기능이나 인터페이스 추가와 같은 부분들은 기존의 텍스트큐브 1.7 에도 계속 반영하고 발표할 예정입니다.
Needlworks.org i18n 적용!
머리아픈 이야기 2008/06/20 08:25안녕하세요. 오랜만입니다.
이번 토요일에 스웨덴을 떠나 일요일이면 드디어 기나긴(그러나 한편으론 짧디 짧은) 반년 동안의 교환학생 생활을 마치고 한국에 돌아가는 daybreaker입니다. (어디서 '날뷁~~'하고 부르는 소리가 들리지만 무시하시고-_-)
이번에 알려드릴 소식은 [needlworks.org](http://needlworks.org) 업데이트 내용입니다. 겉보기에는 전혀(...) 별 차이가 없겠지만 내부적으로는 약간의 변화가 있었습니다. 우선 기반 프레임웍으로 사용되는 Django의 버전업에 맞추어 새로 업데이트한 후 호환성 문제들을 수정하였고, 특히 중요한 것은 이제 외국에서 needlworks.org에 접속할 경우 영문으로 소개 내용이 표시되도록 했다는 것입니다. (사실 뜬금없이 i18n 지원을 넣게 된 건 제가 그동안 외국 친구들에게 needlworks 명함을 나눠주면서 홈페이지에 들어왔을 때 영문 지원이 없으면 좀 황당해하겠다 싶어서 그랬다고 말 못합니다..-_-..) 한편 Mac 환경에서 글꼴이 좀더 예쁘게 보이도록 CSS를 일부 변경하였습니다.
이것은 [Django의 i18n 프레임웍](http://www.djangoproject.com/documentation/i18n/)을 이용한 것으로, 제가 추가로 코드를 짠 것은 전혀 없고 단지 설정 파일과 템플릿 파일 및 python 코드 파일에 번역할 문자열을 표시해주고 번역한 데이터를 넣어준 것 뿐입니다. 역시 python을 사랑할수밖에 없군요..=3=3==3
마지막 순간
즐거운 이야기 2008/06/09 04:23이미 몇번째이지만 그 순간의 느낌은 정말 특별하다. [##_1C|1046201239.png|width="555" height="324" alt="1.7"|저 막대기를 끌어 올리기 위해서는 정말... 많은 사람들이 고생을 해야 한다_##] 15분을 남겨두고 드는 이 감정을 삭히려 오늘 새벽에도 한바퀴 산책을 해야 할 듯 하다. 시간이 적어져 글을 쓰는 것도 확연히 줄었지만, 요새처럼 풍부하게 읽고 보고 생각하는 적도 최근에는 그리 없었다. 덧) 1.7의 버전 이름은 Risoluto이다. 항상 그 버전의 기능적 특징이나 목표를 의미한 이름이 붙어 왔지만, 이번만큼은 텍스트큐브를 통하여 제작자들이 세상에 하고 싶은 말을 담았다. 한국의 민주주의에 축복을.






댓글을 달아 주세요
글 잘 읽어습니다..
이젠 무료 계정으로는 텍스트큐브를 사용할 수 있는곳이 없는거 같더군요..ㅜㅜ
유니코드는 지원이 되더라도 php 버전은 4.3을 지원하더군요 ...
우리나라 서버환경이 빨리 바뀌었음 좋했네요..
안 그래도 요 며칠 Sql 서버가 불안정하던데, PHP, MySql 버전도 낮으니 이전해야 하나?