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에 정의되어 있는 필드에서 데이터의 유효성도 검사를 해주기 때문에 개발 편의성이 증가한다.
반응형