Django
- 파이썬으로 작성된 web 어플리케이션 프레임워크.
- Web은 특성상, 성능 최적화보다는 다양한 클라이언트에 대한 Compatibility(호환성)에 더 포커싱되어있다. 사용상의 속도이슈 이전에, 사용 가능성 자체의 문제이기 때문이다.
- Web 프레임워크들은 추상화를 통해 웹개발을 더 쉽게 만들고, 성능보다는 클라이언트 호환성에 포커싱되어있다.
- Django는 SQL을 몰라도 ORM을 통해 Table을 만들고 데이터 SELECT/INSERT/DELETE까지 할수있다.
- 더 나아가서, 이것은 웹앱 아키텍처를 몰라도 웹앱을 개발할수있게 해주었고, 부정적으로 말하면 프레임워크의 의존성이 너무 커졌다.
MTV 패턴
- MTV는 Model, Template, View.
- Model은 db table 생성 및 데이터 처리(CRUD)에 사용된다. Model class가 db table이고 instance가 데이터(db row)이다. table 생성은 migrate를 통해서 이뤄지고, CRUD는 queryset..
- Template은 presentation logic을 담당하여 HTML 뼈대(skeleton)를 만드는데에 사용된다. rendering(=data binding)은 view에 의해 이뤄진다. 여담으로 Flask는 jinja2 Template engine을 사용하는데 Django는 자체 템플릿 엔진이 있다.
- View는 request를 receive하고 적절히 처리하여 response를 send한다. 적절한 처리라는 것은, 특정 template에 model로부터 읽어온 data를 binding(rendering)하는 것이다. View의 역할은 request를 처리하는 것이다. Template, model과 상호작용하여 HTML은 generate하고 response하는 것.