DRF 0 - Django REST Framework란?

Joey Lee·2020년 7월 9일
13

Django REST Framework

목록 보기
1/16

1. Django REST Framework란?

아래 DRF에 대한 내용은 다음 블로그를 참고하여, 본인 학습을 위해서 요약한 것입니다. 더 자세한 내용을 보고 싶은 분은 원문을 참고하세요.

1) REST란?

먼저 REST에 대해서 소개를 하자면, http의 url과 http method(GET, POST, PUT, DELETE)를 사용해서 API 가독성을 높인 구조화된 시스템 아키텍쳐(framework)이다. 하나의 URL로 4가지의 HTTP method를 전송할 수 있다.

스마트폰이 등장하기 전 IT 기업들은 웹 페이지를 보여주는 웹서버만 구현하면 됬다. 그 웹 서버에서 DB 서버의 데이터도 읽어오고 사용자들이 글을 남기면 DB 서버에 저장까지 하는 기능을 모두 담당했다. 하지만 스마트폰이 출시되고, 어플리케이션의 등장으로 더이상 웹으로만 서비스를 제공하는 것에는 한계가 있었다.

따라서 HTML로 렌더링 하는 웹서버가 아닌, JSON 혹은 XML 과 같은 형식을 통해서 데이터를 다루는 별도의 API 서버가 필요했다. 따라서 RESTful 아키텍쳐를 HTTP Method와 함께 사용해 웹, 데스크탑 앱, 스마트폰 어플들까지 하나의 API 서버를 생성할 수 있다.

2) DRF(Django REST Framework)

DRF(Django Rest Framework)란 Django 안에서 RESTful API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리다.

Django REST framework를 사용하는 이유는 아래와 같다.

  • 웹 브라우저 API는 범용성이 크다. 개발을 쉽게 만들어준다.
  • 인증 정책에 OAuth1, OAuth2 를 위한 추가적인 패키지가 추가되어 있는 경우
  • 시리얼라이즈 기능을 제공해준다. (DB data -> JSON)
  • 문서화 및 커뮤니티 지원이 잘 되어있다.

2. DRF 개념 한 눈에 보기

[학습 포인트]

  • General Serializer와 ModelSerialer의 차이는 무엇인가?
  • ModelSerializer에서 추가할 필드와 다른 모델을 참조하는 필드 는 각 관계별(1:1, 1:N, N:N)로 어떻게 정의하여야 하는가?
  • GenericView+Mixin VS Concrete View는 각각 코드의 처리 로직이 어떻게 되는가? 소스코드를 참조해서 작동 원리를 이해할 것
  • Concrete View 작성 시, override는 어떤 경우에 해야 하는가? 주로 override를 하게 되는 메소드는 무엇인가?

profile
안녕하세요!

0개의 댓글