본문 바로가기
■ 칼퇴를 위한 파이썬 : 사례

파이썬으로 웹 애플리케이션 개발하기: Django를 활용한 RESTful API 구현

by 포탈메이커 2023. 7. 13.

파이썬으로 웹 애플리케이션 개발하기: Django를 활용한 RESTful API 구현

서론

웹 애플리케이션은 현대 사회에서 필수적인 요소로 자리잡았습니다. 이번 포스팅에서는 파이썬 웹 프레임워크인 Django를 활용하여 RESTful API를 구현하는 방법에 대해 알아보겠습니다. RESTful API는 많은 웹 애플리케이션에서 데이터를 주고받을 수 있는 표준적인 방법으로 자리잡았습니다. 그렇기 때문에 Django를 활용하여 RESTful API를 개발하는 것은 개발자에게 매우 중요한 역량이 됩니다.

RESTful API란?

RESTful API는 Representational State Transfer의 약자로, 분산 시스템에서 대표적으로 사용되는 아키텍처입니다. RESTful API를 이용하여 클라이언트와 서버 간의 통신을 할 수 있습니다. 이는 HTTP 프로토콜을 기반으로 하며, 일관적인 규칙을 갖추고 있습니다. RESTful API의 주요 특징은 다음과 같습니다.

  • 자원(Resource): API를 통해 접근할 수 있는 모든 것을 자원으로 표현합니다. 예를 들어, 사용자 정보, 게시물, 댓글 등이 자원이 될 수 있습니다.
  • 표현(Representation): 자원을 어떤 형태로 표현할 것인지 결정합니다. 일반적으로 XML이나 JSON 형식으로 표현됩니다.
  • 상태(State): 클라이언트와 서버 간의 통신에서 어느 시점에서 데이터가 오가는지를 나타냅니다. HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 상태를 변화시킵니다.
  • 연결(Connectivity): 클라이언트와 서버 간의 통신은 stateless이며, 각각의 요청에 클라이언트 정보나 세션 정보를 저장하지 않습니다. 대신 필요한 정보는 요청 자체에 포함시킵니다.
  • 인터페이스(Interface): 클라이언트와 서버 간의 통신을 위한 규칙을 정의합니다. 주로 HTTP 메서드와 URL을 사용합니다.

Django를 사용한 RESTful API 구현

Django는 파이썬 웹 프레임워크로, 강력한 기능과 풍부한 문서, 다양한 생태계를 갖추고 있습니다. RESTful API를 개발하기 위해 Django REST Framework(DRF)를 사용할 수도 있습니다. 그러나 이번 포스팅에서는 DRF를 사용하지 않고, Django의 기본 기능을 이용하여 RESTful API를 구현하는 방법을 알아보겠습니다. 먼저 Django 프로젝트를 생성한 후, 아래의 단계를 따라가면 됩니다.

1. 모델 정의하기

Django에서 모델은 데이터베이스 테이블에 해당하는 클래스입니다. 모델을 정의할 때 각 필드는 데이터베이스 테이블의 컬럼에 해당하며, 필드의 속성을 지정할 수 있습니다. 예를 들어, 사용자 정보를 저장하는 User 모델을 정의하고 싶다면 다음과 같이 할 수 있습니다.

```python from django.db import models

class User(models.Model): name = models.CharField(maxlength=100) email = models.EmailField(unique=True) password = models.CharField(maxlength=100) ```

2. URL 매핑하기

Django는 URL 매핑을 통해 클라이언트 요청을 적절한 뷰 함수로 연결합니다. RESTful API에서는 각 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행할 수 있어야 합니다. 이를 위해 Django의 URL 매핑을 사용하여 각 연산을 담당하는 뷰 함수를 정의합니다.

```python from django.urls import path from .views import userlist, userdetail

urlpatterns = [ path('users/', userlist, name='user-list'), path('users//', userdetail, name='user-detail'), ] ```

3. 뷰 함수 작성하기

URL 매핑과 함께 정의한 뷰 함수는 클라이언트 요청을 처리하는 역할을 합니다. 각 연산에 해당하는 뷰 함수를 작성하여 요청에 대한 응답을 처리합니다. 예를 들어, 사용자 정보를 생성하는 create_user 함수는 다음과 같이 작성할 수 있습니다.

```python from django.http import JsonResponse from .models import User

def create_user(request): if request.method == 'POST': name = request.POST.get('name') email = request.POST.get('email') password = request.POST.get('password')

    user = User(name=name, email=email, password=password)
    user.save()

    return JsonResponse({'success': True, 'message': 'User created successfully'})

```

4. RESTful API 테스트하기

위에서 작성한 코드를 실행하여 Django 서버를 실행한 후, API를 테스트해보세요. POSTMAN이나 CURL 등을 사용하여 API 요청을 보내고 결과를 확인할 수 있습니다. 예를 들어, 사용자 생성 API는 다음과 같이 테스트할 수 있습니다.

POST /users/ { "name": "John Doe", "email": "john.doe@example.com", "password": "123456" }

결과는 다음과 같을 것입니다.

{ "success": true, "message": "User created successfully" }

마무리

이번 포스팅에서는 Django를 활용하여 RESTful API를 구현하는 방법에 대해 알아보았습니다. Django는 강력한 웹 프레임워크로서, 기본 기능만으로도 RESTful API를 구현하는 것이 가능합니다. 물론 Django REST Framework(DRF)는 좀 더 편리한 기능을 제공하기 때문에 사용해볼 만합니다. 다음 포스팅에서는 DRF를 사용하여 RESTful API를 개발하는 방법에 대해 알아보도록 하겠습니다. 감사합니다.