찰리의 놀이터

[Django] Django란? DRF(Django REST Framework)란? 본문

Python

[Django] Django란? DRF(Django REST Framework)란?

차알리 2023. 2. 25. 23:34

Django

Django는 파이썬의 웹 풀스택 프레임워크입니다.

"장고"라고 부르며, 다양한 기능이 제공되는 오픈소스 웹 프레임워크입니다.

웹 사이트를 제작하는데 기본적인 기능이 내장되어 있으며 다양한 앱을 추가하여 나만의 서비스를 만들 수 있습니다.

또한, Django는 MTV 패턴을 사용합니다.


위 사진과 같이 하나의 Django 프로젝트에 다양한 앱을 구현할 수 있습니다.

웹 프레임워크란?

웹은 기본적으로 요청(Request)을 통해 응답(Response)를 받는 구조입니다.

우리가 웹에서 그리고 앱에서 누르는 버튼 하나하나가 요청을 보내는 것입니다.

웹 서비스 구조

유저는 웹 또는 앱에서 보여지는 UI(User Interface)에 표시되어 있는대로 버튼을 누릅니다.

장바구니를 보기위해 카트모양의 버튼을 클릭하기도 하고, 더보기라는 버튼을 통해 더 많은 글을 보기도 합니다.

요청이 들어오면 백엔드에서는 필요한 일을 수행한 뒤 응답을 합니다.

데이터베이스에 저장되어 있는 정보를 찾아주거나, 수정 또는 삭제하는 기능을 수행합니다.

쿠팡과 같은 커머스 웹에서 물건을 장바구니에 담으면 로그인 된 계정에 소속되는 장바구니에 물건이 추가됩니다.

여기서 물건이 추가되는 것은 데이터베이스에 들어가는 데이터를 생성하는 것이라고 생각하시면 됩니다.

MTV 패턴이란?

MVC(Model View Controller) 패턴 중 하나이며 Model Template View 형식을 사용하는 패턴을 의미합니다.
아래 그림과 같이 동작합니다.

MTV 패턴


Template은 사용자에게 보여지는 부분입니다.
클릭과 마찬가지의 요청이 들어오면 View를 거쳐 Model로 전달되고 DB에서 데이터를 꺼내와 데이터를 응답 메시지에 싣어 보냅니다.

DRF(Django REST Framework)란?

Django로 백엔드를 전문적으로 구현하게 해주는 프레임워크입니다.
인증부터 DB연결, 권한 설정 등 다양한 기능을 제공합니다.
백엔드 개발은 API 서버를 구축하는 것이라고 할 수 있습니다.
Django와의 차이점은 아래 그림과 같습니다.

Django는 MTV 패턴을 사용한다고 했는데 DRF의 경우 백엔드 부분만 개발하기 때문에 일반적으로 Template은 개발하지 않습니다.
Template을 개발하여 연결하고 사용할 수 있지만 일반적으로 Javascript 프론트엔드 앱과 연동하여 사용하는 편입니다.
아래 그림과 같이 동작합니다.

다음 포스팅부터는 Django project를 만드는 방법과 app을 하나씩 구현해보도록 하겠습니다.

'Python' 카테고리의 다른 글

[Python] gzip 라이브러리  (0) 2023.02.24
[Python] Python 개발환경  (0) 2021.09.13