Folevel
[TIL - 24. 08. 30] Django Rest Framework(DRF)란? 본문
DRF는 이썬 기반의 웹 프레임워크인 Django를 사용하여 RESTful API를 쉽게 만들 수 있게 도와주는 도구이다. Django의 ORM과 잘 통합되어 모델을 기반으로 직렬화(Serialization), 인증(Authentication), 권한(Authorization), 요청 파싱(Request Parsing) 등 다양한 기능을 제공한다.
DRF는 매우 빠르게 API를 개발할 수 있으며, 직렬화, 쿼리셋 필터링, 페이징 등의 기능을 기본 제공하여 반복적인 작업을 줄여줘 생산성이 높다. 다양한 인증 방식(JWT, OAuth, 기본 인증 등)을 지원하고, API의 다양한 요구 사항을 반영할 수 있도록 커스터마이징할 수 있는 훅과 클래스 기반 뷰(CBV)를 제공하므로 유연하다. 게다가 자동으로 API 문서를 생성해주는 기능을 제공하여, 개발자 간의 협업을 돕고, API 사용성을 향상시키며, 널리 사용되는 도구이기 때문에 방대한 문서와 많은 예제 코드, 그리고 활발한 커뮤니티가 존재하여 개발에 도움을 준다.
DRF를 효과적으로 활용하기 위해서는 직렬화, ViewSet, 페이징, 성능 최적화, 보안 관리 등 다양한 기능을 잘 이해하고 적절히 적용하는 것이 중요하다.
DRF의 직렬화 기능은 데이터를 JSON 형태로 변환하거나, 클라이언트로부터 받은 데이터를 파이썬 객체로 변환하는 데 사용한다. 기본 제공되는 Serializer나 ModelSerializer를 사용하여 간단한 데이터 변환 작업을 수행할 수 있지만, 프로젝트의 요구사항에 따라 커스터마이징 할 수도 있다.
반복적인 CRUD 작업을 처리할 때는 ViewSet과 Router를 활용하여 코드를 간결하게 유지하여, API 엔드 포인트를 효율적으로 관리할 수 있다.
대량의 데이터를 다룰 때는 DRF의 페이징과 필터링 기능을 적극 활용해서 효율적으로 데이터를 제공할 수 있다.
데이터베이스 쿼리를 최적화하고, select_related, prefetch_related와 같은 Django의 기능을 활용하여 쿼리 성능을 높이고 캐싱을 도입하여 빈번한 API 요청에 대한 응답속도를 향상시킬 수 있다. 또한 인증 및 권한 관리를 철저히 하여 API의 보안을 강화한다. 본 인증 방식 외에도 JWT나 OAuth와 같은 인증 방법을 적용할 수있다.
'I Learned > Today I Learned' 카테고리의 다른 글
[TIL - 24. 09. 03.] JWT와Token Authentication, DRF와 Relationship을 이용한 기능들 (1) | 2024.09.03 |
---|---|
[TIL - 24. 09. 02.] 오답노트, FBV (Function-Based View)와 CBV (Class-Based View) (0) | 2024.09.02 |
[TIL - 24. 08. 29] Django ORM 사용법 정리 (0) | 2024.08.29 |
[TIL - 24. 08. 28.] Django 팀 과제 마무리 및 발표 (0) | 2024.08.28 |
[TIL - 24. 08. 27] Djago 팀과제 (0) | 2024.08.27 |