Django 핵심 요소

서재환·2022년 3월 23일
0

Django

목록 보기
1/40

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하여 유용하게 사용할 수가 있다.

Forms

데이터의 유효성 검사
백엔드 개발을 할 때 유효성 검사가 되게 중요한데 장고가 이런 기능을 제공해준다.
사용자로부터 핸드폰번호를 받을 때 '-'를 빼고 숫자를 받을 때 해당 field가 11자리 숫자로 입력을 받을 때
사용자로부터 받은 데이터가 유효한지 검사를 해주는 항목이다.

구성하고자 하는 형태 렌더링(HTML 태그 생성)
장고의 form 기능을 사용

제출하는 폼 데이터의 변경 확인

Authentication

시스템 인증과 권한부여 기본제공
인증과 권한의 차이

인증: 사용자가 누구인지 판별
권한: 인증된 사용자가 어떤 일을 할 수 있는지 결정

구성요소: 사용자, 권한, 그룹(권한을 둘 이상 적용하는 방법)

Admin

관리자 인터페이스 제공
유투브에 약관을 벗어나는 영상이 업로드 될 경우 이를 제제해야 한다. 서비스 출시 시 사용자 사이트와 관리자 사이트
가 필요하게 된다는 의미이다. 

등록된 모델의 기본적인 조회, 추가, 수정, 삭제 기능 제공

사용자 관리, 사용자 그룹 관리, 사용자 별 권한 기본 제공

Internationalization

동일한 소스코드로 텍스트의 번역, 날짜/시간/숫자의 포맷, 타임존의 지정 등과 같은 다국어 환경 제공

개발자와 템플릿 작성자는 언어 및 문화에 맞게 번역하거나 형식 지정 가능

특정 사용자의 기본 설정에 따라 웹 앱을 현지화화 할 수 있다.
만드는 서비스를 미국에서 현지화 한다고 했을 때 Django에서 설정을 해줄 시 크롬을 통해 보는 사이트가
영어로 나타날 수 있다. 다른 국가들도 적용 가능하다.

Security

CSRF(교차 사이트 요청 위조) 보호
서버가 응답하지 않는 페이지에 대해서 막는다.

SQL 주입 보호
입력하는 부분에 대해서 SQL 문이 들어 올 경우 Django가 대응을 해주는 부분

XSS(교차 사이트 스크립팅) 보호

클릭재킹 방지

SSL/HTTPS

호스트 헤더 유효성 검사

리퍼러 정책

교차 출처 정책

세션 보안

0개의 댓글