Django의 특징
Django를 사용하면서 Django를 왜 쓰는가? Djanog는 어떤 특징이 있는가란 궁금증을 가진 적이 없었다. 생각해보면 왜 쓰는가에 대한 이유를 알아야지 적합한 웹 프레임워크들을 사용할 수 있는데... 그런 반성의 의미에서 Django는 어떤 웹프레임워크인지 알고자 한다.
1. Django의 특징
1.1. MTV 구조
1.1.1. View
urlpattern에 알맞은 호출이 들어오면 요청은 view로 들어오게 된다. view는 웹 클라이언트로부터 HTTP요청을 수신하고 HTTP 응답을 되돌려준다. 이곳에서 DB에 접근하고(ORM을 통한 데이터 쿼리) Template을 렌더링 하기 위해 자원들을 활용한다.
1.1.2. Model
Model에서는 파이썬 객체를 통해 데이터를 관리하고 쿼리한다. Django에서는 ORM을 제공하는데 테이블들을 Class 형태로 데이터의 구조를 정의한다. 일반적으로 모델은 테이블에 매핑된다.
1.1.3. Template
Template은 파일의 구조나 레이아웃을 정의하고, Template을 통해 데이터를 로드하고 랜더링 한다. 또한 DTL(Django Template Language)을 통해 HTML 페이지를 편하게 랜더링 할 수 있다.
1.2 다양한 기능들을 제공
Django는 다양한 기능들을 제공한다. 그 중에서 강력한 Admin 기능과 보안 기능, Debug 기능을 살펴보자
1.2.1. Admin 페이지
Django에서는 개발에 거의 시간을 들이지 않아도 되는 관리자 페이지를 제공한다. 그리고 이 Admin 화면은 Customize가 가능하다.
1.2.2. 보안
Django는 제법 다양한 공격을 방지할 수 있는 방법을 이미 구현해 놨다. XSS나 CSRF, SQL 인젝션 방지 등의 기능을 구현해 놨다. 자세한 사항은 여기를 참고
Django에서는 개발환경에서 Debug Toolbar나 Django Extensions Debugger를 통해 다양한 디버그 기능을 제공하고 있다.
Django에서는 App을 패키징하여 여러 프로젝트에서 사용할 수 있게 할 수 있다. 이는 Python의 핵심 가치와도 맞닿아 있다. 앱을 재사용하는 방법 등은 아래의 사이트를 참고하자
- https://docs.djangoproject.com/ko/4.1/intro/reusable-apps/https://imdona.tistory.com/m/42
- https://imdona.tistory.com/m/42
2. Django의 단점
- Django의 ORM은 양날의 칼이다. 최적화를 신경쓰지 않으면 성능 이슈가 발생할 수 있다.(이건 SQL도 마찬가지이긴 하다.)
- 실시간 서비스(스트리밍, 채팅)등에는 맞지 않을 수 있다.
- 개발 규모에 따라서는 Flask가 나은 선택일 수 있다.
참고
1. https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Introduction
Django 소개 - Web 개발 학습하기 | MDN
Django의 첫번째 문서에서는 "Django가 뭐지?"라는 질문에 답해보고, Django 웹 프레임워크의 특별한 부분에 대해 전반적으로 살펴봅니다. 우리가 이 수업에서 자세히 다루지는 않을 고급 기능들까지
developer.mozilla.org
2. https://docs.djangoproject.com/en/4.1/
Django
The web framework for perfectionists with deadlines.
docs.djangoproject.com
3. https://blog.lxf.kr/2018-11-19---why-or-not-django/
Django를 쓰는 이유, 쓰지 않는 이유
2018/11/19 Django를 쓰는 이유, 쓰지 않는 이유 Django를 쓰지 않는 이유 1. 정적인 사이트 Django는 동적 사이트를 위한 프레임워크 입니다. 동적 웹사이트는 구동을 위해 웹 어플리케이션 서버, 데이터
blog.lxf.kr
언제 Django를, 언제 Flask를 사용해야 할까? | 블로그 | 딩그르르
언제 Django를, 언제 Flask를 사용해야 할까?
dingrr.com