- 마감시간이 있는 완벽주의자를 위한 웹 프레임워크다 -> 개발을 빠르고 완성도 높게 할 수 있도록 해준다
- Python 웹프레임워크다
- MTV 디자인 패턴을 사용한다
- 오픈소스 이다
- 앱(app) 단위로 프로젝트가 구성된다
-> 앱(app) : Django 프로젝트를 구성하는 모듈을 의미한다, 장고 프로젝트 관점에서 관련된 기능을 모아둔 파이썬 파일이다, 앱 이름은 영문 복수형으로 생성한다
- 개발 속도가 빠르다
- 기본적으로 필요한 기능을 제공해준다 (ORM,Admin,Templates 등)
- 인증, 보안 부분들도 고려된다
- 풀스택 프레임워크다
1) Python
2) ORM
3) Templates
4) Forms
5) Authentication
6) Admin
7) Internationalization
8) Security
ORM : Object-Relational Mapping
-> 객체지향 언어와 관계형 DB를 연결해주는 기술이다, Models, QuerySet API 등이 ORM에 포함된다
자체 템플릿 시스템으로 디자인과 로직을 분리해 독립적 개발이 가능하다, HTML파일을 분리해 재사용하고 체계적으로 관리할 수 있다
-> HTML 파일에 include, if,for 등 템플릿 언어를 사용할 수 있다
데이터의 유효성 검사를 한다, 구성하고자 하는 형태 렌더링(HTML 태그생성), 제출하는 폼 데이터의 변경을 확인한다
시스템 인증과 권한부여 기본 제공 한다 , 구성요소 : 사용자, 권한, 그룹(권한을 둘 이상 적용하는 방법)
- 인증과 권한의 차이
- 인증 : 사용자가 누구인지 판별한다
- 권한 : 인증된 사용자가 어떤 일을 할 수 있는지 결정한다
관리자 인터페이스를 제공한다, 등록된 모델의 기본적인 CRUD 기능을 제공한다, 사용자 관리 / 사용자 그룹 관리 / 사용자 별 권한 을 제공한다
- 동일한 소스코드로 텍스트의 번역, 날짜, 시간, 숫자의 포맷, 타임존의 지정 등 다국어 환경을 제공한다
- 개발자와 템플릿 작성자는 언어 및 문화에 맞게 번역하거나 형식을 지정할 수 있다
- 특정 사용자의 기본 설정에 따라 웹 앱을 현지화할 수 있다
- CSRF(교차 사이트 요청 위조) 보호
- SQL 주입 보호
- XSS(교차 사이트 스크립팅) 보호
- 클릭재킹 방지
- SSL/HTTPS
- 호스트 헤더 유효성 검사
- 리퍼러 정책
- 교차 출처 정책
- 세션 보안
기능을 제공한다
- Model : 데이터관리, DB와 연결 및 실행 -> models.py 파일
- Template : 데이터 출력, 사용자에게 표현 방식 정의 -> html 파일
- View : 컨트롤러, 비즈니스 로직 처리 -> views.py 파일
=> 클라이언트 요청 -> View 가 받아 Model(데이터 관리) / Template(데이터 출력 역할) 에 요청하여 받은 내용을 응답한다