Django로 용역개발 :: 2007/09/09 08:21

최근 가축유전자원종합관리시스템 용역개발을 한참 하는 중이다. 회사업무가 이것만이라면 좋겠지만서도 이것 저것 하는 가운데에서도 따로 진행하는 것이라, 고전중이다. 게다가 개발은 거의 나 혼자... (f..님 미워 ㅡ.ㅡ;)

관련 공무원분들의 Python은 뭐고, Django는 또 뭐냐, 처음 들어봤다 왜 Java로 안하느냐, Oracle대신 왜 MySQL을 쓰느냐 등등의 이야기에 나름대로 장점들을 설파하여, 결국은 Django,Oracle로 개발하기로 하고 진행중이다. Oracle 연동부분은 나 역시 안해봤던 부분이라 다소 걱정이 되긴 하다.

Django를 쓰면 웹어플리케이션 개발이 훨씬 쉽다. 아니, 쉬워야 하는데... 중간중간에 여기저기서 막히다 보니, 그렇게 많은 시간적 이점이 없는게 아닌가 하는 의구심이 들기도 한다. 정말 빠른 것인가?

대표적인 사용상의 불편은 newforms이다. 이게 테이블 하나 딱하니 폼으로 만들고 쓰기엔 더할 나위없이 좋으나, 대부분의 실무가 테이블하나만 관련된 폼은 별로 없기 마련이고, 그러다보니, 내 입맛에 맞도록 바꿔가며 써야하는데, 이리저리 불편함들이 계속 보이고, 사용방법의 이해에 시간소비를 많이 하고 있다.

얼마전엔 newforms.form_for_model을 subclassing mixin해봤는데 생각처럼 잘 안되서 찾아봤더니, #3815로 보고만 되고 아직 처리되고 있지는 않은 상황이더라.

어떤문제냐면,
from django import newforms as forms
IndividualForm = forms.form_for_model(Individual)
CattleForm = forms.form_for_model(Cattle)
class CattleIndividualForm(IndividualForm, CattleForm):
    pass
했을 때, CattleForm의 필드들이 출력되지 않는다는 것. #5050에 첨부된 patch를 적용하면 되긴하지만, 아직 svn에 들어가진 않은 상태다. (이런 경우는 정말 난감하다. 현재 svn revision에 맞춰 개발하느냐, 아님, Django 소스를 고쳐서 작업해야하느냐...)

최근의 고속웹프레임워크들의 특징이랄까. 간단한 비즈니스로직이야 (테이블 서너개짜리) 한두줄 코드로 정말 쉽게 만들 수 있지만, 복잡한 실무의 세상에선 새로 다 만들어야 한다. newforms 의 as_table 출력을 보자니, 아무래도 조만간 새로 다시 다 만들어야겠다.  (그러고보면, Django의 version 1 release는 왜 아직도 소식이 없는거야.)

대신, 이번 개발을 통해, 보다 더 Django를 이해하게 된 점은 충분한 장점이다. Django의 I18n 지원은 정말이지 환상이였다. 이렇게 쉽게 국제화 프로그램을 만들수 있다니!... 제2, 제3의 외국어들을 더 배워서, 반영하고 싶은 욕구가 막 든다. 으흐.

이번 개발은 TestCase들도 충분히 만들면서 대다수의 상황에서도 올바른 동작을 보장하려고 매우 노력하고 있다. 프로젝트가 완성되면 제대로 널리 알리고 싶은 욕심도 있다. 그러자면, 지금 최선을 다해서...

Trackback Address :: http://yong27.biohackers.net/trackback/288
Name
Password
Homepage
Secret