[DRF] DRF (Django REST Framework) 기본 개념과 사용법

minsu·2025년 1월 7일

DRF

Django 안에서 RESTfulAPI 서버를 쉽게 구축할 수 있도록 도와주는 오픈 소스 라이브러리

API (Application Programming Interface)

데이터를 요청하고 전달하는 과정에서 클라이언트와 서버 간의 매개체 역할을 한다.
즉, API는 서비스 창구처럼 작동하여 데이터를 특정 형식에 맞게 전달한다.

REST (Representational State Transfer)

REST는 HTTP 프로토콜을 기반으로 자원을 관리하는 아키텍처 스타일이다.

  • 자원 (Resource): URL로 표현
  • 행위 (Operation): HTTP 메서드 (GET, POST, PUT, PATCH, DELETE)등으로 정의
  • 메세지 (Message): 요청(Request)과 응답(Response) 구조로 통신

REST API

REST 설계 원칙을 기반으로 만들어진 Web API를 RESTful API라고 한다.
이를 통해 프론트엔드와 백엔드가 효율적으로 소통이 가능하다.

Json (JavaScript Object Notation)

Json은 데이터를 자바스크립트 객체 형태로 송수신하는 가벼운 문자열 데이터 표현식이다.

  • Key-Value 형식으로 데이터를 표현
  • 숫자, 문자열, Boolean, 배열, 객체 등을 지원
  • 플랫폼과 언어에 독립적으로 다양한 시스템 간 데이터 교환이 용이
{
	"name": "name",
    "age": 25,
    "gender": "female",
    "address": "address 25",
    "specialty": ["coding", "drf"]
}

Serializer

Django의 DB 모델 데이터를 JSON 형태로 변환하는 역할을 한다.

  • 직렬화 (Serializer): 데이터를 송수신하거나 저장하기 위해 전송 가능한 형식으로 변환하는 과정
  • Django에서 Serializer는 모델 데이터를 JSON 형태로 변환할 때 주로 사용됨
# models.py

from django.db import models

class Article(models.Model):
	title = models.CharField(max_length=100)
    content = models.TextField()
    
# serializers.py

from rest_framework import serializers

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = ['title', 'content']
# views.py

from .serializers import ArticleSerializer
from rest_framework.views import APIView
from rest_framework.response import Response
from .models import Article

class ArticleView(APIView):
    def get(self, request):
        queryset = Article.objects.all()
        serializer = ArticleSerializer(queryset, many=True)
        return Response(serializer.data)
# result
[
  {
    "title": "hello",
    "content": "big world"
  }
]
profile
3년차 백엔드 개발자

0개의 댓글