Django Webframework

차가운 이야기 2007/09/30 21:44 by daybreaker

거의 한 달 가까이 이 블로그가 죽어있었습니다. 다시 시작하는 첫 타를 끊어봅니다. :)

제가 요즘 주로 쓰는 언어는 PHP가 아니라 Python입니다. 텍스트큐브 자체는 PHP로 만들어져 있지만 블로그가 아닌 좀더 일반적인 웹사이트를 만들 경우엔 그보다 자유도가 높은 CMS를 쓴다거나 자체 사이트 구축을 해야 하지요.

Needlworks 홈페이지Textcube 홈페이지를 만들면서 어떤 프로그래밍 언어와 어떤 툴(프레임웍 혹은 라이브러리)을 쓰는 것이 좋을까 생각하다가 Django[footnote]보통 "장고"라고 읽습니다.[/footnote]를 생각했습니다.

Django를 처음 알게 된 것은 작년 겨울에 동아리에서 한 후배(지금은 구글에서 인턴 중이지요.)가 세미나 형태로 15분만에 블로그 만들기-_-를 하면서부터였습니다. 제가 Python을 쓰기 시작한 것은 작년 초였고, Django를 접하기 전까지는 쉘스크립트 대용으로 쓰는 게 거의 전부였죠. (어떤 디렉토리 안에서 모든 하위 디렉토리와 파일을 돌며 인코딩 변환을 한다든가 하는 종류의 스크립트를 짤 때 썼습니다.)

Django를 보고 Python의 매력에 흠뻑 젖어들게 되었습니다. 아주 깔끔한 Object Relational Mapping, 자체적인 Template 시스템과 유연한 문법 체계, Python의 깔끔한 module namespace의 활용, lambda (anonymous function) 문법을 활용한 연산자와 오브젝트의 동적 생성, 그리고 Python이 제공하는 수많은 라이브러리를 자유자재로 활용할 수 있다는 점, Django에서 제공하는 방법이 아닌 다른 방법으로도 구현할 수 있게 자유도가 높고 중간중간 customizing을 위해 끼어들 여지를 많이 남겨둔 점 등이 마음에 들었지요.

사실 이 대부분은 Ruby와 Ruby on Rails에도 있는 특징들이긴 합니다만, Python에 이미 익숙해지기 시작한 터라 Django를 써보기로 했죠. Django가 다른 웹프레임웍에 비해 가지는 장점이라면 자체적인 Cache framework이 마련되어 있어 성능이 월등하다는 것 정도입니다.(...마는 아직 니들웍스나 텍스트큐브 홈페이지 자체가 별로 규모가 크지 않은지라 얼마나 좋은지는 잘 모르겠습니다..-_-) 아, 하나 더 좋은 점이라면 관리자 모드를 아주 깔끔하게 자동으로 만들어주기 때문에 웹개발시 가장 귀찮은 부분인 테스트 데이터 생성이 간편하다는 점도 있군요.

아직 Django가 국내에는 그다지 잘 알려지지 않은 프레임웍이라서, 제가 알기로는 국내 커뮤니티 같은 것이 전무합니다. 구글링해보면 몇몇 블로그에서 부분적으로 소개하거나 몇몇 컨퍼런스에서 이런 것이 있다 하고 소개된 정도지요. Django가 국내에 알려지게 된 결정적인 계기는 바로 The Django Book의 등장입니다. Django 그 자체보다도 출판될 책의 내용을 온라인에 미리 공개하고 문단별로 코멘트를 달 수 있도록 한 UI 덕분에 유명해졌지요.

Django 프로젝트 위키를 보면 꽤 많은 상용 사이트들이 이 프레임웍을 사용하고 있음을 알 수 있습니다. 하지만 제가 직접 써본 결과, 0.96 stable release 버전은 기능이 좀 부족하고 subversion 개발 버전은 개발 버전 치고는 상당히 안정적이기는 하나 드물게 이상한 버그가 발생하기도 합니다. (다행히 제가 만든 니들웍스/텍스트큐브 홈페이지는 아주 복잡한 기능을 쓰지는 않아서인지 별 문제 없습니다.) 텍스트큐브 홈페이지를 만들다보니 매뉴얼이 비교적 잘 나온 프레임웍임에도 결국 내부 소스를 들여다보지 않을 수 없더군요.; 약간의 삽질과 더불어 결국 몇몇 티켓을 올리거나 제가 관여한 패치가 반영되기도 했습니다. (제가 텍스트큐브 개발자인지 Django 개발자인지.... -_-)

현재 제가 있는 SPARCS 동아리에서는 CakePHP 및 JSP를 사용하려는 움직임과, Django 혹은 RoR을 사용하려는 움직임이 있습니다. 사람들이 취향이 다양해서 그런지 여러가지로 갈리고 있지만, 분명한 건 웹프레임웍의 필요성을 다들 절감하고 있다는 사실입니다. 동아리에서 운영하는 Ara 게시판수강지식인 LKIN[footnote]학교 외부에서는 접속이나 사용에 일부 제한이 있을 수 있습니다.[/footnote]의 소스코드를 보고 경악하지 않은 사람이 별로 없었지요. (....) 어찌어찌해서 돌아는 가고 있지만 소스코드는 완전 스파게티.. (....) 그래서 동아리 사람들 중에는 웹개발에 대해 부정적인(?) 이미지를 가진 사람들도 있었습니다.

