|
허겁지겁 아침을 챙겨먹고 들었던 첫번째 세션은 Adrian Holovaty 의 django 에 대한 세션이었습니다.
Django 를 시작하기 위해서 알아야할 모든것을 아주 간단한 데모들과 예제를 보여주며 쉽게 설명했습니다.
세션시작전에 웹개발자를 몇명인지 그중 PHP 를 쓰는 사람은 몇명이고 Django 를 쓰는 사람은 몇명인지 등을 질문했습니다. 네 예상대로 django 로 웹사이트를 개발하시는 분은 그리 많지 않았습니다. 처음에는 django 라는 프로젝에 대한 개괄적인 설명들이었습니다. Laurence Journal 이야기와 Kansas 이미지는 항상 등장하는 것 같습니다.
django 로 인해 빨라진 웹개발에 대해 이야기 해줍니다. 몇주 안이 아니라 몇일안에 웹 사이트를 개발하는 것이 가능해 진다는 이야기와 함께요. PHP를 쓰지 말라는 이야기와 Python 이야기나 나오네요.
이 이야기를 들으면서 mashupcamp 에 출품했던 django로 개발한 opendaumid.net 의 개발기간을
곰곰히 생각해 봤습니다. 제출기간을 1-2주 앞두고 막판에 밤에 퇴근해서 아이와 놀아주고 주로 새벽시간에만 만들었습니다. 합산해보니 만약 이 일을 회사에서 했다면 하루가 안걸렸을 것 같습니다. 그러면서도 만드는 내내 즐거웠습니다.
View 와 loosely couple 된 URLConf 에대한 소개를 합니다.
"URLs should be pretty". 네 URL 은 정말 이뻐지고 직관적이고 보다 간단해져야 합니다.
코드 어디에도 URL 에 관련된 것은 없습니다. 모두 URLConf 와 view 의 연결만으로 url 이 만들어집니다.
그리고는 django way 와 django 의 Model, View, Template - MVT(?) 모델에 대해서 설명을 합니다.
View 는 실제 사용자에게 보여지는 부분의 비즈니스 로직을 구현합니다. 네 여러분이 생각하는 MVC 모델과는 약간 다릅니다. 그리고 요즘 많이 언급되는 DRY(Do not Repeat Yourself) 원칙을 충실히 따르는 구조로 되어있습니다. 그런점에서 Adrian 은 중복된 코드의 두개의 view 를 generic view 로 바꾸는 예제를 보여 줍니다.
django 의 template system 은 말 그대로 template 의 기능에 충실합니다. 즉 완전히 presentation 만을 위해 만들어졌습니다. 저도 처음에 익숙하지 않아서 저도 모르게 template 에 열심히 비즈니스 로직을 넣으려고 하곤 했습니다. 그때마다 왜 이런 간단한것도 django 의 template 는 지원하지 않을까 생각하다가 급히 깨닫고는 view 에 간단히 한두줄을 추가하여 문제를 해결하곤 했었습니다.
그리고 Python template 시스템의 훌륭한 기능중의 하나인 template inheritence 를 설명합니다.
include 만 있으면 되지 않을까 라고 생각하시는 분들은 한번 써보시면 다시는 빠져나오지 못하게 될겁니다. :D
그리고 요즘 유행하는 ORM 방식의 Django Model 에 대해서 설명합니다.
django 는 모델의 필드네임에 어떤 가정도 하지 않습니다. 슬라이드에 적혀있는 대로 흑마법 같은것 쓰지 않습니다. 그리고 실행시간에 database 를 introspection 하지도 않습니다. 그리고 훌륭하고 직관적인 datababase API 가 있습니다.
그리고 이제 Django admin page 에 대해서 이야기를 합니다. Python 에 배터리가 포함되어 있는 것처럼 django 에는 admin page 가 있습니다.
(phpMyAdmin 같다구요? 세상에 -_-;;  이렇게 바로바로 중간에 코드를 수정해가면서 바로바로 보여줍니다. 물론 서슴없이 python interpreter 를 띄워서 보여주기도 하구요.
그리고는 이번에 contrib 모듈로 새로 추가될 예정인 databrowse 에 대해서 보여주었습니다.
캠으로 녹화하지 않은 것이 한이 될만큼 훌륭한 django 입문 프레젠테이션 이었습니다.
Pythonist 들이 많이 사용하는 말중에 "Pythonic" 이 라는 말이 있습니다. Django 를 한마디로 설명하자면 Pythonic 하다고 할 수 있습니다. 대체 Pythonic 이 뭐란 말인가? 궁굼하신 분들은 다음의 두가지 중에 하나를 해보시면 됩니다.
오늘 django 를 만나보세요.
|