장고(Django)는 웹 프로그램을 개발하는 데 사용하는 파이썬 웹 프레임워크
- 프레임워크 : 어떠한 목적을 달성하기 위해 복잡하게 얽혀 있는 문제를 해결하기 위한 구조, 소프트웨어 개발에 있어 하나의 뼈대 역할을 함
특징
- MVC 패턴 기반 MVT,
- 화면에 해당하는 데이터의 DB을 액세스할 수 있는 Model
- 데이터를 가져오고 변형을 할 수 있는 View
- 화면을 담당하는 Template
- 객체 관계 매핑
- 객체 관계 매핑(Object-Relational Mapping)을 지원
- ORM 기능을 사용하여 다양한 데이터베이스 시스템에 SQL 문장을 사용하지 않고도 테이블을 조작할 수 있습니다.
- 자동으로 구성되는 관리자 화면
- 웹 서버의 콘텐츠, 즉 데이터베이스에 대한 관리 기능을 위하여 프로젝트를 시작하는 시점에 기본 기능으로 관리자 화면을 제공
- 우아한 URL 설계
- 정규식을 사용하여 복잡한 URL도 표현할 수 있습니다.
- 자체 템플릿 시스템
- 디자인과 로직에 대한 코딩을 분리하여 독립적으로 개발 진행이 가능
- 웹 개발 또는 웹 서비스 개발이란 용어를 명확하게 표현하면 웹 애플리케이션 개발이라고 할 수 있음
- 웹 사이트를 설계할 때 가장 먼저 해야 할 일은 프로그램이 해야 할 일을 적당한 크기로 나누어서 모듈화
- 웹 사이트의 전체 프로그램 또는 모듈화된 단위 프로그램을 애플리케이션이라고 함
- 즉 프로그램으로 코딩할 대상을 애플리케이션이라고 부름
- 웹 사이트에 대한 전체 프로그램을 Project라 부르며, 모듈화된 단위 프로그램을 애플리케이션(app)이라 부름
디자인 패턴은 크게 MTV로 나눌 수 있음
- Model
- DB의 구조를 결정. 대부분의 경우 테이블을 작성할 때 사용하는데 테이블의 이름, 각 열의 이름과 타입 등을 설계할 때 사용
- Template
- 사용자에게 보여주는 UI 부분. HTML 코드 등 실질적으로 클라이언트에게 보여질 부분이 들어감
- View
- 기능, 로직 부분
- 넘겨 받은 데이터를 어떻게 해석하고 가공할지 그리고 처리된 결과를 어떻게 클라이언트에게 돌려줄지 경정하는 부분
- ORM이란?
- Object Relational Mapping은 쉽게 표현하면 객체와 관계형 데이터베이스를 연결해주는 역할을 함
- 직접 SQL 언어를 사용해 데이터를 요청할 필요 없이 객체를 사용해 데이터를 처리할 수 있음
- 객체를 대상으로 필요한 작업을 진행하면, ORM이 자동으로 적절한 SQL 구문이나 데이터베이스 API를 호출해서 처리
- Models.py
- Models에서 설정한 객체들이 ORM로 인해서 DB에 자동으로 매핑