상세 컨텐츠

본문 제목

Django - intro

Programming/Python

by 쌩우 2019. 7. 23. 23:45

본문

특징

Django를 통하면 여러 특징을 가지는 소프트웨어 개발에 도움이 된다.

  • Complete(완결성)
    : 개발자가 원하는 것이 어떤 결과물의 일부라고 여기어, 도달하려 하는 목표점이 같고, 이 덕에 일관된 디자인 룰을 적용하여 광범위한 최신 문서를 제공한다.

  • Versatile(다용성)
    : 문서관리시스템이나 Wiki, SNS, 뉴스 등 다양한 종류의 웹 사이트를 빌드하는데에 사용되어 왔다.
    또한 어떤 클라이언트단의 프레임워크와도 협업이 가능하다.
    HTML, JSON, XML 등 대부분의 형식으로 컨텐츠 전송이 가능하다.

  • Secure(보안)
    : 개발할 때 고려해야 하는 보안 문제에 대하여 도움을 준다.
    유저의 계정과 비밀번호를 관리하는 데에 있어 안전한 방법을 제공해준다.
    흔히 할 수 있는 개발 상의 실수로,
    세션 정보를 보안에 취약한 쿠키에 넣는 것이 있다.
    혹은 비밀번호를 hashing하지 않고 비밀번호 그대로 저장하는 것이 있다.

Django는 hashing 이후에 입력된 비밀번호가 유효한지 hash 함수를 통해서 확인할 수 있다.
Django는 SQL 인젝션, xss 등 공격방법에 대한 보안 취약점을 보완할 방법들을 기본적으로 제공한다.

  • Maintainable(유지보수성)
    : 유지보수가 쉽고, 재사용하기 좋게 하는 디자인 원칙과 패턴들을 이용해 작성된다.
    관련된 기능들을 재사용 가능한 applications로 그룹화했다.
    더 낮은 레벨에서 관련 코드들을 모듈화하였다.
    이는 MVC 패턴과 유사하다.

  • Portable(휴대성)
    : 파이썬으로 작성되어 있어 많은 플랫폼에서 작동한다. 다양한 운영체제에서 작동할 수 있음과 같다.

MVT 아키텍쳐 (Model View Template)


(출처 : 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)

'Programming > Python' 카테고리의 다른 글

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

관련글 더보기

댓글 영역