Python/Django Framework

[Python Django] 기본 개념

Jake the Dog 2022. 3. 23. 12:08
반응형

장고(Django )란?

파이썬으로 작성된 오픈 소스 웹 프레임춰크로, 모델-뷰-컨트롤러(MVC)패턴으로 되어있다. 콤포넌트의 재사용성(reusability), 플러그인화 가능성 (pluggability), 빠른 개발을 강조하며 중복 배제의 원리(DRY: Don't repeat yourself)를 따르고있다.

특징

구성 

파이썬으로 코딩한 모델을 관계형 데이터베이스로 구축해주는 모델(Model), HTTP요청을 처리하는 웹 템플릿 시스템인 뷰(View), URL의 라우팅을 처리하는 URL 컨트롤러(Controller)로 구성된 MVC패턴을 따른다

모델

모델은 데이터에 관한 정보를 담는다. 각각의 모델은 데이터베이스에서 테이블에 해당한다.

어떤 데이터가 표시될지를 정의한다. 뷰는 HTTP 응답을 반환한다. 장고에는 자주 사용되는 형태의 뷰를 패턴화하여 추상화 해둔 재사용 가능한 뷰들을 내장해 놓았는데, 이들을 제네릭 뷰(generic view) 라고 하며 원하는 제네릭 뷰를 상속한 클래스 뷰를 생성하여 사용할 수 있다.

템플릿

데이터가 어떻게 표시되는 지를 정의한다. 템플릿은 사용자에게 실제로 보여지는 웹 페이지나 문서를 다룬다.

흔히 HTML 에 기반해서 템플릿을 만들며, HTML 에 동적인 요소를 추가하기 위해 파이썬의 일부 기능을 쓰게 도와주는 장고 템플릿 태그가 존재한다.

내장 애플리케이션

장고에는 아래와 같은 웹 개발에서 자주 쓰이는 애플리케이션이 'contrib' 패키지에 내장되어있다.

  • 확장가능한 사용자 인증 시스템
  • 동적 관리자 인터페이스
  • RSS 또는 아톰을 위한 피드 생성
  • 사이트맵 생성
  • 사이트  요청 위조(CSRF), 사이트  스크립팅(XSS), SQL 인젝션 같은 해킹 시도에 대한 보안 대책

외부 패키지

내장된 요소들 중에 원하는 것이 없으면 장고를 위해 개발된 외부 패키지를 이용할 수도 있다. 장고에서 사용할 수 있는 패키지들을 모아놓은 웹사이트 Django Packages 의 경우에는 3600개가 넘는 패키지가 등록되어있는 것을 알 수 있으며, 커뮤니티 멤버들의 꾸준한 기여 덕분에 많은 양질의 패키지들이 개발되고 있다. 이는 파이썬의 "건전지 포함"(Batteries Included)의 정신에 입각한 것으로 볼 수도 있다.

반응형