본문 바로가기
Study/Python

Django란?

by Becoming a Hacker 2022. 7. 10.
반응형

Django는 2005년부터 시작된 Python의 오픈 소스 웹 프레임워크이자 풀 스택 프레임워크 입니다.

 

웹 프레임워크는 크게 풀 스택 프레임워크와 마이크로 프레임워크로 나눠지는데, 풀 스택 프레임워크는 "웹 개발에 필요한 모든 요소를 갖춘 프레임워크"이며, 마이크로 프레임워크는 "웹 개발에 필요한 일부 요소가 구현되어 있지 않은 프레임워크" 입니다.

※ Python 기반의 마이크로 프레임워크 중 대표적인 것은 Flask가 있으며, 일부 요소가 구현되어 있지 않기 때문에 반대로 개발자의 능력과 목적에 맞춰 커스텀이 가능한 부분이 있습니다.

 

또한, Django의 경우 ORM(Object Relational Mapping)을 기본적으로 제공하고 있는데요. ORM이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말합니다.

 

객체지향 프로그래밍의 경우 클래스를 사용하는데 관계형 데이터 베이스는 테이블을 사용하기 때문에 객체 모델과 관계형 모델간의 불일치가 발생하게 되며 ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치 문제를 해결합니다.

 

그리고 Django는 MVT(Model-View-Template) 패턴을 사용하고 있는데 MVC(Model-View-Controller) 패턴과 대응되는 역할은 다음과 같습니다.

※ 같은 View라도 서로 맡고 있는 역할이 다르다는 점이 주의해야될 부분

번호 MVT(Model-View-Template) 패턴 MVC(Model-View-Controller) 패턴
1 Model Model
2 View Controller
3 Template View

 

만약 클라이언트가 요청을 할 경우 프로세스는 다음과 같이 동작합니다.

MVT Pattern 동작 과정

1. 클라이언트 요청을 URLconf를 이용하여 URL 분석

2. URL 분석 결과에 따라 해당 URL을 처리하는 View 호출, 만약 없다면 에러를 처리하는 View 호출

3. View는 logic을 실행하고 데이터 처리가 필요한 부분은 Model을 통해 처리 후 결과를 반환 받음

4. 이후 템플릿을 이용하여 클라이언트에 전송할 HTML 결과를 생성 후 이를 클라이언트에게 반환

 

URLConf란?

클라이언트로부터 요청을 받으면 Django에서 URL을 분석하는 기능

1. setting.py 파일의 ROOT_URLCONF 항목을 읽어 최상위 URLconf(urls.py)의 위치를 알아냅니다.

2. URLconf를 로딩하여 urlpatterns 변수에 지정되어 있는 URL 리스트를 받아옵니다.

3. URL 리스트를 통해 패턴을 검사하여 일치하는 패턴이 있는지 확인합니다.

4. 매칭된 URL 패턴을 처리하는 View를 호출합니다.

5. URL 리스트에 일치하는 패턴이 없을 경우 에러를 처리하는 View를 호출합니다.

댓글