TIL/Django
[Django] DRF란?
oraange
2022. 10. 12. 14:13
DRF란?
- Django REST Framework의 약자로 django에서 RESTful API를 쉽게 만들 수 있도록 도와주는 오픈소스 라이브러리
- Multi Platform 시대에 맞게 오픈 API 형태로 제공하거나, 협업하는 프론트 개발자가 쉽게 데이터를 주고받을 수 있게 직렬화 및 역직렬화 진행
REST란?
- REpresentational State Transfer의 약자로 자원을 URL에 표현하여 자원의 상태 및 정보를 주고 받는 모든 것을 의미
- 예를 들어, 음식 데이터가 DB에 저장되어 있을 때,
/api/foods
라는 형태로 URL을 제공하여 해당 URL로 요청을 보내면 음식 데이터(자원)를 전송해 준다.
즉, Django에서 RESTful한 API 서버를 구축하기 위해 필요한 것들을 구현해 놓은 오픈소스가
DRF
이다.
Django와 Django REST Framework의 차이
- django는 데이터를 요청받게 되면 DB에서 쿼리셋 형태로 불러와
Form
에 쿼리셋 형태로 전송해 준다.Form
을 사용하지 않는다면, 해당 쿼리셋 및 객체를 직접 직렬화하여 client에게 전송
HTML Form
을 통해 데이터 송수신을 하고 렌더링을 하게 될 경우 Multi platform서비스에 대해서는 대응이 힘들어 진다.- Android 및 iOS 환경에서도 통신할 수 있는 REST API가 필요
- 따라서 REST API의 기능이 중요하다고 볼 수 있는데, DRF에서는 QuerySet data를 json 형태로 직렬화를 시켜주기 때문에 더욱 편리하게 사용할 수 있다.
- 또한
serializer
에 정의되어 있는 필드에서 데이터의 유효성도 검사를 해주기 때문에 개발 편의성이 증가한다.
반응형