Computer Programming/AI

TIL_Dango Rest Framework(DRF)를 사용하는 이유

JYCoder 2023. 9. 19. 20:49

저번주까지는 Django의 VMT(View-Model-Template) model을 사용해서 웹페이지를 만들었다.

 

이번에는 Django Rest Framework(DRF)를 사용해서 웹페이지를 만드는 것을 배우고 있는데, 왜 VMT model을 놔두고 DRF를 사용하는 것일까? DRF가 가지고 있는 특징은 어떤 것이 있는지 찾아보았다.

 

VMT model의 경우

Model  =>  View  =======(

HTML

을 template 언어로 응답(render))=======>  Template

 

기본 Django에서는 일반적으로 View에서 HTML 형태로 응답(render)한다. View에서는 database와 상호 작용하여 필요한 data를 가져오고, 이 data를 template에 전달한다. template은 data를 사용하여 동적으로 HTML을 생성하고, 생성된 HTML은 HTTP 응답으로 client에게 전송된다. 

 

DRF의 경우

Model  =====(Serializer)====>  APIView  =====(json을 template언어로 응답(render))====>   Template

 

DRF는 Django Framework의 기능을 확장하여 RESTful API를 개발하기 위한 강력한 도구이고, 주로 JSON 형식의 data를 client에게 반환한다. View는 data를 serialize하고 JSON 형식으로 변환하여 HTTP 응답으로 client에게 전송된다. client는 API를 통해 data를 요청하고 JSON 형식으로 응답을 받아서 해당 data를 처리할 수 있다.

 

 

DRF를 사용하는 이유

1. Web 개발에 특화되어 있음

웹 API를 개발하는 데 특화된 도구로, 데이터를 주로 JSON 형태로 제공하여 Mobile application, Web application, 외부 서비스와의 통합 등 다양한 client와의 data 교환을 가능하게 해준다.

 

2. RESTful architecture 지원

RESTful architecture의 기본 원칙을 따르도록 설계되었다. API 디자인을 간소화하고, 상태를 관리하기 쉽게 만들며, 다양한 HTTP method(GET, POST, PUT, DELETE)를 활용하여 data 조작을 지원한다.

 

3. 직관적인 serializer

serializer를 사용하여 data를 직렬화하고 역직렬화도 할 수 있다. 

 

4. 인증 및 권한 관리

DRF는 사용자 인증 및 권한 관리를 쉽게 할 수 있도록 해준다. 다양한 인증 방식(토큰, 세션 등)과 사용자 권한을 설정하고 관리 할 수 있다.

 

5. 풍부한 확장성

다양한 class와 library를 제공하여 사용자의 요구에 맞는 기능을 추가할 수 있다.

 

6. community 및 생태계

개발자들 간의 활발한 community, 풍부한 문서와 package를 가지고 있어서 편리하다.

 

 

요약하면, DRF는 data API를 구축하고 관리하기 위한 강력한 framework이다. RESTful architecture을 따르며 data serialize, 인증, 권한 관리 등 다양한 기능을 제공하여 web 및 mobile application 개발을 더 효율적으로 만든다.

 

LIST