본문 바로가기

Django REST Framework로 API 개발 시작하기: 초보자를 위한 완벽 가이드

_Big 2025. 5. 16.
반응형

django 로고 이미지


요즘 웹과 모바일 앱 개발에서 API는 정말 빼놓을 수 없는 존재가 되었습니다. RESTful API를 만들 수 있는 능력은 이제 개발자라면 누구나 갖춰야 할 필수 역량이죠. 그리고 Django REST Framework(DRF)는 Python과 Django로 웹 API를 구축할 때 가장 강력하고 유연한 도구 중 하나입니다.

이 글에서는 DRF를 활용한 API 개발의 기초부터 시작해서, 이 프레임워크가 왜 이렇게 효과적인지 핵심 컴포넌트들을 하나씩 살펴보도록 하겠습니다.

들어가며

Django REST Framework는 Django 위에 구축된 서드파티 패키지로, 견고하고 확장 가능한 API를 만드는 과정을 굉장히 단순화시켜줍니다. 기본적인 CRUD 작업부터 복잡한 인증 시스템, 권한 관리, 요청 제한(throttling) 등 API 개발에 필요한 거의 모든 기능을 지원하죠.

우리는 간단한 블로그 포스트 모델을 위한 API를 만들어보면서, 시리얼라이저, 뷰, 라우팅 등의 기본 개념을 익혀볼 겁니다.

1. Django REST Framework 설치하기

첫 번째 단계는 역시 설치겠죠? pip를 통해 간단히 설치할 수 있습니다:

pip install djangorestframework

그다음, settings.py 파일의 INSTALLED_APPS'rest_framework'를 추가해주세요:

INSTALLED_APPS = [
    ...
    'rest_framework',
]

자, 이제 API를 만들 준비가 완료되었습니다!

 

2. 간단한 모델 만들기

이 튜토리얼에서는 블로그 포스트를 위한 기본적인 모델을 models.py에 만들어보겠습니다:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

모델을 만들었으니 마이그레이션을 실행해야겠죠:

python manage.py makemigrations
python manage.py migrate

 

3. 시리얼라이저 생성하기

DRF의 시리얼라이저는 Django Form과 비슷한 역할을 합니다. 모델 인스턴스를 JSON으로 변환하고, 들어오는 데이터의 유효성을 검사하는 역할이죠.

from rest_framework import serializers
from .models import Post

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = '__all__'

정말 간단하죠? 이 몇 줄의 코드로 Post 모델의 모든 필드를 처리할 수 있는 시리얼라이저가 완성됐습니다.

 

4. API 뷰 구축하기

뷰는 함수 기반이나 클래스 기반으로 만들 수 있는데, 가장 일반적으로 사용되는 방법은 viewsets를 이용하는 것입니다:

from rest_framework import viewsets
from .models import Post
from .serializers import PostSerializer

class PostViewSet(viewsets.ModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

놀랍지 않나요? 단 세 줄의 코드로 모든 CRUD 기능이 구현된 뷰가 완성되었습니다!

 

5. 라우터로 URL 설정하기

DRF는 URL 라우팅을 자동으로 처리해주는 라우터를 제공합니다:

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import PostViewSet

router = DefaultRouter()
router.register(r'posts', PostViewSet)

urlpatterns = [
    path('api/', include(router.urls)),
]

이제 /api/posts/에 접속하면 블로그 포스트에 대한 완전한 CRUD 기능을 JSON 형식으로 사용할 수 있습니다.

 

6. 브라우저블 API 사용해보기

DRF의 가장 멋진 기능 중 하나는 바로 브라우저블 API입니다. 브라우저에서 /api/posts/로 접속해보세요. 내장된 UI를 통해 API를 테스트할 수 있습니다. 이는 디버깅과 개발 과정에서 정말 유용한 기능이죠.

 

마무리하며

Django REST Framework는 RESTful API를 빠르고 직관적으로 구축할 수 있게 해줍니다. 단 몇 줄의 코드만으로 Django 모델을 안전하고 유연한 API로 노출시킬 수 있죠. 프로젝트가 성장하면서 인증, 권한 관리, 페이지네이션, 필터링 등의 기능을 추가해 나갈 수 있습니다.

혹시 DRF를 사용해보신 적이 있나요? 첫 API 프로젝트는 무엇이었나요? 여러분의 경험을 공유하거나 궁금한 점이 있다면 댓글로 남겨주세요. API 개발을 시작하는 데 도움이 필요하다면 언제든 질문해주시면 됩니다!

 

 

Django 모델링: 데이터베이스 설계의 핵심

강력한 웹 애플리케이션은 모두 잘 구조화된 데이터베이스 위에 구축됩니다. Django 세계에서는 데이터를 제대로 모델링하는 것이 모든 것의 출발점입니다—사용자 인터랙션부터 백엔드 처리까

bigadmin.org

 

반응형

댓글