About Django Framework
부제목은????
카테고리 : Django Hashtag : #태그!!
Framework vs Library
Framework
- 소프트웨어 개발을 위한 기능, 구조의 틀을 제공
- 시스템 흐름을 프레임워크가 제어
- 장점
- 효율적 : 이미 구현되어 있는 코드로 시간과 비용을 절약.
- 품질 향상 : 수많은 개발자들이 검증한 코드로 버그 최소화.
- 유지보수 용이 : 체계적인 코드관리/ 수월한 협업 가능.
(다른 사람이 봐도 구조를 알면 쉽게 보인다. )
- 단점
- 프로그래밍 언어 외 별도 학습이 필요.
- 기본 설계된 구조로 개발이 다소 제한적.
(현재는 이러한 경우가 거의 없다고 볼 수 있다.)
Library
- 소프트웨어 개발을 위한 기능을 제공
- 시스템 흐름을 개발자가 제어
About Django
장고의 특징
- python 웹 프레임워크
- MTV 디자인 패턴
- 오픈소스
- 앱 (App)단위로 프로젝트 구성 ##### 장고앱(App)이란?
- 프로제트를 구성하는 모듈, 부품을 의미.
- 장고 프로젝트 관점에서 관련된 긴으을 모아둔 파이썬 파일.
- 앱 이름은 영문 복수형으로 생성 (ex. 사용자 앱, 블로그 앱, 인증 앱,,, 등)
장고 핵심 요소
#### python #### ORM
- Object-Relational Mapping
- 객체지향 언어와 관계형 데이터베이스를 연결해주는 기술.
- Model, QuerySet API 등이 ORM에 포함.
#### Templates
- 자체 템플릿 시스템으로 디자인과 로직을 분리하여 독립적으로 개발 가능.
- HTML 파일을 분리하여 재사용, 체계적으로 관리할 수 있음.
- HTML 파일에 include, if, for 등 템플릿 언어를 사용가능.
#### Forms
- 데이터의 유효성 검사
- 구성하고자 하는 형태 랜더링(HTML태그 생성)
- 제출하는 폼 데이터의 변경 확인
#### Authentication
- 시스템 인증과 권한 부여 기본 제공.
- 인증 : 사용자가 누구인지 판별.
- 권한 : 인증된 사용자가 어떤 일을 할 수 있는지 결정.
- 구성요소 : 사용자, 권한, 그룹(권한을 둘 이상 적용하는 방법)
#### Admin
- 관리자 인터페이스 제공
- 등록된 모델의 기본적인 조회, 추가, 수정, 삭제 기능 제공.
- 사용자 관리, 사용자 그룹 관리, 사용자 별 권한 기본 제공.
#### Internationalization
- 동일한 소스코드로 텍스트의 번역, 날짜/시간/숫자의 포맷, 타임존의 지정 등 같은 다국어 환경 제공.
- 개발자와 템플릿 작성자는 언어 및 문화에 맞게 번역하거나 형식 지정 가능.
- 특정 사용자의 기본 설정에 따라 웹 앱을 현지화함.
#### Security
- CSRF(교차 사이트 요청 위조) 보호
- SQL 주입 보호
- XSS(교차 사이트 스크립팅) 보호
- 클릭재킹 방지
- SSL/HTTPS
- 호스트 헤더 유효성 검사
- 리퍼러 정책
- 교차 출처 정책
- 세션 보안
Django 기본구조
MTV 디자인 패턴 - 1
| 구분 | 역할 | 파일|
Model * 데이터 관리
* 데이터베이스와 연결 및 실행models.py Template * 데이터 출력
* 사용자에게 표현 방식 정의html View * 컨트롤러
* 비지니스 로직을 처리views.py