웹개발이 과거처럼 단순 노가다 코딩이 되지 않기 위해서 웹프레임웍 도입이 절실합니다. 다만 웹프레임웍의 단점이라면 해당 프레임웍을 사용한 프로그램을 배포할 때 그 프레임웍이 같이 포함되든지 별도로 서버에 설치되어 있어야 한다는 것입니다. 그래서 일반 웹호스팅에서 사용하기는 어렵죠. (사실 과거에 태터툴즈를 Python으로 만들자는 의견이 나왔으나 성사되지 못한 것도 같은 맥락입니다. Python을 지원하는 곳이 많지 않고, 있더라도 Python에 MySQLDb나 sqlite adapter 같은 부가 패키지들이 같이 깔려있어야 하기 때문입니다.)

현재 텍스트큐브 2.0에서는 DB 백엔드를 싹 갈아치우려는 계획을 가지고 있습니다. (...다만 언제 될지가...OTL) Django처럼 자체적인 Object-relational mapper를 구현하고 이를 통해 lazy evaluation을 사용함으로써 SQL 쿼리 수를 줄이고 caching을 용이하게 할 생각입니다. PHP의 언어적인 제약이 얼마나 영향을 줄지는 아직 잘 모르겠네요. 하지만 일단 완료되기만 하면 MySQL 4.0 이전, MySQL 4.1/5.0 이상을 별도로 지원하여 성능을 크게 끌어올리고 DB 구조를 보다 고도화시킬 수 있으리라 생각합니다. 더 나아가서는 Oracle이나 MS-SQL 등에 대한 대비도 가능해지겠지요.

자아- 화이팅입니다 ㅠ_ㅠ;

필자
author image
Daybreaker(아침놀)입니다. 현재 KAIST 전산학과에 재학 중이며 전산 외에도 물리, 음악, 건축 등에 관심이 많습니다. Needlworks 내에서는 각종 홈페이지 제작 및 서버 관리 등과 함께 Textcube 개발에 참여하고 있습니다.

홈페이지 : http://daybreaker.info

2007/09/30 21:44 2007/09/30 21:44

텍스트큐브2와 사파리와 카이스트

즐거운 이야기 2007/09/02 04:20 by inureyes

연구 관련 summer school도 있고, 텍스트큐브 2에 대한 논의도 해야 하고 해서 겸사겸사 카이스트를 방문했습니다. 대전에 계시는 아침놀님, 로니냐님, lifthrasiir님과 만나서 잘먹고 잘 떠들었습니다.

이틀 일정에 중간을 밤샘해 버려서 둘쨋날이 매우 힘들었지만, 텍스트큐브 2의 유저 인터페이스나 기술적인 난제등에 대해서 굉장히 머리 아픈 이야기를 많이 할 수 있었던 시간이었습니다. 오랫동안 머릿속에서 잠자고 공책에 끄적여 놓았던 청사진도 꺼내서 함께 그릴 수 있었지요.

덤으로 그날 밤을 새며 새 텍스트큐브 메인 사이트와 텍스트큐브 1.5 위지윅 에디터의 사파리 3 대응이 있었습니다.

그날밤 장면

중간에 저는 대략 혼미. 카이스트 전산실은 우리 학교 전산실과 또 느낌이 매우 다르더군요.


둘쨋날에는 서울로 올라가 서울팀과 논의를 하려고도 했는데, 그라피티에님께 너무 가혹해 보여서 미팅 일정을 그냥 접었다는 후일담이 있습니다.

덧) 더 슬픈 후일담으로는 고필님은 일정 취소 모르고 병원 갈 일에 겸사겸사 고향 방문차 가셨던 (전라도) 광주에서 서울로 그 날 올라 오셨다죠... 원래 세상은 이렇게 아름답게 돌아가는 것인가 봅니다.

필자
author image
inureyes 입니다. 하고 싶은 일과 해야 할 일의 균형 맞추기를 하며 즐겁게 살고 있습니다. N/W에서는 구성을, TC에서는 교리 전파? 및 사회자?를 맡고 있습니다. 오전과 오후에는 물리학을, 저녁 시간에는 코딩을 하며 삽니다.
http://forest.nubimaru.com

2007/09/02 04:20 2007/09/02 04:20

시간에 묻히다

분류없음 2007/08/29 22:55 by LonnieNa

1.
별다른 하는일 없이 멍 하니 있어도 시간은 가버리더라구요.
시간이 참 빠르다라는걸 또 한번 새삼스레 느낍니다.
아침일찍 출근해 밤 10시가 다 되어 퇴근하는 바쁜 일상 속에서 하루하루를 신경쓴다 쓴다 하지만서도 어떻게 지나가버린지도 모르게 바람이 스쳐가듯 지나가 버렸습니다.
모든걸 다 이뤄낼 수도 있었고, 아무리 애써도 이루지 못했던 시간도 있었습니다.
번개불에 콩 튀겨먹듯 매 순간에 긴장하여 애쓰면 되겠지요.
늘 처음처럼..

2.
그동안 맘 아팠던 일도 잊었고, 그 슬퍼던 일도 지워버렸습니다.
아물어도 상처는 남듯 흔적까지 지울 순 없더라구요.
모든건 시간이 해결해 준다는 말,
나는 시간에 묻힙니다. 
ㅉ.ㄹ.ㅇ.

사용자 삽입 이미지

필자
author image
LonnieNa 입니다. Needlworks에서 Painter에 있습니다.
http://blog.2pink.net
Painter로,
여러분과 나의 세상을 바라보는 시선을 달리합니다.

2007/08/29 22:55 2007/08/29 22:55