March 2008 Archives

안녕하세요. VLAAH 개발자 홍민희입니다. 오늘은 VLAAH의 개발 플랫폼에 대해서 이야기하고자 합니다. 아마 개발자 분들에게만 재미있는 주제일텐데요. ㅋ

VLAAH 프로토타입은 Python으로 TurboGears 프레임워크를 이용해서 만들었습니다. DBMS로는 MySQL을 사용했고요. 하지만 몇가지 문제가 있어서 모두 날려먹게 되었습니다; 첫번째는 TurboGears의 로드맵을 보니 하위호환성을 별로 고려하지 않는다는 점이었고, 두번째는 프로토타입 개발 시에는 둘이었던 멤버(shinvee 님과 저)가 넷으로 불면서 Python을 학습하는 비용이 부담되었기 때문입니다. (사실 저는 Python 팬입니다. 무척 좋아해요.)

현재 보고 계시는 버전은 첫번째 프로토타입을 날리고 나서 새로 작성된 것입니다. 이 때는, 몇몇 분들은 의아하실 수 있겠지만, PHP로 작성되었습니다. 사실 Python에 비교하면 PHP는 썩 우아한 언어는 아니죠. 대신 제가 시작했고 흥섭 군이 참여하고 있는 Phunctional로 부족한 부분을 매꾸고 있습니다(흥섭 군은 제 후배로, 역시 야간개발팀 멤버입니다). Phunctional은 웹 프레임워크는 아니고, PHP에서 함수형 프로그래밍(functional programming)을 흉내내기 위한 눈물겨운 노력이 담긴 프레임워크입니다. PHP에는 원래 없는 람다 함수, 클로져 등을 지원하기 위해 갖가지 삽질을 한 결과이지요. 또 코드 중복을 제거하고 테스트 가능성(testability)을 높이기 위해 자체적으로 간단한 웹 프레임워크를 Phunctional 위에 얹어 만들어서 쓰고 있습니다. 언젠가 이 웹 프레임워크를 공개할 수 있을지 모르겠네요.

아, DBMS로는 PostgreSQL을 사용하고 있습니다. MySQL과 다르게 ORDBMS입니다. 테이블 상속(table inheritance)을 지원한다던가, 컬럼 타입으로 배열(array)이 가능하고, 사용자 정의 타입(composite type)을 만들거나, 연산자 재정의(operator overloading) 등이 가능합니다. 그 외에도 여러가지 재미있는 기능들이 많은 안전성 높은 오픈소스 DBMS입니다. PostgreSQL로 설계할 경우 디자인 방향 자체가 꽤나 달라집니다. 좀더 깔끔하게 디자인할 수 있습니다. 다른 분들께도 추천하고 싶네요. MySQL보다 훨씬 낫다고 생각합니다.

VLAAH에서는 PHP 코드에서 질의 문자열을 일일히 만들어서 쓰지 않기 위해, PostgreSQL 전용 ORM 프레임워크도 직접 작성해서 사용하고 있습니다. 이 ORM 프레임워크는 별도의 프로젝트로 진행중인데, 이름은 Phostgres라고 합니다. 개인적으로는 symfony 등에서 쓰이는 Propel이나 Active Record 패턴의 어설픈 PHP 구현들 등, 기존 PHP에서 구현된 각종 다양한 ORM 프레임워크를 찾아봤지만 사실 마음에 드는 것이 전혀 없었습니다. Python이나 Ruby 등 다른 언어에서는 SQLObject, SQLAlchemy, RoRActiveRecord 등 걸출한 ORM 프레임워크가 많은데 PHP에는 찾을 수 없었죠. 게다가 PostgreSQL은 다른 DBMS와 공유하지 못하는 특징들이 많기 때문에 DBMS 중립적인 ORM 프레임워크를 쓴다는 것은 PostgreSQL의 장점들을 놓치는 결과가 됩니다. 그래서 PostgreSQL의 특징을 적극적으로 사용하는 전용 PHP ORM 프레임워크를 직접 만들기로 결정한 것입니다. 아마 Phostgres는 조만간 공개할 수 있을 것 같습니다.

생각해보니 VLAAH를 만들기 위해서 쓸데없는 수고를 더 많이 한 것 같기도 합니다. 배보다 배꼽이 더 컸던 것 같기도 하고요. 하지만 좋은 프레임워크는 좋은 서비스와 함께 만들어진다고 생각합니다. 앞으로도 VLAAH 개발을 진행하면서 부수적으로 산출되는 서브 프로젝트 결과물들을 종종 공개할 예정이니 야간개발팀을 응원해주세요.

오랜만에 글을 쓰네요. 팀원 모두가 바쁘다보니.. Qrz 오늘은 VLAAH 개발팀인 Lunant 팀의 개발 시간에 대해 이야기를 해볼게요.

저희는 3일 작업주당 10시간 정도로 개발을 하고 있어요. 사실 취미개발이다보니 딱 정해진건 아니고, 전체적인 작업량을 따지면 이정도가 되죠. 사실 첫 클로즈 후반 작업때는 좀 더 많이 하였어요. 최대 주당 20시간정도 한 것 같네요.

작업은 온라인 작업과 오프라인 작업이 반반 정도 비율이 되는데요. 주당 1번에서 2번 정도 만나서 정기 작업을 합니다. 항상 모여서 하지 않는 이유는 두가지인데요. 혼자서 몰입을 해서 작업을 하는 것이 좋은 부분이 있는 것과, 다들 각자의 본 직업이 따로 있다 보니 시간이 항상 들어맞는게 아니라는 것 때문이에요. 사실, 현재 작업실이 원활한 환경이 아니라 몰입하기 좋지 못하거든요.. 흑..

최근에는 업데이트되는 것이 많지 않은데, 한명을 제외한 모든 팀원이 복학, 혹은 입학을 하여 대학 생활에 적응중이라.. 작업이 더디어지고 있는 가장 큰 이유가 되고 있답니다. ㅠ ㅠ.. 하지만 주당 1번 이상의 모임을 꾸준히 가지고 있고, 작업또한 순조롭게 진행되고 있기 때문에, 멀지 않은 시간 내로 업데이트된 서비스를 만나실 수 있으실 거에요. :)

About this Archive

This page is an archive of entries from March 2008 listed from newest to oldest.

February 2008 is the previous archive.

May 2008 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

Powered by Movable Type 4.1