ORM
객체와 관계형 데이터베이스를 매핑해준다.
객체지향에서 조금 더 수월하게 사용할 수 있게 해주는 기술
Django 자체에 ORM이 내재되어 있다.
Models, QuerySet API 등이 ORM에 포함된다.
flask는 내장된 ORM이 없기 때문에 python orm을 사용한다.
ORM을 사용하지 않고 기술 개발을 진행할 수 있는데 DB관련해서 직접 다루어 주어야 한다.
따라서 ORM을 익혀서 적용해주면 개발업무를 할 때 비즈니스 로직에 더 신경을 쓸 수 가있다.
배달의민족 트래픽이 엄청 많기 때문에 JPA ORM으로 관리 하고 있다고 한다.
Templates
자체 템플릿 시스템으로 디자인과 로직을 분리하여 독립적으로 개발할 수 있다.
HTML 파일을 분리하여 재사용, 체계적으로 관리할 수 있다.
HTML 파일에 include, if, for 등 템플릿 언어를 사용할 수 있다.
HTML 파일은 유효기간이 짧다. 반복적인 코드도 많이 나타나는 것이 특징이다.
이런 점을 감안하여 HTML 파일을 import하여 유용하게 사용할 수가 있다.
데이터의 유효성 검사
백엔드 개발을 할 때 유효성 검사가 되게 중요한데 장고가 이런 기능을 제공해준다.
사용자로부터 핸드폰번호를 받을 때 '-'를 빼고 숫자를 받을 때 해당 field가 11자리 숫자로 입력을 받을 때
사용자로부터 받은 데이터가 유효한지 검사를 해주는 항목이다.
구성하고자 하는 형태 렌더링(HTML 태그 생성)
장고의 form 기능을 사용
제출하는 폼 데이터의 변경 확인
Authentication
시스템 인증과 권한부여 기본제공
인증과 권한의 차이
인증: 사용자가 누구인지 판별
권한: 인증된 사용자가 어떤 일을 할 수 있는지 결정
구성요소: 사용자, 권한, 그룹(권한을 둘 이상 적용하는 방법)
Admin
관리자 인터페이스 제공
유투브에 약관을 벗어나는 영상이 업로드 될 경우 이를 제제해야 한다. 서비스 출시 시 사용자 사이트와 관리자 사이트
가 필요하게 된다는 의미이다.
등록된 모델의 기본적인 조회, 추가, 수정, 삭제 기능 제공
사용자 관리, 사용자 그룹 관리, 사용자 별 권한 기본 제공
Internationalization
동일한 소스코드로 텍스트의 번역, 날짜/시간/숫자의 포맷, 타임존의 지정 등과 같은 다국어 환경 제공
개발자와 템플릿 작성자는 언어 및 문화에 맞게 번역하거나 형식 지정 가능
특정 사용자의 기본 설정에 따라 웹 앱을 현지화화 할 수 있다.
만드는 서비스를 미국에서 현지화 한다고 했을 때 Django에서 설정을 해줄 시 크롬을 통해 보는 사이트가
영어로 나타날 수 있다. 다른 국가들도 적용 가능하다.
Security
CSRF(교차 사이트 요청 위조) 보호
서버가 응답하지 않는 페이지에 대해서 막는다.
SQL 주입 보호
입력하는 부분에 대해서 SQL 문이 들어 올 경우 Django가 대응을 해주는 부분
XSS(교차 사이트 스크립팅) 보호
클릭재킹 방지
SSL/HTTPS
호스트 헤더 유효성 검사
리퍼러 정책
교차 출처 정책
세션 보안