Django를 통하면 여러 특징을 가지는 소프트웨어 개발에 도움이 된다.
Complete(완결성)
: 개발자가 원하는 것이 어떤 결과물의 일부라고 여기어, 도달하려 하는 목표점이 같고, 이 덕에 일관된 디자인 룰을 적용하여 광범위한 최신 문서를 제공한다.
Versatile(다용성)
: 문서관리시스템이나 Wiki, SNS, 뉴스 등 다양한 종류의 웹 사이트를 빌드하는데에 사용되어 왔다.
또한 어떤 클라이언트단의 프레임워크와도 협업이 가능하다.
HTML, JSON, XML 등 대부분의 형식으로 컨텐츠 전송이 가능하다.
Secure(보안)
: 개발할 때 고려해야 하는 보안 문제에 대하여 도움을 준다.
유저의 계정과 비밀번호를 관리하는 데에 있어 안전한 방법을 제공해준다.
흔히 할 수 있는 개발 상의 실수로,
세션 정보를 보안에 취약한 쿠키에 넣는 것이 있다.
혹은 비밀번호를 hashing하지 않고 비밀번호 그대로 저장하는 것이 있다.
Django는 hashing 이후에 입력된 비밀번호가 유효한지 hash 함수를 통해서 확인할 수 있다.
Django는 SQL 인젝션, xss 등 공격방법에 대한 보안 취약점을 보완할 방법들을 기본적으로 제공한다.
Maintainable(유지보수성)
: 유지보수가 쉽고, 재사용하기 좋게 하는 디자인 원칙과 패턴들을 이용해 작성된다.
관련된 기능들을 재사용 가능한 applications로 그룹화했다.
더 낮은 레벨에서 관련 코드들을 모듈화하였다.
이는 MVC 패턴과 유사하다.
Portable(휴대성)
: 파이썬으로 작성되어 있어 많은 플랫폼에서 작동한다. 다양한 운영체제에서 작동할 수 있음과 같다.
(출처 : https://www.youtube.com/watch?v=LYmZB5IIwAI&t=641s)
[MDN Django]
URLs (urls.py)
: 각각의 리소스로 유지보수하기 좋게 분리된 뷰 함수를 작성하는 것이 더 좋다.
URL mapper는 request url을 기준으로 하여 HTTP 요청을 적절한 view로 보내주기 위해 사용된다.
또한 URL mapper는 url에 나타나는 특정 문자열이나 숫자 패턴을 일치시켜 데이터로서 뷰 함수에 전달할 수 있다.
View (views.py)
: HTTP request를 수신하고, HTTP response를 반환하는 요청 처리 함수이다.
View는 Model을 통하여 request를 만족시키는데에 필요한 데이터에 접근한다.
그리고 Template에게 response의 서식에 대한 설정을 맡긴다.
Model(models.py)
: 앱의 데이터 구조를 정의, 데이터베이스의 기록을 추가, 수정, 삭제하고 query하는 방법을 제공하는 파이썬 객체이다.
Templates
: 파일의 구조나 레이아웃을 정의(ex: HTML page)
Pytest - python test framework (0) | 2020.08.13 |
---|---|
AWS EC2에 pyenv로 python 설치하기 (0) | 2020.07.01 |
dictionary + iteration 딕셔너리와 반복문 (0) | 2019.07.22 |
PIP와 Virtualenv (0) | 2019.07.22 |
자료구조 - dictionary (0) | 2019.07.21 |
댓글 영역