About Django Framework

부제목은????



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


장고 MTV 디자인 패턴- 2


장고 실행 흐름


© 2021. All rights reserved.

----------Heesoo's Tech History----------

by C.H.S