Django-REST-Framework 에 대한 간단한 정리
- 
    DRF 란 Django에 RESTful API 개발에 도움을 주는 오픈소스 라이브러리 
- 
    특장점 - 
        웹 브라우저 API는 범용성이 커서 개발을 쉽게 만들어줌 
- 
        인증 정책을 위한 추가적인 패키지 이용에 도움 줌 
- 
        serialize 기능 제공 
- 
        문서화 및 커뮤니티 지원 
 
- 
        
- 
    serializer(직렬화) Queryset(DB data)을 Nested 한 JSON 으로 매핑하는 class - 
        기존 Django 와의 비교 - 기존의 Django를 이용한 웹 개발
 Django ORM의 Queryset(DB data) 은 template로 넘겨지며 HTML로 렌더링돼 Response 로 보내짐 - DRF
 serializer를 이용하여 DB data를 JSON으로 매핑하거나 그 역을 통해 RESTful 에 적합하게 API 작성 도와줌 
- 
        ModelSerializer serialize 내의 클래스 이미 models.py에 작성해둔 필드에 맞는 serializser를 만들 수 있도록 해주는 지름길 각 모델 인스턴스를 model_to_dict 과정 없이 쉽게 직렬화 시켜주며 코드길이 짧게 해줌 
 
- 
        
- 
    요청과 응답 - 
        요청(Request) 객체 기존 Django의 평범함 HttpRequest 객체를 확장하여 좀 더 유연하게 요청을 파싱 함 - 
            request.data Request 객체의 핵심 속성 request.POST 와 비슷하지만 웹 API에 좀 더 적합 
 
- 
            
- 
        응답(Response) 객체 TempateResponse 타입 렌더링되지 않은 컨텐츠를 불러와 클라이언트에게 리턴할 컨텐츠 형태로 변환시킴 
- 
        상태 코드 각 상태 코드에 대해 좀 더 명확한 식별자를 제공 기존의 View 에서의 상태 코드는 읽기에도 어려ㅇㅂ고 코드에 오류 발생 시 발견하기 어려운 문제 보완 
- 
        API 뷰 래퍼 API 뷰를 작성하는데 사용할 수 있는 래퍼 제공 - 
            @api_view 데코레이터 함수 기반 뷰에서 사용 
- 
            APIView 클래스 클래스 기반 뷰에서 사용 기능 재사용과 코드 중복(DRY) 막아줌 
 
- 
            
 
- 
        
- 
    인증과 권한 웹 API 에서 사용자의 코드 조작에 대한 인증과 권한 제공 
- 
    관계 & 하이퍼링크 요소의 사이의 관계를 다룸에 다양한 방법 제공 
- 
    뷰셋과 라우터 View에 대해 추상화된 다양한 클래스 제공 URL 설정으로 HTTP 메서드에 따라 View 와 연결 제공